2013-06-24 2 views
6

각 파티션에 날짜 분할 된 splayed 테이블이있는 두 개의 디렉토리가 있습니다. 각 디렉토리에는 예상대로 고유 한 sym 파일이 있습니다. 테이블은 완전히 동일합니다.스플레이 된 테이블에 대한 sym 파일 병합

이 문제를 하나의 디렉토리로 통합하려고하는데 문제가 있습니다. 처음에는 다른 디렉토리에있는 파티션의 소프트 링크 (많은 양의 데이터로 인해)를 만들려고했습니다. 테이블이 잘못된 sym 파일을 사용하고 있기 때문에 이것은 작동하지 않았습니다.

누구에게 가장 좋은 방법이 있습니까? 두 디렉토리 모두에 대해 새로운 sym 파일을 재생성해야합니까? 매일 매일 하나의 디렉토리에 읽기

감사

답변

4

나는 당신의 상황이 정확히 무엇인지 잘 모르겠지만 몇 가지 가능성을 생각해 볼 수 있습니다.

  • 두 데이터베이스는 정확히 동일합니다. 두 디렉토리 모두에서 체크섬을 실행하면 해시가 일치합니다.

왜이 두 사본이 필요합니까? 여러 개의 q 프로세스를 동일한 데이터베이스 사본에서 실행할 수 있습니다. 실제로 이것은 OS 디스크 캐시가 제공하는 공유 캐싱의 이점을 누리기 때문에 바람직합니다. 사본 중 하나를 삭제하고 모든 q 프로세스가 동일한 디렉토리를 가리 키기 만하면됩니다.

  • 두 데이터베이스에는 동일한 출처에서로드 된 데이터가 포함되어 있지만 다른 데이터는 포함되어 있지 않습니다. 동일한 쿼리로 각 데이터베이스를 쿼리하면 동일한 결과가 나올 수 있지만 파일의 체크섬은 일치하지 않습니다.

데이터베이스가 독립적으로 생성되었지만 원본 데이터가 동일한 경우에 발생할 수 있습니다. 실제로 파일의 복사본을 만들지 않는 한 데이터베이스가 동일하다고 가정 할 수는 없습니다. 분명한 예로는 각 데이터베이스에로드 한 파일 묶음이 있지만로드 된 파일의 순서는 각 데이터베이스마다 다릅니다. 이 경우에 같은 sym 파일을 사용할 수 없습니다! 이렇게하면 데이터가 으로 보이게됩니다. 언뜻보기에는 괜찮지 만 모든 sym 값이 잘못되었습니다. 어떤 이유로 두 데이터베이스를 결합하려면 하나의 데이터베이스에서 데이터를 가져 와서 다른 데이터베이스에로드해야합니다. 이것은 데이터를 손상시키지 않는 100 % 확신 할 수있는 유일한 신뢰할 수있는 방법입니다.

  • 각각 동일한 테이블을 포함하는 서로 다른 두 개의 데이터베이스가 있습니다 (체크섬 의미에서 하나의 디렉토리에서 다른 디렉토리로 테이블 파일을 복사했을 수 있습니다).

일부 기적에 의해 sym 값이 모두 일치하지 않는 한이 방법은 효과가 없을 것입니다. 나머지 데이터베이스가 다른 경우에는 그렇지 않습니다. 이것은 열거 된 sym 값이 전역 적이며 데이터베이스의 모든 sym 값에 종속되기 때문입니다. 두 데이터베이스 모두에서 테이블을 원할 경우 복사 할 데이터베이스의 sym 열을 다시 열어야합니다.

+0

데이터베이스가 정확히 동일한 데이터 형식을 포함하고 있지 않습니다. 하나를 읽고 다른 사람에게 저장해야하는 것처럼 보입니다.도와 줘서 고마워. –

3

는 모든 열거 SYM 열을 평가하고 다른 SYM 파일을 열거, 다른 디렉토리를 작성합니다.

관련 문제