执行步骤:
1)建立连接配置信息:在服务器甲的Oracle数据库安装目录下的network/admin/tnsnames.ora添加一个连接服务器乙的连接:
MASTER2=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS= (PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=master2)
)
)
假设甲的ip地址是192.168.0.1而乙的是192.168.0.2并且乙中的Oracle数据库服务名为master2端口号为1521
2)建立一个DBLINK:
create public database link LINKMASTER2.Oracle.COM
connect to 用户名 --连接乙中Oracle数据库所使用的用户名我们这次该填写B
identified by "密码" --密码(双引号不用去掉)
using 'MASTER2';
3)建立同义词:为了方便我们使用,我们来建立一个同义词
create or replace synonym TESTLINK
for B.TBL_TB@LINKMASTER2.Oracle.COM;
4)建立触发器:
在服务器甲中的数据库空间A下的TBL_TB下建立触发器,负责插入同步,触发器主体部分:
create or replace trigger rtest
after insert on testable
for each row
begin
insert into TESTLINK (something) values (:new.something);
end;
在服务器甲中的Oracle数据库空间A下的TBL_TB下建立触发器,负责修改同步,触发器主体部分:
begin
update TESTLINK setid=:new.id,name=:new.name whereid= :old.id;
end;
假设ID列是唯一的
行动总结报告:
第2)和3)步骤,应该是在服务器甲的数据用户A的环境下来执行的sql语句。
建立了同义词后,就可以直接使用查询异地数据库的表格内容了:select * from TESTLINK ;
需要注意的是,服务器乙的防火墙一定要是关闭的,否则在建立连接的时候,会报超时错误。