ITPub博客

首页 > 应用开发 > IT综合 > 在高级复制环境中执行DDL处理步骤

在高级复制环境中执行DDL处理步骤

原创 IT综合 作者:yaanzy 时间:2006-04-19 15:57:16 0 删除 编辑

在高级复制环境中的对于需要复制的对象作任何DDL操作,都应该使用高级复制程序包来实现,下面是在一个复制表上添加两个列的DDL操作的处理流程。

[@more@]

首先说明一下测试环境:oracle9204,单主体站点,只读物化视图
在非复制环境中简单的添加列的语句:
ALTER TABLE DEMO ADD (D2 NUMBER,D3 NUMBER);

一、在主体站点上执行的步骤

1、挂起复制组

DBMS_REPCAT.SUSPEND_MASTER_ACTIVITY(GNAME =>'REP_GROUP');

2、通过高级复制包中的过程来执行DDL

DBMS_REPCAT.ALTER_MASTER_REPOBJECT (SNAME =>'SCOTT',ONAME =>'DEMO',TYPE =>'TABLE',DDL_TEXT => 'ALTER TABLE SCOTT.DEMO ADD (D2 NUMBER,D3 NUMBER)');

3、生成复制支持

DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT(SNAME => 'SCOTT',ONAME => 'DEMO',TYPE => 'TABLE',MIN_COMMUNICATION => TRUE);

4、恢复复制组

DBMS_REPCAT.RESUME_MASTER_ACTIVITY(GNAME => 'REP_GROUP');
COMMIT;


二、在物化视图站点上执行的步骤

1、将物化视图从物化视图组中删除

DBMS_REPCAT.DROP_MVIEW_REPOBJECT(SNAME => 'SCOTT',ONAME => 'DEMO', TYPE => 'SNAPSHOT', DROP_OBJECTS => TRUE);

2、删除物化视图

如果上一步中参数DROP_OBJECTS没有设置或者为FALSE,则要执行此步:

DROP MATERIALIZED VIEW DEMO;

3、重新建立物化视图

CREATE MATERIALIZED VIEW SCOTT.DEMO REFRESH FAST ON DEMAND
AS
SELECT D1,D2,D3 FROM
DEMO@MASTER_SITE;

4、将物化视图和索引添加到物化视图组

DBMS_REPCAT.CREATE_MVIEW_REPOBJECT(GNAME=>'REP_GROUP',SNAME=>'SCOTT',ONAME=>'DEMO',TYPE=>'SNAPSHOT',MIN_COMMUNICATION=>TRUE);

5、将物化视图添加到刷新组

DBMS_REFRESH.ADD(NAME => 'SCOTT.REP_REFRESH', LIST => 'SCOTT.DEMO', LAX => TRUE);

6、其它工作:将删除前的物化视图的授权再重新授予其它用户

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/3898/viewspace-828557/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    108
  • 访问量
    761496