重庆思庄oracle技术分享-ORA-29354 impdp导入报错字符集不兼容

源端系统:oel 7.9
目标端系统:windows 11
在使用image copies方式传输表空间时,impdp导入时报错ORA-29354,如下:
C:\Users\Administrator>impdp ‘/ assysdba’ directory=tts_dir dumpfile=tts.dmptransport_datafiles=E:\oracle19c\oracle\oradata\ORCL1\tsp_tts01.dbf
Import: Release 19.0.0.0.0 -Production on 星期日 12月 12 22:52:40 2021
Version 19.3.0.0.0
Copyright © 1982, 2019, Oracleand/or its affiliates. All rightsreserved.
口令:
连接到: Oracle Database 19c Enterprise Edition Release19.0.0.0.0 - Production
已成功加载/卸载了主表"SYS".“SYS_IMPORT_TRANSPORTABLE_01”
已在 AL32UTF8 字符集和 AL16UTF16 NCHAR 字符集中完成导入
已在 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中完成导出
警告: 字符集转换过程中可能出现数据丢失情况
启动"SYS".“SYS_IMPORT_TRANSPORTABLE_01”: "/******** AS SYSDBA"directory=tts_dir dumpfile=tts.dmptransport_datafiles=E:\oracle19c\oracle\oradata\ORCL1\tsp_tts01.dbf
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
ORA-39123: 数据泵可传输的表空间作业中止
ORA-29345: 无法使用不兼容的字符集将表空间插入到数据库中
作业 “SYS”.“SYS_IMPORT_TRANSPORTABLE_01” 因致命错误于 星期日 12月 12 22:52:52 2021 elapsed 0 00:00:03 停止
windows字符集
原因很明确,字符集不兼容,分别查询源端和目标端数据库字符集
目标端windows:
SQL> select userenv(‘language’)from dual;
USERENV(‘LANGUAGE’)

SIMPLIFIED CHINESE_CHINA.AL32UTF8
源端linux:
SQL> select userenv(‘language’)from dual;
USERENV(‘LANGUAGE’)

AMERICAN_AMERICA.ZHS16GBK
此时将目标端数据库字符集更改为SIMPLIFIEDCHINESE_CHINA.ZHS16GBK
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 1.0301E+10bytes
Fixed Size 12578000 bytes
Variable Size 1644167168 bytes
Database Buffers 8623489024 bytes
Redo Buffers 20975616 bytes
数据库装载完毕。
SQL> alter system enable restrictedsession;
系统已更改。
SQL> alter database open;
数据库已更改。
SQL> alter database character setinternal_use zhs16gbk;
数据库已更改。
SQL> select userenv(‘language’)from dual;
USERENV(‘LANGUAGE’)

SIMPLIFIED CHINESE_CHINA.ZHS16GBK
目标端字符集更改完毕,然后再次执行导入表空间操作
SQL> exit
从 Oracle Database 19c Enterprise Edition Release19.0.0.0.0 - Production
Version 19.3.0.0.0 断开
C:\Users\Administrator>impdp ‘/ assysdba’ directory=tts_dir dumpfile=tts.dmptransport_datafiles=E:\oracle19c\oracle\oradata\ORCL1\tsp_tts01.dbf
Import: Release 19.0.0.0.0 -Production on 星期日 12月 12 23:12:43 2021
Version 19.3.0.0.0
Copyright © 1982, 2019, Oracleand/or its affiliates. All rightsreserved.
口令:
连接到: Oracle Database 19c Enterprise Edition Release19.0.0.0.0 - Production
已成功加载/卸载了主表 “SYS”.“SYS_IMPORT_TRANSPORTABLE_01”
启动"SYS".“SYS_IMPORT_TRANSPORTABLE_01”: “/******** AS SYSDBA"directory=tts_dir dumpfile=tts.dmptransport_datafiles=E:\oracle19c\oracle\oradata\ORCL1\tsp_tts01.dbf
处理对象类型 TRANSPORTABLE_EXPORT/PLUGTS_BLK
处理对象类型 TRANSPORTABLE_EXPORT/TABLE
处理对象类型TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作业"SYS”.“SYS_IMPORT_TRANSPORTABLE_01” 已于 星期日 12月 12 23:12:56 2021 elapsed 0 00:00:03 成功完成
总结:imagecopies方式传输表空间时一定要确认源端与目标端字符集相同.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值