OGG字符集不一致导致乱码

字符集不一致导致乱码的问题经常会困扰我们,今天就遇到一个OGG复制中的疏忽导致问题。
生产端字符集
select * from nls_database_parameters;
NLS_LANGUAGE     SIMPLIFIED CHINESE
NLS_TERRIIOY     CHINA
NLS_CHARACTERSET AL32UTF8

目标端字符集
select * from nls_database_parameters;
NLS_LANGUAGE     AMERICAN
NLS_TERRIIOY     AMERICA
NLS_CHARACTERSET AL32UTF8

源端抽取进程字符集
SETENV (NLS_LANG=“AMERICAN_AMERICA.ZHS16GBK”)

目标端复制进程字符集
SETENV (NLS_LANG=“AMERICAN_AMERICA.ZHS16GBK”)

看到问题所在了吧,数据库的字符集一致都是AL32UTF8,可是OGG的抽取进程和复制进程是我们一直习惯用的ZHS16GBK。

修改方法很简单,先将抽取进程参数、复制进程参数中的字符集换成统一的
SETENV (NLS_LANG=“AMERICAN_AMERICA.AL32UTF8”)

然后重新做一次OGG初始化。如果是全库复制那就没什么可说的RAMN全备吧,如果是部分表同步的OGG那就设好字符集后采用expdp、impdp方式重新初始化这些表。

需要注意的是expdp导出表数据之前使用export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 设置一下,impdp导入之前也执行一次,避免oracle环境变量中的参数干扰

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29047826/viewspace-1426822/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29047826/viewspace-1426822/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值