PG数据库
1.装odbc驱动问题
源码包有问题的,换rpm包,一般本地yum源的postgresql-odbc即可,或者下载对应os版本的驱动rpm包再安装。
2.启动cpt问题
启动报错找不到libcpt_pg.so
ldd libcpt_pg.so
出现缺少的是libodbc.so.1(odbc驱动)
find / -name libodbc.so 文件
位于/usr/lib64/目录,到该目录创建软连接解决:
ln -s libodbc.so libodbc.so.1
3.初始化数据问题1
copy 0 "sch.name='PUBLIC'" CREATE|INSERT|DICT
源端报错找不到PUBLIC模式的任何表,注意pg数据库默认模式名都是小写,需要换成小写即可。
copy 0 "sch.name='public'" CREATE|INSERT|DICT
此时目的端报错不识别对象,需要修改dmhs.hs参数 。2表示转换成大写。
<toggle_case>2</toggle_case>
4.初始化数据库问题2
源端pg库表有默认值引用序列,dm端建表失败,报错无效的默认值表达式。
可以在目的端dmhs.hs中添加ignore_default参数:1为忽略字段默认值。
<ignore_default>1</ignore_default>
需要初始化完成后手工修改表加上默认值。(这个工作量有点大,提需求了,让hs具体schema的识别序列)(最新版hs可以支持默认值引用对应schema的序列)
5.同步数据中文乱码问题
为源端pg库dmhs.hs文件添加参数(pg库字符集是utf8):该参数不设置时,默认值是gb18030
<char_code>PG_UTF8</char_code>
6.目的端同步失败会退出dmhs问题
修改目的端修改dmhs.hs参数,该参数默认为1表示出错中断同步,2表示出错继续同步不保证事务完整性,0表示继续同步但保持事务完整。
<exec_policy>2</exec_policy>
7.无主键同步失败问题
同步表无主键时,dmhs默认以所有字段为联合主键。
pg端表中timestamp小数秒只有3位,达梦是6位小数秒,会自动补齐3位,
update操作时,表无主键,以全部列为主键,小数秒不一致,所以找不到要update的数据,报错。
添加主键后update同步成功。(原则上dmhs只配置有主键的表同步。)
8.字段类型精度不兼容问题
pg库字段类型varchar(10240)精度在dm不兼容的
需要修改类型为text。
Oracle数据库
1、CSL[ERROR]: initial log analysis module failure
alter system set log_archive_dest='/data1/app/oracle/oradata/ORCL/archlog';
shutdown immediate -- 关闭数据库服务
startup -- 开启数据库服务
2、oracle安装dmhs动态库依赖目录
/arch/dmhs/soft/dmhs/bin:/usr/local/lib:/u01/app/oracle/product/11.2.0.4/db_1/lib
3、无法识别oracle动态依赖文件解决方法
先ldd查看动态依赖文件原因
ln -s /usr/lib64/libodbcinst.so.2 libodbcinst.so.1
ln -s /etc/init.d/DmhsServiceorcl /arch/dmhs/soft/dmhs/INST_HS/orcl/DmhsServiceorcl
文章
阅读量
获赞