其实也没太大难度,只是在这记录,以供以后查询使用。
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;