欢迎来到天天文库
浏览记录
ID:44416678
大小:39.00 KB
页数:3页
时间:2019-10-21
《oracle高级复制需要注意的几点问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、髙级复制是oracle数据库的高级功能,它的维护比普通数据库复杂,卞面是在已冇高级复制数据库维护过程中出现过一些问题和解决办法。1、稳能的物理链路:连接服务器的网络由于故障断开,服务器彼此之间数据就不能访问,数据无法传输;网络不稳定,数据就会发生丢包,不完整。2、传输速度方面要求较高:否则还不如单级版本。3、参与的服务器不能长期不开机:这样会积压大量的延迟任务,导致数据无法进行发布。4、参与复制的表,不能在它上面宜接执行任何DDL语句:因为0RACLE自动在参与复制的表上建立了內部的支持复制的TRIGGER和PACKAGE,在它上面立接执行任何DDL语句都会破坏这些复制支持。应该先S
2、USPEND耍修改表所在的复制组,在REPICATIONMANAGER屮或调用REPCATAPI执行DDL语句,然后重新GENERATE该表的复制支持,最后将复制组状态恢复为NORMAL。注意修改表结构的DDL语句屮表名前一定要带上属主,并口最后没冇分号。如果不小心直接执行了DDL语句,应该将该表移出复制环境,删掉,巫新建立或从其它节点复制过來。5、修改一•张表加一个字段,并设置缺省值,如ALTERTABLEOWNER.TABLE_NAMEADD(FIELD_NAMEVARCHAR2(20)DEFAULT7AAJ;在9iZ前不能一次执行,要分成两部分执行:1、ALTERTABLEO
3、WNER.TABLE_NAMEADDFlELD_NAME2、ALTERTABLEOWNER.TABLE_NAMEMODIFYFlELD_NAMEDEFAULT'AAA*这是因为执行任何DDL语句,需要SUSPEND复制组,此时复制表只能查询,不能执行其它DML语句。如果直接加上一个字段同时赋予缺省值,此时的处理是加上一个字段,并立刻给该字段赋上给定的缺省值,这后面的DML语句是不能执行的,所以会报错。而分成两部分执行,第一部分先加一个字段,第二部分再修改该字段的定义,不会发生插入缺省值的DML操作,因此可以执行。6、执行任何ADMINREQUEST(对复制环境的管理命令)前,都要保证
4、此时没冇堆积的DEFERREDTRANS.7、执行任何ADMINREQUEST,必须一步一步执行。因为ADMINREQUEST的工作原理,是用一个REPCATLOG表保存ADMINREQUEST语句,执行完一条消失一条,后面的再继续执行。如果前面一条没执行完,后面的ADMINREQUEST就无法执行,而REPCATLOG表如果不为空,复制组就无法恢复为NORMAL。因此每次发出ADMINREQUEST后,都要检查REPCATLOG表,当所冇节点上的REPCATLOG表都为空后,才能发出下一条命令。8、如果发现REPCATLOG表中有无法执行的命令,可以重新APPLY或PURGE掉再重
5、新发出命令执行。如果只是某一个节点上冇遗留命令,可以在该节点上多APPLY儿次执行。9、如果发出命令后一&没有响应,而ADMINREQUEST乂无法PURGE掉,现彖类似死锁。可以试着BROKEN掉该ADMINREQUEST対应的JOB,重新刷新命令。如果命令能继续执行,恢复JOB的状态。如果还不行,从V$SESSION和V$LOCK屮查岀死锁,用ALTERSYSTEMKILLSESSION杀掉死锁的进程,如果还是杀不掉。就需要查岀类型为'RQ'的分布式死锁,用SID再从V$PROCESS>V$BGPROCESS查出对应的后台进程,从操作系统级杀掉后台进程的方式來解锁,可能还需要重启
6、数据库。最后再恢复JOB的状态和莫他涉及的复制环境状态。10、可以通过REPLICATIONMANAGER或相关系统表查询复制环境情况,以REPADMIN用户登陆:查看复制组和复制对象:selectgname,statusfromdba_repgroup;八其中gname即为复制组名,status表示状态selectgname,oname.statusfromdba_repobjectwheretype='TABLE'andoname=,table_name,;「要查询某张表在哪个复制组屮,将table.name替换成表名,注意表名一定要大写。査看分布式状态:selectjob,wh
7、at,next_sec,this_sec,iast_sec,failures,brokenfromdbajobs;failures小丁•16,broken为N表示分布式状态正常査看数据库连接select*fromdba.dbjinks;恢复传播复制任务当连接复制环境中数据库的网络岀现问题,可能会造成复制任务的停止。具体现象表现为本地数据弃的更新操作没冇发布到远地数据床中。当出现这种悄况时,请参考前面捉到的査看分布式状态的方法,检査复制任务是否正常。如果fa
此文档下载收益归作者所有