ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 基于快照实现远程数据只读复制

基于快照实现远程数据只读复制

原创 Linux操作系统 作者:guoge 时间:2012-01-18 10:19:58 0 删除 编辑

 其实也没太大难度,只是在这记录,以供以后查询使用。

          

1. 在目标数据库中配置指向源数据库的服务器网络名。例如:

HITCSRV5=

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 132.147.100.5)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = ORCL)

    )

  )

JGPT 21.104.128.52 hospital/hospital

ORA-02063/01017

测试数据库能够连通:

SQL> conn comm/comm@hitcsrv5

Connected.

2. 在源数据库中建立数据库链接:

drop public database link hitcsrv5;

Create public DATABASE LINK hitcsrv5 CONNECT TO comm IDENTIFIED BY comm USING 'hitcsrv5';

测试数据库链接生效:

SQL> select * from dual@hitcsrv5

  2  ;

D

-

X

3. 在源 数据库上创建要同步的表(最好有主键约束,快照才可以快速刷新)

create table  Sync_table(id number(10) primary key,name varchar2(12),age number(3));

4. 在源数据库的表上建立同步表的快照日志

SQL> create materialized view log on Sync_table WITH ROWID;

;

Materialized view log created.

以下几种情况都可以

--主键模式

create snapshot log on Sync_table;

create materialized view log on Sync_table

--基于ROWID

create materialized view log on Sync_table WITH ROWID;

5. 在目的数据库中建立快照:

Create snapshot Sync_table 

refresh fast with rowid

as select * from Sync_table@hitcsrv5;

6. 设置快照刷新时间

Alter snapshot Sync_table refresh fast Start with sysdate next sysdate+1/24*60 with rowid;

此为1分钟刷新一次

修改时间格式

ALTER SESSION SET NLS_DATE_FORMAT = 'MM-DD HH24:MI:SS';

7. 查看快照最后一次刷新时间

SELECT NAME,LAST_REFRESH FROM ALL_SNAPSHOT_REFRESH_TIMES WHeren name ='SYNC_TABLE';

8..查看快照下次执行时间
select last_date,next_date,what from user_jobs order by next_date;


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9036/viewspace-715047/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2007-12-12

  • 博文量
    72
  • 访问量
    213453