前言:
如今朋友们对“oracle用dblink连接数据库”大约比较注重,大家都想要剖析一些“oracle用dblink连接数据库”的相关知识。那么小编在网上收集了一些有关“oracle用dblink连接数据库””的相关知识,希望小伙伴们能喜欢,朋友们一起来学习一下吧!概述
分享下之前因为项目需要,在虚拟机和阿里云上通过dblink和快照触发器结合做的一个单向同步,下面写一下大致步骤和整体的一个思路。
一、创建dblink
1、在虚拟机数据库配置tnsnames.ora($oracle_home/network/admin)
bihuan = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = nwppdb) ) )[oracle@Oracle11g admin]$ tnsping bihuanTNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 30-JUL-2018 21:15:17Copyright (c) 1997, 2011, Oracle. All rights reserved.Used parameter files:Used TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = nwppdb))) OK (40 msec)
2、在虚拟机数据库创建dblink_aliyun (test用户执行)
conn test/123456;drop database link dblink_aliyun;create database link dblink_aliyun connect to xxxx identified by xx using 'bihuan';二、创建快照
1、先在虚拟机数据库导入阿里云数据库的表结构,再同步阿里云表的数据到虚拟机
drop table test--不创建主键后面无法建立快照create table test(id number primary key ,name varchar2(12));
---往阿里云test表插入数据
insert into test values(1,'a');insert into test values(2,'b');commit;
---同步阿里云表的数据到虚拟机
insert into test select * from test@dblink_aliyun
--同步虚拟机表的数据到阿里云
insert into test@dblink_aliyun select * from test
2、测试dblink_aliyun(虚拟机执行)
select * from test@dblink_aliyun;
select * from test;
3、在阿里云数据库创建要同步表的快照日志(基于表级别)
create snapshot log on test; --test表必须有主键
4、在虚拟机数据库创建快照(前提是阿里云数据库服务启动)
create snapshot sn_test as select * from test@dblink_aliyun;
5、设置快照刷新时间
--快速刷新
Alter snapshot sn_test refresh fast start with sysdate next sysdate+1/1440;
6、测试快照
在阿里云插入数据:
insert into test values(3,'c');
insert into test values(2,'b');
上面建立好后大家可以写个触发器来单向同步,这里我就不提供了,大家根据需求改下就行,主要思路是当源数据库表改变时,目的数据库表跟着改变,但目的数据库表改变时,源数据库表不改变。
总结:
上面单向同步的方式是基于表级别,主要思路是:
1.首先创建一个dblink,可以访问远程数据库
2.在本地创建一个快照,映射远程数据表,当远程数据表有变化时,会反应到快照中.
3.由于快照类似于视图表,所以在本地为快照创建一个触发器,当快照有变化时,会触发相应事件.
4.在触发器中写同步数据的代码.
后面会分享更多dba方面的内容,大家有什么想看的也可以在下方留言哦,我这边后面也会发类似的。
标签: #oracle用dblink连接数据库 #oracle同步表结构 #oracle数据同步 #虚拟机oracle数据库快照 #oracle添加dblink