实现异地Oracle数据库的数据同步步骤
摘要:以下的文章主要介绍的是异地Oracle数据库的数据同步的实际操作方案,如果你对其相关的实际操作有兴趣的话,你就可以观看以下的文章。
标签:Oracle数据库
异地Oracle数据库的数据同步,行动的主要目的是在服务器甲的Oracle数据库的A里的表TBL_TB相关数据发生变化时,服务器乙的Oracle数据库B中的表TBL_TB也会随着发生相应变化.(假设两个表的结构相同,都只含有ID,NAME两列)。
执行步骤:
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 set id=:new.id,name=:new.name where id= :old.id; end;
假设ID列是唯一的
行动总结报告:
第2)和3)步骤,应该是在服务器甲的数据用户A的环境下来执行的sql语句。
建立了同义词后,就可以直接使用查询异地数据库的表格内容了:select * from TESTLINK ;
需要注意的是,服务器乙的防火墙一定要是关闭的,否则在建立连接的时候,会报超时错误。
相关文档:
其实这个很简单就安装三个包就可以了,分别是:
IO-Tty-1.07.tar.gz,Term-ReadLine-Gnu-1.16.tar.gz, uniread-1.01.tar.gz。
这三个包在我的空间里都有 http://fwx515354.download.csdn.net/
解压
tar -zxvf IO-Tty-1.07.tar.gz
tar -zxvf Term- ......
oracle的odbc网关(gateway)几乎提供一个无线的数据整合平台,在oracle和其它RDBMS之间,我在这不想说它的,操作,限制以及相关性,它解决了一个小问题,把它建立起来你能,例如,创建一个 database link 在oracle 和oracle之间,毕竟,这样不是很好么,例如你能运行下面的sql语句,
select o.col1, m.col1 from or ......
如下,表a是数据库中已经存在的表,b是准备根据表a进行复制创建的表:
1、只复制表结构的sql
create table b as select * from a where 1<>1
2、即复制表结构又复制表中数据的sql
create table b as select * from a
3、复制表的制定字段的sql
create table b as select row_id ......
1、修改Oracle最大连接数的方法
a、以sysdba身份登陆PL/SQL 或者 Worksheet
b、查询目前连接数
show parameter processes;
c、更改系统连接数
alter system set processes=1000 scope=spfile;
......