Welcome 微信登录

首页 / 数据库 / MySQL / Oracle快照原理及实现总结

由于工作需要,今天需要将业务数据库里所有的数据同步到另外一个处理服务器上。在做方案的时候,想了很多方法,当然最快的办法还是使用物理热备的方式。 但是我个人认为如果对于中大型数据库(我们的数据库有300G左右)最佳的选择还是使用SnapShot方式,即快照的方式。 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两种,而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。ora-600 [2662] && ora-01031 权限不足的解决 (ora-01152)打开和关闭Oracle Flashback相关资讯      Oracle基础教程 
  • Oracle块编程返回结果集详解  (11/10/2013 10:45:58)
  • Oracle基础教程之设置系统全局区  (08/22/2013 14:24:00)
  • Oracle基础教程知识点总结  (06/18/2013 07:43:32)
  • Oracle基础教程之tkprof程序详解  (10/22/2013 11:49:50)
  • Oracle基础教程之sqlplus汉字乱码  (07/18/2013 16:30:00)
  • Oracle 管理之 Linux 网络基础  (02/16/2013 18:37:35)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图