GoldenGate控制台PostgreSQL ODBC执行dblogin报OGG-03039字符集错误
解决方案
ERROR OGG-03039 报错的根本原因是PostgreSQL ODBC驱动向GoldenGate返回数据库字符集标识时发生截断,完整的UTF8字符集标识仅返回了首字母
U,导致GoldenGate无法识别该字符集。
- 第一步:修改ODBC.ini配置,在你现有[test] DSN配置段中添加2个字符集相关参数,修改后的完整配置参考如下:
[test] Description=PostgreSQL Driver=/usr/lib/x86_64-linux-gnu/odbc/psqlodbcw.so Trace=No TraceFile=/tmp/psqlodbc.log Database=postgres Servername=xxxx.xxxxxxxxx.us-east-2.rds.amazonaws.com UserName=postgres Password=password Port=5432 ReadOnly=Yes RowVersioning=No ShowSystemTables=No ShowOidColumn=No FakeOidIndex=No ConnSettings=No DriverUnicodeType=1 TransactionErrorBehavior=2 # 新增以下两行配置 CharSet=UTF8 SetConnInfo=ClientEncoding=UTF8
- 第二步:配置GoldenGate全局环境变量,进入GoldenGate部署目录,编辑
GLOBALS文件(如果不存在可直接新建),添加以下参数强制指定客户端编码:
SETENV (PGCLIENTENCODING=UTF8)
修改完成后重启GoldenGate服务使配置生效。
第三步:验证RDS PostgreSQL字符集配置,登录AWS控制台进入对应RDS实例的参数组页面,确认
client_encoding参数值为UTF8;也可以直接连接RDS PostgreSQL执行SQLshow server_encoding;,确认数据库服务端字符集为UTF8。第四步:验证连通性,先重新执行
isql -v test确认ODBC连接正常,再进入GoldenGate控制台执行dblogin sourcedb test userid postgres password <你的实际密码>验证登录是否成功。
如果以上步骤执行后仍报错,可尝试升级PostgreSQL ODBC驱动到匹配你RDS PostgreSQL大版本的最新稳定版,排除驱动版本兼容性导致的字符集识别异常。
内容的提问来源于stack exchange,提问作者JOSE MANUEL CASTAÑEDA CHAVEZ
相关产品推荐
相关产品推荐

