2017-12-07 2 views
0

지난 주 재 처리 요청에 대한 데이터가 백업 테이블로 옮겨져 주말에 발생한 오류를 다시 처리 할 수 ​​없습니다.DB2의 데이터 순환

특정 테이블의 경우 3 가지의 동일한 버전이 있습니다. 즉, 문서의 상태와 ID를 저장하는 table1이 있습니다. 그래서 우리는 Table1의 3 가지 동일한 버전을 가지고 있습니다.

Table1_A

Table1_B

Table1_C

Table1_A 일주일 동안 활성화 될 것이며, (모든 레코드를 저장하고 주말에, 스크립트가 실행하고 Table1_A 후 비활성 및 table1_B 될 것이다 비어 있음) 한주 동안 활동적인 테이블로 자리 잡을 것입니다. Table1_A은 지난 주 데이터를 보유합니다. 다음주 주말에 스크립트를 통해 Table1_C이 활성화되며 Table1_B은 이전 주 데이터를 유지하고 Table1_A은 모든 데이터를 삭제합니다. 동일한 프로세스가 매주 반복됩니다.

이전주의 데이터가 더 이상 활성화되지 않은 테이블에 있기 때문에 이전주의 실패 문제를 해결할 수 없습니다.

이전 주 테이블의 데이터를 이전 활성 테이블에서 새 활성 테이블로 복사하는 방법에 대한 정보가 있습니다. 비어있는 대신 새로운 활성 테이블은 이전 주 데이터를 갖게됩니다.

제 질문은이 데이터를 복사하는 좋은 방법입니다.

이 데이터를 복사하는 동안 걱정해야 할 사항은 무엇입니까?

또한이 문제를 해결하는 더 좋은 방법이 있습니까?

도움 주셔서 감사합니다.

답변

0

설명 된 솔루션은 매우 융통성이 없습니다. 이유를 설명하지는 않지만 범위 지정을 살펴보기 위해 긴급하게 권장 할 것입니다. 파티션을 지정하면 SQL 성능이 향상되고 문제가 발생할 경우 데이터를 빠르게 롤아웃 할 수 있습니다.

Table1_b가 활성 상태 인 동안 Table1_a에 데이터가있는 경우 table1_a가 여전히 있으며 쿼리 할 수 ​​있습니다. 응용 프로그램의 관점에서는 오프라인이지만 데이터베이스 관점에서는 오프라인이 될 수 있습니다.

더 이상의 비즈니스 정보가 없으면 테이블 파티셔닝을 체크 아웃 할 것을 권장합니다.

+0

실패한 요청은 원래 실패한 요청의 transactionID 만 사용하여 다시 처리 할 수 ​​있습니다. 재 처리는 응용 프로그램을 통해 수행됩니다. 이전 week의 transactionID를 포함한 데이터가 비활성 테이블에 있으므로 이전 주의 실패에 대해 재 처리를 수행 할 수 없습니다. – SamAndTheMan