ITPub博客

首页 > 数据库 > Oracle > OGG字符集不一致导致乱码

OGG字符集不一致导致乱码

原创 Oracle 作者:SnowDBA 时间:2015-02-04 23:10:22 0 删除 编辑
字符集不一致导致乱码的问题经常会困扰我们,今天就遇到一个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博客 ” ,链接:https://blog.itpub.net/29047826/viewspace-1426822/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 0GG-01172
下一篇: OGG表级同步
请登录后发表评论 登录
全部评论

注册时间:2014-06-21

  • 博文量
    223
  • 访问量
    1633601