Oracle快照原理及实现总结
2015-08-23 22:15
471 查看
From:http://blog.chinaunix.net/uid-261392-id-2138969.html
oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。也就是说快照根本的原理就是将本地或远程数据库上的一个查询结果保存在一个表中。 以下是建立的Snapshot,目的是从业务数据库上将数据Copy到处理数据库上,是不同的两个服务器之间对数据copy。 第一步:在处理服务器上的Oracle终端,建立database link,业务数据库服务器SID为TEST create database link TEST_DBLINK.US.ORACLE.COM connect to AMICOS identified by AMICOS using 'test'; 第二步:在业务数据库上对应的表建立快照日志 (如果创建的是快速刷新,则需要这步) Create snapshot log on A_Table; 第三步:建立Snapshot 快照名称为:Test_SnapShot Create snapshot Test_SnapShot REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/24 as select * from A_Table@TEST_DBLINK 说明:REFRESH 是刷新方法 刷新方式有:COMPLETE 和FAST和force三种: fast 快速刷新,用snapshot log,只更新时间段变动部分 complete 完全刷新,运行SQL语句 force 自动判断刷新,介于fast和complete之间 而START WITH 是说明开始执行的时间。 Next是下次执行的时间 而AS以后是构成快照的查询方法。 相关的方法: 更改快照 ALTER SNAPSHOT Test_SnapShot REFRESH COMPLETE START WITH SYSDATE NEXT SYSDATE+1/2; 手动刷新快照 在命令界面执行: EXEC DBMS_SNAPSHOT.REFRESH('Test_SnapShot ','C'); 第一个参数是要刷新的快照名 第二个参数是刷新的方式,F----FAST, C---COMPLETE 查看快照最后刷新的日期 SELECT NAME,LAST_REFRESH FROM ALL_SNAPSHOT_REFRESH_TIMES; 最后非常的方案: 1:为需要做Snapshot的表建立Snapshot日志 create snapshot log on t1 with rowid; 这里使用ROWID建立日记的参数 2:采用Fast的方式建立快照,使用rowid做为参考参数 create snapshot fb_test_b refresh fast with rowid start with sysdate next sysdate+1/1440 as select * from fb_test_b@my_dblink; 最好能按照rowid来建立快照。要不然就必须要为表建立Primary Key。 Oracle 快照及 dblink使用 (两台服务器数据同步) --名词说明:源——被同步的数据库 -- 目的——要同步到的数据库 /*一、创建dblink:*/ --1、在目的数据库上,创建dblin drop database link dblink_anson; Create public database link dblink_anson Connect to lg identified by lg using 'SDLGDB'; --源数据库的用户名、密码、服务器名k /*二、创建快照:*/ --1、在源和目的数据库上同时执行一下语句,创建要被同步的表 drop table tb_anson; create table tb_anson(c1 varchar2(12)); alter table tb_anson add constraint pk_anson primary key (C1); --2、在目的数据库上,测试dblink select * from tb_anson@dblink_anson; select * from tb_anson; --3、在源数据库上,创建要同步表的快照日志 Create snapshot log on tb_anson; --4、创建快照,快照(被同步(源)数据库服务必须启动) Create snapshot sn_anson as select * from tb_anson@dblink_anson; --5、设置快照刷新时间 Alter snapshot anson refresh fast Start with sysdate+1/24*60 next sysdate+10/24*60; --oracle自动在1分钟后进行第一次快速刷新,以后每隔10分钟快速刷新一次 Alter snapshot anson refresh complete Start with sysdate+30/24*60*60 next sysdate+1; --oracle自动在30钞后进行第一次完全刷新,以后每隔1天完全刷新一次 --6、手动刷新快照 begin dbms_refresh.refresh('"CS"."SN_ANSON"'); end;
相关文章推荐
- Oracle正则表达式使用介绍
- ogg12c测试oracle 11.2.0.4同步
- oracle 存储过程的基本语法
- ORACLE触发器详解
- Oracle 游标使用全解
- Mysql与Oracle区别
- Mybatis实现真正分页查询
- Oracle与Sql Server复制表结构和数据
- Oracle数据库基础之字符串函数
- Oracle 初始化参数文件pfile和spfile
- SQLPlus 启动与关闭Oracle数据库
- Oracle REGEXP_INSTR 用法
- oracle 视图的概述
- Oracle数据库基础之数据库字符串类型
- oracle 查看用户所在的表空间
- SQL-Oracle中的函数
- Oracle RAC 11g 修改归档模式
- oracle迁移表空间数据文件
- oracle迁移表空间数据文件
- Oracle数据库基础之SQL概述