重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2018|回复: 0
打印 上一主题 下一主题

[Oracle] ORA-29354 impdp导入报错字符集不兼容

[复制链接]
跳转到指定楼层
楼主
发表于 2021-12-17 09:24:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
源端系统: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 (c) 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 (c) 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方式传输表空间时一定要确认源端与目标端字符集相同.

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-26 06:46 , Processed in 0.091742 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表