ego*_*or7 2 oracle datapump impdp
我在架构 LARRY 中创建了一个表
create global temporary table TT1 (N number);
create index TT_IX1 on TT1 (N);
Run Code Online (Sandbox Code Playgroud)
然后导出它,并尝试在架构 LARRY2 中导入:
expdp LARRY/LARRY directory=DATA_PUMP_DIR dumpfile=01.dmp logfile=01.dmp.exp tables=TT1
impdp LARRY2/LARRY2 directory=DATA_PUMP_DIR dumpfile=01.dmp logfile=01.dmp.imp remap_schema=LARRY:LARRY2 transform=DISABLE_ARCHIVE_LOGGING:Y,oid:N
Run Code Online (Sandbox Code Playgroud)
但是我在 Oracle 12c 中遇到了一个错误:
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
ORA-39083: Object type INDEX:"LARRY2"."TT_IX1" failed to create with error:
ORA-14451: unsupported feature with temporary table
Failing sql is:
ALTER INDEX "LARRY2"."TT_IX1" LOGGING
Run Code Online (Sandbox Code Playgroud)
我也检查过
SELECT force_logging FROM v$database;
Run Code Online (Sandbox Code Playgroud)
它给NO
.
我试图在互联网上搜索这个问题,但没有找到答案。我很好奇为什么 Oracle 尝试将 INDEXES(以及 TEMPORARY 表的索引)置于 LOGGING 模式?以及如何修复它?
这是由transform=DISABLE_ARCHIVE_LOGGING:Y
. 由于该参数,数据库创建带有NOLOGGING
属性的索引以避免生成重做,最后将索引更改为原始值,在本例中为LOGGING
。
但是对于 GTT 上的索引,不支持指定NOLOGGING
或LOGGING
。数据泵设法在没有指定的情况下创建索引NOLOGGING
(因为这没有意义),但最后,它仍然尝试将其属性更改为LOGGING
。
这个bug是2年多前报道的,据说12.2修复了。
错误 18366521:IMPDP 以错误结束,使用 TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y
我刚刚在 12.2 实例中尝试过这个,它确实是固定的。
一种解决方法是单独处理 GTT,而不指定transform=DISABLE_ARCHIVE_LOGGING:Y
.
归档时间: |
|
查看次数: |
2155 次 |
最近记录: |