详解oracle相关分布式数据解决方案
碰到的错误
1.db_link创建后无法使用,发现db_link起的名称有问题
解决方法:如果global_names = true;db_link名称一定要和global_name一致,修改后成功
2.添加主体复制节点时报错:
ORA-23357: the propagator does not exist
ORA-06512: at "SYS.DBMS_REPCAT_CACHE", line 76
ORA-06512: at "SYS.DBMS_REPCAT_MAS", line 2105
ORA-06512: at "SYS.DBMS_REPCAT", line 146
ORA-06512: at line 2
可能原因:
1.global_name使用了oracle的保留字,参考:http://oracle-tech.blogspot.com/2008/08/ora-23375-when-adding-new-master-site.html
修改外网(61)global_name 为OUT.WWKJ.LZFC2
alter database rename global_name to OUT.WWKJ.LZFC2;
2.REPADMIN用户权限不足,检查赋权限的语句,确保权限到位
3.db_link必须使用REPADMIN连接对端数据库,我就是因为这个原因报的错
4.据说两台数据库的域必须一样
5.两台机器的用户和schema应该一致
解决方法:呵呵,很粗心啊,没有用repadmin运行脚本
3.复制组中加入复制对象时候,报23312错误,当前站点不是masterdef
Oracle Error : ORA-23312: not the masterdef according to string
Cause: The group name is null, the group name is misspelled, the invocation or given database is not the masterdef, or one of the masters does not believe the invocation database is the masterdef.
Action: If the given group name and masterdef were both correct, connect to the masterdef and retry the request, or relocate the masterdef at the (errant) databases using relocate_masterdef.