■ 구성환경
HP-UX IA64 to Sun 11.4
19.25 RAC to 19.25 RAC
■ 현상
xTTS Meta 입력 후 Full Meta Import 를 exclude=table 옵션을 지정하고 넣으면 일부 Dictionary 테이블의 데이터가 중복으로 입력이 됨.
■ 원인
Impdp 기능상 제약조건과 인덱스는 비활성화된 채로 데이터가 입력됨.
Expdp에서 Metadata only로 full을 받으면 일부 딕셔너리 테이블의 데이터가 추출되며,
Impdp 시 exclude=table 옵션을 적용하면 기존 테이블을 Skip 하지 않고 데이터가 입력됨.
PK가 존재함에도 제약 조건과 인덱스 비활성화로 중복값이 입력되며, 이후 PK 리빌드와 제약 조건 활성화에 실패함.
■ 해소방법
- 아래 두가지 방법중 하나를 선택하면 됨.
- Full metadata import 시 exclude=table 옵션을 제외.
- 아니면 Full Metadata export 시 exclude=EARLY_OPTIONS,NORMAL_OPTIONS 주면 문제가 되는 딕셔너리 데이터를 제외함.
■ 해소방법
TSDP Objects Contain Duplicate Entries ORA-600: [kkdc1prc:BadType] (Doc ID 2427771.1)
Some Data Dictionary Objects Are Unloaded In 12c by Datapump (문서 ID KB149027)
■ 중복된 딕셔너리 데이터 정리 방법
select owner, index_name from dba_indexes where status='UNUSABLE';
shut immediate
startup restrict
alter pluggable database all open restricted;
alter session set container=<pdb>;
alter session set "_oracle_script"=true;
set pages 200 lines 200 long 2000000
select dbms_metadata.get_ddl('INDEX','TSDP_POLICY$PK') from dual;
select dbms_metadata.get_ddl('INDEX','TSDP_POLICY$UK') from dual;
select dbms_metadata.get_ddl('INDEX','TSDP_SUBPOL$PK') from dual;
drop index TSDP_POLICY$PK;
drop index TSDP_POLICY$UK;
drop index TSDP_SUBPOL$PK;
tsdp_subpol$
=============================
ALTER TABLE TSDP_PROTECTION$ DISABLE CONSTRAINT TSDP_PROTECTION$FKPC;
ALTER TABLE TSDP_CONDITION$ DISABLE CONSTRAINT TSDP_CONDITION$FK;
ALTER TABLE TSDP_PARAMETER$ DISABLE CONSTRAINT TSDP_PARAMETER$FK;
alter table tsdp_subpol$ DISABLE CONSTRAINT tsdp_subpol$fk;
alter table sys.tsdp_subpol$ disable constraint TSDP_SUBPOL$PK;
select rowid,SUBPOL#,POLICY#,SUBPOLNUM,PROPERTY from tsdp_subpol$;
delete from tsdp_subpol$ where rowid='AAAB+NAABAAADyaAAA'; --- delete the last rowid from the previous output.
commit;
alter table sys.tsdp_subpol$ enable constraint TSDP_SUBPOL$PK;
alter table tsdp_subpol$ enable CONSTRAINT tsdp_subpol$fk;
ALTER TABLE TSDP_PROTECTION$ enable CONSTRAINT TSDP_PROTECTION$FKPC;
ALTER TABLE TSDP_CONDITION$ enable CONSTRAINT TSDP_CONDITION$FK;
ALTER TABLE TSDP_PARAMETER$ enable CONSTRAINT TSDP_PARAMETER$FK;
tsdp_policy$
===========================
alter table tsdp_subpol$ disable constraint tsdp_subpol$fk;
alter table tsdp_association$ disable constraint tsdp_association$fkpo;
alter table tsdp_policy$ disable constraint tsdp_policy$pk;
alter table tsdp_policy$ disable constraint tsdp_policy$uk;
select rowid,rownum,POLICY#,NAME,SEC_FEATURE from tsdp_policy$;
delete from tsdp_policy$ where rowid='AAAB+KAABAAADyCAAA'; -- delete the last rowid from the previous output
commit;
alter table tsdp_policy$ enable constraint tsdp_policy$pk;
alter table tsdp_policy$ enable constraint tsdp_policy$uk;
alter table tsdp_subpol$ enable constraint tsdp_subpol$fk;
alter table tsdp_association$ enable constraint tsdp_association$fkpo;
tsdp_parameters
=========================================
alter table tsdp_parameter$ disable constraint tsdp_parameter$fk;
select rowid,SUBPOL#,PARAMETER,VALUE from tsdp_parameter$;
delete from tsdp_parameter$ where rowid='AAAB+QAABAAADyyAAA'; ----- delete the last rowid (probably 2 here as you are seeing a count of 3)
commit;
Commit complete.
alter table tsdp_parameter$ enable constraint tsdp_parameter$fk;
Recreate the indexes taken before. Please also check the stat
us of them.
select index_name, table_name, tablespace_name, status from dba_indexes where index_name in ('TSDP_POLICY$PK','TSDP_POLICY$UK','TSDP_SUBPOL$PK');
alter session set "_oracle_script"=false;
Once done, please do below -
shutdown abort ----- this is so important too.
'ORACLE > Issue' 카테고리의 다른 글
| [19c] [Sun] rootcrs.sh -postpatch -nonrolling 이후 CRS-2549 발생 (0) | 2026.03.15 |
|---|---|
| [19c] [sun] RAC 설치시 INS-06006 발생 (0) | 2026.03.15 |
| [19c] [Sun] rootcrs.sh -postpatch -nonrolling 에서 ssh hang 현상으로 PRKC-1191 발생 (0) | 2026.03.13 |
| [19c] [Linux 9.6] Grid root.sh 수행 시 ohasd fail 발생 (0) | 2026.03.05 |
| 19c CRS Alert에 CRS-5050 간혈적 발생 (0) | 2026.03.04 |