ORA-39083,ORA-01403 Object type INDEX_STATISTICS failed to create with error
가져오면 오류가 발생합니까?
ORA-39083: Object type INDEX_STATISTICS failed to create with error:
ORA-01403: no data found
ORA-01403: no data found
Failing sql is:
DECLARE IND_NAME VARCHAR2(60); IND_OWNER VARCHAR2(60); BEGIN DELETE FROM
"SYS"."IMPDP_STATS"; SELECT index_name, index_owner INTO IND_NAME, IND_OWNER
FROM (SELECT UNIQUE sgc1.index_name, sgc1.index_owner,
COUNT(*) mycount
FROM sys.ku$_find_sgc_view sgc1,
TABLE (sgc1.col_list) myc
표, 색인 모두 CREATE 성공입니다. 이상 없습니까?
그러나 색인 통계 정보를 가져오는 데 문제가 있습니까?오류 알림 인덱스를 찾을 수 없습니다???
검색 MOS
DataPump Import (IMPDP) Failed With Errors ORA-39083 ORA-1403 On INDEX_STATISTICS (Doc ID 755253.1)
Oracle Database - Enterprise Edition - Version 10.2.0.3 to 11.2.0.4 [Release 10.2 to 11.2]
의문왜 이런 현상이 나타났습니까?무시할 수 있습니까, 아니면 개입 처리가 필요합니까!
Cause
1. Create a table under "TEST0" schema:
#> sqlplus test0/password
DROP TABLE TEST0 PURGE;
CREATE TABLE TEST0
(
COL1 NUMBER NOT NULL,
COL2 NUMBER NOT NULL,
COL3 NUMBER NOT NULL
)
TABLESPACE USERS;
ALTER TABLE TEST0 ADD (PRIMARY KEY (COL2, COL1, COL3) USING INDEX TABLESPACE USERS);
CREATE INDEX TEST0INDEX ON TEST0 (COL3, COL1, COL2) TABLESPACE USERS;
select object_name, object_type from user_objects;
OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------
TEST0 TABLE
SYS_C009845 INDEX Index associated with PK constraint.
TEST0INDEX INDEX
2. Collect statistics for "TEST0" schema.
#> sqlplus system/password
exec dbms_stats.gather_schema_stats('TEST0',cascade => TRUE);
3. Execute the DataPump export an import process to reproduce the problem.
#> expdp system/password schemas=test0 dumpfile=test0.dmp
...
(completed successfully without warnings)
#> impdp system/password remap_schema=test0:test1 dumpfile=test0.dmp
...Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS ORA-39083: Object type INDEX_STATISTICS failed to create with error: ORA-01403: no data found ORA-01403: no data found Failing sql is: DECLARE IND_NAME VARCHAR2(60); IND_OWNER VARCHAR2(60); BEGIN DELETE FROM "SYS"."IMPDP_STATS"; SELECT index_name, index_owner INTO IND_NAME, IND_OWNER FROM (SELECT UNIQUE sgc1.index_name, sgc1.index_owner, COUNT(*) mycount FROM sys.ku$_find_sgc_view sgc1, TABLE (sgc1.col_list) myc Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA
4. Open a sqlplus session to check objects created for the import process under "TEST1" schema.
#> sqlplus test1/password
col object_name for a30
SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS;
OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------
TEST0 TABLE
TEST0INDEX INDEX
5. The index with the system generated name is missing because the primary key constraint was created in
the source database without providing a name and before the named index was created, so an index with a
system generated name was created to facilitate this primary key constraint. Upon import, Data Pump first
imports the indexes (i.e. only the named index TEST0INDEX), and then imports the constraints. When creating the primary
key constraint, we can use the existing named index, so there is no need for the system generated index anymore,
and hence it won't be created. When import tries to import the statistics for the system generated index later on,
it fails because the system generated index is missing.
This behavior was reported in:
Bug 8615836 - ORA-1403 OCCURS DURING IMPORTING TABLE_STATISTICS IN IMPDP, closed as not feasible to fix.
요약:
1.소홀히 하거나 처리하지 않거나, 어떻게 이 오류가 발생하는 것을 피할 수 있습니까?
1) 데이터 가져오기 + 제약(유일한 제약 or 키가 자동으로 인덱스를 생성합니다), 인덱스 제외
2) 인덱스만 가져오기
$ impdp system/password remap_schema=test0:test1 exclude=index dumpfile=test0.dmp
$ impdp system/password remap_schema=test0:test1 include=index dumpfile=test0.dmp
2.Oracle은 어떤 방식으로 이 방법을 제공합니까?
원본 사이드 키나 유일한 제약이 있는 열에 여러 개의 색인이 존재하고 제약에 대응하는 색인은 시스템에서 생성됩니다.
가져오는 과정에서 데이터 펌프 가져오기는 선후 순서가 있습니다!
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "ODS_STAGE_CRBS"."T_POLICY_PRODUCT" 105.5 GB 1561574110 rows
. . imported "ODS_STAGE_CRBS"."T_POLICY" 37.01 GB 416732355 rows
Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT
Processing object type TABLE_EXPORT/TABLE/COMMENT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/TRIGGER
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
상기 순서에 따라 가져오는 것은 테이블 데이터를 먼저 가져오고 대응하는 인덱스를 만들며 다음에 테이블의 열에 제약을 추가하고 마지막으로 테이블의 인덱스 통계 정보를 가져옵니다!
1.주 키나 유일한 제약이 있는 열 인덱스를 만들면;
2.다시 한 번 제약을 추가하면 이전에 만든 인덱스를 사용할 것입니다. 시스템 이름에 대응하는 인덱스를 다시 만들 필요가 없습니다!
3.따라서 시스템이 생성한 인덱스 통계 정보를 다시 가져오면 당연히 대상을 찾을 수 없습니다.
When import tries to import the statistics for the system generated index later on, it fails because the system generated index is missing.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.