Chinaunix首页 | 论坛 | 博客
  • 博客访问: 671523
  • 博文数量: 845
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 16:22
文章分类

全部博文(845)

文章存档

2011年(1)

2008年(844)

我的朋友

分类:

2008-10-15 16:26:00

  由于工作需要,今天需要将业务数据库里所有的数据同步到另外一个处理上。在做方案的时候,想了很多方法,当然最快的办法还是使用物理热备的方式。

  但是我个人认为如果对于中大型数据库(我们的数据库有300G左右)最佳的选择还是使用SnapShot方式,即快照的方式。

  数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。也就是说快照根本的原理就是将本地或远程数据库上的一个查询结果保存在一个表中。

  以下是我建立的Snapshot,目的是从业务数据库上将数据Copy到处理数据库上,是不同的两个之间对数据copy。

  第一步:在处理服务器上的终端,建立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');

  第一个参数是要刷新的快照名

[1]  

【责编:Chuan】

--------------------next---------------------

阅读(280) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~