真是不巧,学习测试就遇到这样的问题!
ORA-02085: database link CTAIS connects to TLPSSJLD
意思是:If u set the parameter 'global_names' to true,the db link name connected to this server must equal db_name + db_domain.
需要修改global_names的值为false,运行下面的语句:
enet@lx>column name format a20;
enet@lx>column value format a20;
enet@lx>select name ,value from v$parameter where name = 'global_names';
NAME VALUE
-------------------- --------------------
global_names TRUE
果然global_names的值为true。下面把其修改为false:
enet@lx>alter system set global_names=false scope=both;
系统已更改。
确认修改成功:
enet@lx>select name ,value from v$parameter where name = 'global_names';
NAME VALUE
-------------------- --------------------
global_names FALSE
---------------------------------------------------------------------------------------
1、建立数据库连接;填写源数据库的用户名、密码、服务器名
drop database link CTAIS; create public database link CTAIS connect to sjldadmin identified by sjldadmin using 'TLPSSJLD';
2、创建要同步的表,如果已创建则省略这一步;
drop table RWTX; create table RWTX(c1 varchar2(12)); alter table RWTX add constraint pk_anson primary key (C1);
3、在目的数据库上测试数据库连接CTAIS;
select * from sjldadmin.RWTX@ctais;
4、在目的数据库上,创建要同步表的快照日志;
Create snapshot log on RWTX;
5、创建快照,快照(被同步(源)数据库服务必须启动) ;
Create snapshot RWTX as select * from sjldadmin.RWTX@CTAIS;
6、设置快照刷新时间;
Alter snapshot RWTX refresh fast Start with sysdate+1/24*60 next sysdate+10/24*60; --oracle自动在1分钟后进行第一次快速刷新,以后每隔10分钟快速刷新一次 Alter snapshot RWTX refresh complete Start with sysdate+30/24*60*60 next sysdate+1; --oracle自动在30钞后进行第一次完全刷新,以后每隔1天完全刷新一次
7、手动刷新快照;
begin dbms_refresh.refresh('"CS"."RWTX"'); end;
完全刷新的代码:dbms_refresh.refresh('RWTX','C');