문제 설명
DB2의 카탈로그에서 "처음에 기록되지 않은" 테이블을 식별하는 방법 (How to identify tables with "not logged initially" from catalog in DB2)
카탈로그에서 "초기 기록되지 않음" 옵션이 있는 테이블을 식별하는 방법을 알고 싶습니다. 내 말은, 아마도 카탈로그(syscat, sysibm 스키마)에 대한 쿼리를 갖고 기록되지 않은 테이블 목록을 반환하고 싶습니다.
이러한 종류의 쿼리는 특히 HADR에서 매우 유용합니다. 기록되지 않은 테이블이 대기 서버에서 응답되지 않는 시나리오입니다.
이것이 가능한 유일한 방법은 db2look 명령, 여기서 테이블 구조가 검색되고 "초기에 기록되지 않음"이 표시됩니다. . 그러나 이것은 수동이며 DB2 작업의 외부입니다. 데이터베이스가 더 필요합니다.
참조 솔루션
방법 1:
I got bitten by this feature after takeover hadr
, so I investigated it.
The information is in the PACKED_DESC column in SYSIBM.SYSTABLES. Since this column is probably intended for internal use, the exact position may vary from version to version, but in my DB2 Express‑C 10.5.1 on Linux it is SUBSTR(PACKED_DESC,294,1).
I found it by creating two similar tables where only one is 'not logged initially', and compared the records in SYSIBM.SYSTABLES.
Also use the db2cat
command and look for 'Table not logged'.