常见问题
- Q1:DATABASE LINK连接Oracle数据库查询远程数据时出现乱码,怎么解决?
问题现象:DATABASE LINK连接Oracle数据库查询远程数据时,查询结果为?或¿。
原因分析:存储在Oracle数据库中的字符不能转换为GaussDB数据库所支持的编码。
处理方法:GaussDB数据库与Oracle数据库字符集保持一致以保证字符都能被正常解析,例如:将GaussDB数据库字符集配置为UTF8以及将Oracle数据库字符集配置为AL32UTF8。
- Q2:DATABASE LINK查询远程数据时,一直在等锁释放,这是为什么?
问题现象:DATABASE LINK查询远程数据时,一直在等锁。
原因分析:业务中存在长事务首次使用DATABASE LINK操作远程对象,会持续持锁直到事务结束,其他首次使用DATABASE LINK的事务会被阻塞。
处理方法:通过一条快速执行的语句,先对要使用的远程对象做查询操作,使其元数据信息缓存至本地进行规避该情况。
- Q3:DATABASE LINK支持连接GaussDB数据库的备机吗?
A:支持,使用conn_opt传入libpq参数target_session_attrs=standby。