当前位置:  数据库>oracle

让不同服务器之间的Oracle数据库保持同步

    来源: 互联网  发布时间:2017-04-12

    本文导语: 在两台Oracle数据库之间测试成功,下面就总结一下吧: 需求:现有两台Oracle数据库服务器A和B(A,B可以是在同一内网,也可以是在互联网上的两台独立机器)。A和B里有都有testable表,结构一样,现需要当A库中的testable表变化时,B...

在两台Oracle数据库之间测试成功,下面就总结一下吧:

需求:
现有两台Oracle数据库服务器A和B(A,B可以是在同一内网,也可以是在互联网上的两台独立机器)。A和B里有都有testable表,结构一样,现需要当A库中的testable表变化时,B库里的testable也相应变化数据

我的解决方案:
在A中建立到B库的链接,然后对要同步的表做一个同义synonym,最后建一个触发器,就可以完成了。当然,你所用的当前的用户要有相应的权限去执行这些操作。

当从A向B同步数据时,应该在A上做所有的设置:
1,为保证连接到另一台远程服务器的数据库,你需要建立一个DB Link,但是,这里要注意语法格式,using +"connect string",这个connect string应该是存在于oracle服务器的TNSNAMES.ORA文件里,监听程序将从这里获取远方服务器
的ip地址等信息,我定义了一个'251'的connect string如下:
251 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.251)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = mychoice)
)
)








把它存到你的TNSNAMES.ORA文件里。


2,然后就可以定义DB Link了:
create public database link TEST2.US.ORACLE.COM
connect to 用户名
identified by "密码"
using '251';




3,建立synonym(同义)

create or replace synonym TEST01
for MYCHOICE.TESTABLE@TEST2.US.ORACLE.COM;

建立完了以后,你可以通过:
select * from test01
上面的语句相当于在B服务器上执行:
select * from testable 


4,封建触发器:
当A中的testable表变化时(这里只考虑插入操作),就会触发向远程的B库的testable也插入相应的数据:
create or replace trigger rtest
after insert on testable
for each row
begin

insert into test01 (something) values (:new.something);
end;






ok,现在我们可以测试一下,你在A库中往testable表中插入一条记录,看看B库中是不是也相应的增加了


    
 
 

您可能感兴趣的文章:

  • linux服务器之间如何实现时间同步?
  • 两台Mysql服务器,数据同步
  • 如何取消开机时的时间服务器同步?
  • 服务器同步工具 sersync
  • rsync和服务器同步的问题
  • linux 如何实现两台服务器文件的同步?
  • 在设备上配置NTP服务器时出现了下列问题导致服务器同步失败
  • 多台linux服务器,如何同步用户名和密码?
  • linux 设置时间同步服务器后,时间未同步
  • 请教:如何把一台Linux机器设置为时间同步服务器
  • 老板要用linux服务器共享一些CAD文件,并且要同步更新,linux有这功能吗?
  • web服务器集群(多台web服务器)session同步、共享的3种解决方法
  • MYSQL跨服务器同步数据经验分享
  • linux下指定mysql数据库服务器主从同步的配置实例
  • SQL Server双服务器架设并数据自动同步教程
  • mysql主从服务器同步心得体会第1/2页
  • SQLServer 2000 数据库同步详细步骤[两台服务器]
  • rsync同步备份服务器
  • 两个邮件服务器之间是怎么转发邮件的呢
  • 请教:两服务器之间的HTTP请求(非RMI实现)
  • 请问如何在两个web服务器之间实现通信?
  • 如何实现Unix/linux服务器之间文件的相互共享?
  • 两台不同城市的服务器之间要进行数据传输,请问具体的该怎么实现(红帽子)
  • Linux服务器之间的文件共享问题
  • 两台服务器之间怎么传送文件
  • EJB新手提问,同一服务器(就是同一容器吧)内EJB之间调用如何处理?
  • 向网络服务器发送数据的方法get()和post()之间的区别
  • 使用udp,客户端和服务器之间相互发送消息的例子
  • LINUX作为多台WIN98的服务器,WIN98之间可以映射目录吗
  • 单台服务器的PHP进程之间实现共享内存的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • 请问在红旗Linux多功能服务器版上(不是数据库服务器版)能否正常安装使用Oracle?红旗Linux数据库服务器版要比红旗Linux多功能服务器版贵
  • nginx 服务器介绍
  • 校园网,www服务器,邮件服务器,数据库服务器等各用什么平台(系统)性能最佳?
  • 代理服务器原理,功能及作用详细介绍
  • 双linux服务器如何能在一台服务器崩溃的情况下在另一台服务器上启动相应服务
  • Apache HTTP服务器2.4中的新功能概览
  • 如何有效判断服务器已经连接不上(服务器关闭,服务器非法退出等原因)
  • php中操作memcache的类及成员列表及php下如何连接memched服务器
  • 在服务器端怎样检测客户端与服务器端的某个会话在一段时间里面没有通信,然后在服务器端终止该会话??
  • nginx服务器基本特性及使用技巧
  • 恳请对服务器的开发有经验的谈谈服务器开发经验(Unix/Linux & Win32):服务器构架、内存泄漏检测,异常出错……!!!
  • c/c++服务器程序内存泄露问题分析及解决
  • 如果服务器不是本机(程序在一服务器,数据库在一服务器,局域网),如何连接sql ??
  • nginx服务器下通过fastcgi支持php5详细安装配置步骤
  • 采用sendmail搭建邮件服务器必须在邮件服务器上构建DNS服务吗?
  • Mysql服务器登陆,启动,停止等基本操作命令介绍(Linux/Centos环境)
  • web服务器和应用服务器的区别?
  • 服务器存储快照和数据库快照详解
  • 现在有50台服务器,他们的IP是192.168.1.1~192.168.1.100,如何将服务器192.168.1.1的/etc/rc.local快速复制到另外49台服务器上?
  • 如何去理解web服务器与应用服务器


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3