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!