前言
oracle 19c使用impdp的时候卡在导入视图的地方一点不动,也没啥提示。根据网上资料,oracle 19在导入视图的时候会有bug。
步骤
- 查看导入任务
sqlplus / as sysdba select * from dba_datapump_jobs; # 假设 SYS_IMPORT_FULL_06 的 status 为EXECUTING
- 进入impdp控制台。状态在变化的话说明在正常导入,不过数据量太大导致看起来像卡住了,等着就行了。如果状态没变化,说明就卡住了,根据输出结果查看卡在什么地方,然后停了导入任务。
impdp zhangsan/zspasswd attach=SYS_IMPORT_FULL_06 # 查看状态: status # 得知卡在 VIEW_EXMP1 这个视图 # 先停止: stop_job=immediate
- 等停止之后,重新导入。跳过指定视图。
# 只有一个的话 impdp zhangsan/zspasswd@192.168.0.20:1521/orcl directory=DUMPDIR dumpfile=zhangsan.dmp logfile=zhangsan_impdp.log remap_schema=zhangsan:zhangsan table_exists_action=replace exclude=view:"IN('VIEW_EXMP1')" # 多个的话 impdp zhangsan/zspasswd@192.168.0.20:1521/orcl directory=DUMPDIR dumpfile=zhangsan.dmp logfile=zhangsan_impdp.log remap_schema=zhangsan:zhangsan table_exists_action=replace exclude=view\"IN \(\'VIEW_EXMP1\',\'VIEW_EXMP2\',\'VIEW_EXMP3\'\)\"
- 导入结束后,获取跳过视图的ddl,手动导入。
- 结束。