Oracle数据库同步——高级复制
(2014-07-17 09:09:02)| 标签: itoracle数据库同步表复制高级复制 | 分类: DBA | 
情景模拟
现在有两台服务器:
1) 
2) 
目的:将ThinkPad机器上用户Geosoc里面的BookMark表同步到ZHANGJIAN机器里面去。
 
(一)     
高级复制
1.         
查看是否具备高级复制功能
首先,数据库要具备高级复制功能(用system身份登录数据库,查看v$option视图,如果其中Advanced 
select * from v$option
2.         
设置相应参数
本例的先决条件:你需要设置好相应的参数,
job_queue_processes需要大于0,
global_name=true,
并且建立相应的db 
alter 
 
3.         
创建复制管理员账号
在两个数据库上分别创建复制管事员用户REPADMIN(该用户名及密码可以任意设置,建议统一采用该名字,密码统一为orcl)。
--创建repadmin用户管理复制环境 
CREATE 
ALTER 
ALTER 
GRANT 
--授予repadmin用户权限可以管理当前站点中任何主体组 
EXECUTE 
--授予repadmin用户权限可以为任何表创建snapshot 
GRANT 
--指定repadmin用户为propagator,并授予执行任何procedure的权限 
EXECUTE 
GRANT 
 
4. 
由于后面创建数据库链接(Database link)时需要用到数据库全局名,因此遇到同名的数据库全局名时需要更改其数据库名。
ThinkPad机器:改为 ORCL_THINKPAD
alter 
ZHANGJIAN机器:改为
ORCL_ZHANGJIAN
alter 
 
5.         
在两个数据库上分别建立到对方的数据库链接
建立数据库链接的前提是两个数据库能互相访问,因此需要在数据库端先建立互相的连接本地命名。
由于开启了Global_names为True,因此链接名必须与Global名一致。
ThinkPad: 建立到ZHANGJIAN的本地命名为ORCL154。
create 
ZHANGJIAN:建立到ThinkPad的本地命名为ORCL190。
create 
 
建立好链接后,可以在各自的机器上测试链接是否成功。
Select * from BookMark@ORCL_ZHANGJIAN
 
6.         
创建复制组
在需要被复制的数据库上建立复制组,本例中是ThinkPad机器需要被复制,因此在此数据库上建立复制组。
以REPADMIN登录数据库ORCL
a)     
创建复制组:
execute 
b)     
在复制组里加入复制对象:
execute 
c)     
对复制对象产生复制支持:
execute 
d)     
添加主体复制节点:
execute 
e)     
在主体定义站点启动复制:
execute 
 
7.         
配置完成
Good Luck!当你走到这里什么错误都没发生,恭喜你!也恭喜我,表示我的文档写的没有那么差,比较负责任的将网上的东西抄下来经过了一番整理!
 
但这里还是提醒两点:
1:同步的数据表BookMark必须具有主键!
2:同步前,两个数据表初始化是一样的,也就是说同步前,ZHANGJIAN机器上的BookMark表必须和ThinkPad表上的数据一致!可以采用以下的语句进行创建。
Insert Into BookMark select * from BookMark@ORCL_THINKPAD.
 
 
下面你可以尽情的在ThinkPad机器上操作BookMark表,你会即时发现ZHANGJIAN机器上的BookMark表也随之跟着发生变化,Amazoning!
但是,你在ZHANGJIAN机器上操作BOOKMARK表,ThinkPad机器上却没什么变化!So Boring!

 加载中…
加载中…