数据库同步方式(三)

本文介绍了如何在目标数据库上通过建立DBLink来访问和同步源数据库的数据。详细步骤包括创建DBLink的两种方法,测试DBLink,建立源数据库对象的同义词以及创建视图,以实现数据同步。

在目标数据库上建立同源数据库的DBLink后,则在目标数据库可以通过“@dblinkname”的方式访问源数据库,或者在目标数据库建立synonym访问,也可以在目标数据库建立基于源数据库表的视图,以达到数据同步的效果。

 

1. 建立database link
    有两种方法:
    ① create database link dblink名称 connect to 源数据库用户名 identified by 密码 using '本地配置的源数据库实例名'
         例如:要在目标数据库的用户duser上建立名为“tlink”的dblink,连接到源数据库的用户ouser(密码123)上,目标数据库服务器上的tnsnames配置中,源数据库名称为orgdb,则先用duser登录目标数据库,运行create database link tlink connect to ouser identified by "123" using 'orgdb',运行后就在目标数据库duser用户下建立了database link。

    ②create database link dblink名称 connect to 源数据库用户名 identified by 密码 using '本地配置语句'
         例如:要在目标数据库的用户duser上建立名为“tlink”的dblink,连接到源数据库的用户ouser(密码123)上,则先用duser登录目标数据库,运行create database link tlink connect to ouser identified by "123" using '(DESCRIPTION =(ADDRESS_LIST =
  (ADDRESS =  (PROTOCOL = TCP)(HOST = 10.111.1.61)(PORT = 1521)))
  (CONNECT_DATA =(SERVICE_NAME = orcl)))',运行后就在目标数据库duser用户下建立了database link。

注意:本地配置语句的格式和tnsnames文件中的格式相同,如果直接拷贝有时候可能会不成功,原因可能是其中的空格、回车符、换行符等。当然如果tnsnames已配置好,直接用第一种方式就可以了。

      这里还需要注意dblink的名称,如果目标数据库的global_name为true,则要求dblink名称必须同源数据库的global_name相同。所以在建立dblink之前,先获取目标数据库的global_name:用sys登录,在Command Window运行show parameter global_name;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_names                         boolean     TRUE

 

VALUE为TRUE,则要去源数据库获取global_name:select * from global_name


GLOBAL_NAME
--------------------------------------------------------------------------------
ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

 

这时就需要create database link  ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM ...

 

2. 在目标数据库访问源数据库
测试dblink:select * from dual@tlink
用@tlink的方式就可以在目标数据库访问源数据库

 

3. 建立synonym
在目标数据库建立源数据库对象的同义词:create synonym d_table for o_table@tlink
就可以直接select * from d_table,而不需要select * from o_table@tlink

 

4. 建立视图
在目标数据库建立源数据库表的视图:
①create view d_table_v as select * from o_table@tlink
②create view d_table_v as select * from d_table

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值