数据库复制环境配置方法.docx
- 文档编号:6758855
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:14
- 大小:1.43MB
数据库复制环境配置方法.docx
《数据库复制环境配置方法.docx》由会员分享,可在线阅读,更多相关《数据库复制环境配置方法.docx(14页珍藏版)》请在冰豆网上搜索。
数据库复制环境配置方法
数据库复制环境的搭建
宋现锋/李经帅2001/5/17
快照型复制方案配置方法
一、Init.ora参数
如下初始化参数必须被设置或添加到每个参与复制的数据库初始化文件中:
COMPATIBLE8.1.5
SHARED_POOL_SIZE>35M
GLOBAL_NAMESTRUE
OPEN_LINKS4(add2peradditionalmaster)
DISTRIBUTED_TRANSACTIONS5(add2peradditionalmaster)
JOB_QUEUE_INTERVAL60Seconds
JOB_QUEUE_PROCESSES2(add1peradditionalmaster)
PARALLEL_MAX_SERVERS10
PARALLEL_MIN_SERVERS2
二、安装复制目录
分别在各个节点以internal用户登录到servermanager,然后运行如下脚本:
SVRMGR>@ORACLE_HOME/rdbms/admin/catrep.sql
执行下面的命令来验证上面的脚本是否运行正确:
SVRMGR>SELECT*FROMALL_OBJECTSWHERESTATUS=’INVALID’;
如果哪个包体编译不正确,对它进行重新编译
SVRMGR>ALTERPACKATE
三、配置NET8
每个参与复制的节点都要有监听器监听参与复制的实例,而且必须配置到其它节点的NET8连接。
四、配置主站点
1.启动RelicationManager;
2.展开Setupwizard,选中Setupmastersite,然后单击next;
3.单击new;
4.输入Site名(net8下的服务名)和system用户密码(manager)后,单击OK,单击Next;
5、对三个用户进行选择,一般接受缺省值,单击Next;
6、接受缺省值,单击Next;
7、编辑DefaultsofScheduledLink,Next选择Now(即Sysdate),Interval根据需要单击Edit进行选择,Processes可根据需要选择3,其他接受缺省值,单击Next;
8、PurgeScheduling根据需要进行编辑,Interval根据需要单击Edit进行选择,其值可设为和ScheduledLink的Interval相同,这样使系统的性能得到优化,其它接受缺省值,单击Next;
9、根据需要对节点进行配置(一般不用配置什么)后,单击Next;
10、为了了解具体过程,选择Recordascript,单击Finish;
11、进行最后确认,单击OK,完成主站点的配置。
五、配置快照站点
1.启动RelicationManager;
2.展开Setupwizard,选中Setupupsnapshotsite,然后单击next;
3.输入主站点名及其system用户密码;
4.单击New,输入快照站点名称及其system用户密码,单击OK,单击Next;
5.选择快照站点的三个用户,接受缺省值,单击Next;
6、配置ScheduledLink,Next选择Now(即Sysdate),Interval根据需要单击Edit进行选择,Processes可根据需要选择2,其他接受缺省值,单击Next;
7.PurgeScheduling根据需要进行编辑,Interval根据需要单击Edit进行选择,其值可设为和ScheduledLink的Interval相同,其它接受缺省值,单击Next;完成以上
8.根据需要选中站点进行配置(需要配置的内容并不多),在Schemas下选择从主站点复制到快照站点的模式,这将在以后自动建立从快照站点到主站点的连接。
9.为了了解具体过程,选择Recordascript,单击Finish;
10.进行最后确认,单击OK,完成快照站点的配置。
六、配置主组
完成以上工作之后,系统自动建立三个从快照站点到主站点的连接:
公共连接、Snapadmin的专用连接和复制模式的专用连接,在模式管理器下可以查看他们的有效性。
另外,在复制管理器下可以看到从快照站点到主站点的Schedulinglink。
1、创建主组:
在复制管理器到主站点的连接中,在Configuration->Mastergroup下创建主组,只要输入主组名即可;
2、向主组中添加对象;
3、生成该复制对象的Snapshotlogs;
4、重新启动主组。
七、配置快照组
1、创建快照组,可以同时把快照对象加进去;注意快照端不能存在该对象。
可以看到,同时生成了快照组相对应的刷新组和刷新对象;
八、脚本
/*以下是在主节点上做的工作*/
/*创建复制组(建议在图形界面下完成)*/
begin
dbms_repcat.create_master_repgroup(gname=>'group3',
qualifier=>'',
group_comment=>'');
end;
/
/*添加复制对象(数量较多时建议用脚本完成)*/
begin
dbms_repcat.create_master_repobject(
gname=>'group3',
type=>'table',
oname=>'tt3',
sname=>'scott',
use_existing_object=>true,
copy_rows=>TRUE);
end;
/
/*生成快照日志(数量较多时可以用脚本完成)*/
createsnapshotlogonscott.tt3withprimarykey;
/*启动复制对象对复制的支持功能(建议在图形界面下完成)*/
begin
dbms_repcat.generate_replication_support(
oname=>'tt3',
sname=>'scott',
type=>'table',
min_communication=>true);
end;
/
/*启动复制组的复制功能(建议在图形界面下完成)*/
execdbms_repcat.resume_master_activity('group3');
/*以下是在快照节点需做的工作,建议用图形界面完成*/
/*生成快照复制组*/
begin
dbms_repcat.create_snapshot_repgroup(
gname=>'group3',
master=>'DQYD',
propagation_mode=>'asynchronous');
end;
/*添加快照复制对象*/
begin
dbms_repcat.create_snapshot_repobject(
gname=>'"GROUP3"',
sname=>'"SCOTT"',
oname=>'"TT3"',
type=>'SNAPSHOT',
ddl_text=>'createsnapshot"SCOTT"."TT3"refresh
fastwithprimarykeyforupdateasselect*
from"SCOTT"."TT3"@DQYD',
min_communication=>TRUE);
end;
/*生成刷新组*/
begin
dbms_refresh.make(
name=>'"SNAPADMIN"."GROUP3"',
list=>'',
next_date=>SYSDATE,
interval=>'/*1:
Secs*/sysdate+1/(60*60*24)',
implicit_destroy=>FALSE,
rollback_seg=>'',
push_deferred_rpc=>TRUE,
refresh_after_errors=>FALSE);
end;
/*添加刷新对象*/
BEGIN
DBMS_REFRESH.ADD(
name=>'"SNAPADMIN"."GROUP3"',/*注意组名的大小写*/
list=>'"SCOTT"."TT3"',
lax=>TRUE);
END;
九、问题的检查点
1、检查模式管理器下的Databaselink是否active;
2、Schedulinglinkintervals和刷新组的刷新间隔如果太长,那么短时间内将不能看到数据的复制效果;
3、在localjobs队列中,检查各个工作的状态以及刷新间隔(这一点很重要)。
十、所遇问题的原因及解决办法
1.快照复制期间,出现复制不正常,经检查发现刷新组的nextdate的时间自动变成30-SEP-400008:
50AM,而初始设置时为30-SEP-200008:
50AM。
答:
原因是复制组建立的不正确或网络、主节点关掉等原因导致刷新不能成功,系统在进行了16次刷新尝试失败之后,就把下一次刷新的时间设为30-SEP-400008:
50AM,即不再进行刷新,初始时间没有问题。
2.JOB队列中的提交时间,变为20-JAN-195008:
50AM,导致工作不能提交。
答:
不影响系统的工作,可能是oracle的bug所致。
3.建立mastergroup和snapshotgroup组时,replicationmanager自动将复制对象从mastersite复制到mastersite/snapshotsite,对于char和varchar2型变量,会出现在snapshotsite端的字段长度是mastersite处长度的2倍。
答:
此问题仅出现在单个机器的数据库中,不是普遍存在,和建库过程有关。
4.测试过程中,对于可更新快照,在SNAPSHOTSITE端进行数据更新时,若更新的字段中包含了汉字,在传送到MASTERSITE后变成乱码,导致复制失败。
答:
根据多次实验可知,这可能和pushinterval和refreshinternal有关,当前者大于后者时,乱码问题不再出现,当前者小于或等于后者时,则无规律的出现乱码问题。
但Oracle技术支持没有给出该问题的答案,此经验也未达到理论或权威认证。
5.刷新时对CPU的消耗极大,导致其它工作速度明显降低。
答:
经咨询Oracle技术支持,吴大江先生回答:
这和PC机性能有关,属于正常现象,在服务器上应该不会出现此问题。
附录一:
基本概念
1.复制节点(ReplicationSites):
指某个机器上的某个数据库,包括主节点和快照节点两种,一个节点要么是主节点,要么是快照节点,不能有双重身份。
2.主节点(master-site):
主节点独立创建,可以不依附于其他节点而存在。
3.快照节点(snapshot-site):
必须依附于一个且只能依附于一个主节点而存在。
4.复制对象(ReplicationObjects):
指在分布式数据库系统中存在于多个服务器中的数据库对象。
通过复制工具可以复制表,还支持诸如views,databasetriggers,packages,indexes,andsynonyms等对象。
5.复制组(ReplicationGroups):
ORACLE用ReplicationGroups来管理复制对象。
把多个相互联系的数据库对象组织到一个复制组里,可以使管理复制对象的工作变得容易。
一个组可以包含多个模式的对象,一个模式下的对象也可以存在于多个复制组里,但一个对象只能存在于一个复制组中。
只读快照可以不属于某个快照组,也可以不基于主组里的主表。
6.主组(mastergroups):
主节点上的复制组。
在多主复制环境里,不同节点上相对应的组应包含完全相同的复制对象。
7.快照组(snapshotgroup):
快照节点上的复制组。
它必须且只能和一个主节点上的一个主组相对应,其中的复制对象可以是对应主组中对象的全部或一部分。
<全文完>
2000年10月
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 复制 环境 配置 方法