oracle snapshot 快照

本文介绍Oracle数据库中快照的创建及使用方法,包括快照日志的建立、数据库链接的创建、快照的建立与刷新策略等。通过具体步骤说明如何实现两数据库间的数据同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

快照(snapshot)

oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或
视图的查询的结果。正因为快照是一个主表的查询子集,使用快照可以加快数据的查询速度;
在保持不同数据库中的两个表的同步中,利用快照刷新,数据的更新性能也会有很大的改善。

放在a库st用户下的表a中(a表是一个随用户动态变化而变化的表),

而在另外一台b服务器whx用户下,为在whx用户下使用st用户下表a中的数据,我在whx用户下建立了a的快照
 具体步骤如下: 
  一、在st用户下建立表a的快照日志; 只有先建立表a的快照日志,才能在快照中执行快速刷新。 
Create snapshot log on a; 
  二、在whx用户下建立到st用户的数据库链linka;  建立了到st用户的数据库链后才能从st用户下的表a中获取数据。 
Create database link linka  Connect to st identified by st using 'syntong'; 
  三、在whx用户下建立快照kza; 
  Create snapshot a as 
  Select * From a@linka;

  四、根据需要修改快照刷新的间隔时间; 
  快照的刷新有两种方式:快速刷新和完全刷新。

快速刷新需要快照的主表先有快照日志存在;

完全刷新时oracle执行快照查询,将结果放入快照。快速刷新比完全刷新快,因为
快速刷新将主数据库的数据经网络发送到快照的数据少,仅需传送主表中修改过的数据.


  alter snapshot a refresh fast  start with sysdate+1/1440 next sysdate+1/12;
 Alter snapshot kza refresh complete

  Start with sysdate+1/2880 next sysdate+1;
手动刷新快照
Excute dbms_snapshot.refresh('a');

 

 

本地数据库 a ,远程数据库 b

一、创建dblink:
--1、在本地数据库 a上,创建dblink
Create database link b_link Connect to whx  identified by whx using 'b';

二、创建快照:
1、在本地数据库 a 创建和,远程数据库 b 一样的数据表(同步的表)
create table whx123_test(a varchar2(12));
alter table whx123_test add constraint pka primary key (a );

2、在本地数据库 a 上,测试dblink
select * from whx123_test@b_link;
select * from whx123_test;

3、在本地数据库 a 上,创建要同步表的快照日志
Create snapshot log on whx123_test;

4、创建快照,快照
Create snapshot whx123_testsn  as select * from whx123_test @b_link;

5、设置快照刷新时间
Alter snapshot whx123_testsn refresh fast Start with sysdate+1/(24*60) next sysdate+10/(24*60);
oracle自动在1分钟后进行第一次快速刷新,以后每隔10分钟快速刷新一次
Alter snapshot sn_user refresh complete Start with sysdate+30/(24*60*60) next sysdate+1;
oracle自动在30钞后进行第一次完全刷新,以后每隔1天完全刷新一次

6、手动刷新快照
Excute dbms_snapshot.refresh('whx123_testsn');

7、创建别名

Create synonym sy_user for tb_user@b_link;

8,查询快照的表

select * from whx123_testsn;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值