[英]Cloning a schema in Oracle 19c with DBMS_DATAPUMP leaves index organized tables empty
當使用腳本從這個或這個源克隆模式時,它在我們正在使用的 Oracle 11g 中運行良好。 最近我們切換到 Oracle 19c 並且克隆不再正常工作。 乍一看,一切看起來都不錯,但仔細觀察,索引組織的表是空的。 當我檢查這些表的結構時,缺少索引和約束。
源模式中索引組織表的示例:
CREATE TABLE some_table
(
id1 INTEGER NOT NULL,
id2 INTEGER NOT NULL,
CONSTRAINT pk_some_table PRIMARY KEY (id1, id2) ENABLE VALIDATE
)
ORGANIZATION INDEX
/
CREATE INDEX ix_some_table_01
ON some_table (id1)
/
CREATE INDEX ix_some_table_02
ON some_table (id2)
/
ALTER TABLE some_table
ADD (CONSTRAINT fk_some_table_01 FOREIGN KEY (id1) REFERENCES parent_table1 (id) ENABLE VALIDATE)
/
ALTER TABLE some_table
ADD (CONSTRAINT fk_some_table_02 FOREIGN KEY (id2) REFERENCES parent_table2 (id) ENABLE VALIDATE)
/
以及目標(克隆)模式中的同一張表:
CREATE TABLE some_table
(
id1 INTEGER NOT NULL,
id2 INTEGER NOT NULL,
CONSTRAINT pk_some_table PRIMARY KEY (id1, id2) ENABLE VALIDATE
)
ORGANIZATION INDEX
/
而且,正如我所提到的,沒有數據被克隆,克隆的索引組織表是空的。 我懷疑克隆過程試圖在索引本身之前創建約束(使用索引)並且它失敗了,但我不確定這是不是原因。
任何幫助,將不勝感激。 謝謝!
感謝您使用我的腳本 :-) 但很抱歉我無法在 19.14 中重現
SQL> create user demo identified by demo quota 100m on users;
User created.
SQL> grant create session to demo;
Grant succeeded.
SQL> grant create table to demo;
Grant succeeded.
SQL> grant create cluster to demo;
Grant succeeded.
SQL> grant create sequence to demo;
Grant succeeded.
SQL> grant create procedure to demo;
Grant succeeded.
SQL> grant create trigger to demo;
Grant succeeded.
SQL> grant create type to demo;
Grant succeeded.
SQL> grant create operator to demo;
Grant succeeded.
SQL> grant create indextype to demo;
Grant succeeded.
SQL> create table demo.iot (
2 empno primary key
3 ,ename
4 ,job
5 ,mgr
6 ,hiredate
7 ,sal
8 ,comm
9 ,deptno
10 )
11 organization index
12 as select * from scott.emp;
Table created.
SQL>
SQL> create table demo.heap (
2 empno primary key
3 ,ename
4 ,job
5 ,mgr
6 ,hiredate
7 ,sal
8 ,comm
9 ,deptno
10 )
11 as select * from scott.emp;
Table created.
SQL> set serverout on
SQL> exec clone_schema('DEMO','DEMO2',p_drop_new=>false);
173413:Starting job
173601:Final state:COMPLETED
Starting "MCDONAC"."DEMO_SCHEMA_IMP":
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 128 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
. . imported "DEMO2"."HEAP" 14 rows
. . imported "DEMO2"."IOT" 14 rows
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
Job "MCDONAC"."DEMO_SCHEMA_IMP" successfully completed at Fri Jun 3 17:35:00 2022 elapsed 0 00:00:47
PL/SQL procedure successfully completed.
SQL> select count(*) from demo2.heap;
COUNT(*)
----------
14
SQL> select count(*) from demo2.iot;
COUNT(*)
----------
14
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.