WEB开发网
开发学院数据库Oracle Qracle高级复制维护中要注意的方面 阅读

Qracle高级复制维护中要注意的方面

 2007-05-11 12:21:34 来源:WEB开发网   
核心提示:前段时间一致在做oracle高级复制,下面是在维护过程中对出现问题的一些分析、解决,Qracle高级复制维护中要注意的方面,贴出来希望对大家有帮助,高级复制是oracle数据库的高级功能,第二部分再修改该字段的定义,不会发生插入缺省值的DML操作,它的维护比普通数据库复杂,下面是在已有高级复制数据库维护过程中出现过一些

前段时间一致在做oracle高级复制,下面是在维护过程中对出现问题的一些分析、解决,贴出来希望对大家有帮助。

高级复制是oracle数据库的高级功能,它的维护比普通数据库复杂,下面是在已有高级复制数据库维护过程中出现过一些问题和解决办法。

1、稳定的物理链路:连接服务器的网络由于故障断开,服务器彼此之间数据就不能访问,数据无法传输;网络不稳定,数据就会发生丢包,不完整。

2、传输速度方面要求较高:否则还不如单级版本。

3、参与的服务器不能长期不开机:这样会积压大量的延迟任务,导致数据无法进行发布。

4、参与复制的表,不能在它上面直接执行任何DDL语句:因为ORACLE自动在参与复制的表上建立了内部的支持复制的TRIGGER和PACKAGE,在它上面直接执行任何DDL语句都会破坏这些复制支持。应该先SUSPEND要修改表所在的复制组,在REPICATION MANAGER中或调用REPCAT API执行DDL语句,然后重新GENERATE该表的复制支持,最后将复制组状态恢复为NORMAL。注意修改表结构的DDL语句中表名前一定要带上属主,并且最后没有分号。如果不小心直接执行了DDL语句,应该将该表移出复制环境,删掉,重新建立或从其它节点复制过来。

5、修改一张表加一个字段,并设置缺省值,如 ALTER TABLE OWNER.TABLE_NAME ADD(FIELD_NAME VARCHAR2(20) DEFAULT 'AAA');在9i之前不能一次执行,要分成两部分执行:

1、ALTER TABLE OWNER.TABLE_NAME ADD FIELD_NAME

2、ALTER TABLE OWNER.TABLE_NAME MODIFY FIELD_NAME DEFAULT 'AAA'

这是因为执行任何DDL语句,需要SUSPEND复制组,此时复制表只能查询,不能执行其它DML语句。如果直接加上一个字段同时赋予缺省值,此时的处理是加上一个字段,并立刻给该字段赋上给定的缺省值,这后面的DML语句是不能执行的,所以会报错。而分成两部分执行,第一部分先加一个字段,第二部分再修改该字段的定义,不会发生插入缺省值的DML操作,因此可以执行。

1 2 3  下一页

Tags:Qracle 高级 复制

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接