Oracle高级复制_第1页
Oracle高级复制_第2页
Oracle高级复制_第3页
Oracle高级复制_第4页
Oracle高级复制_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、物化视图复制站点的配置步骤主站点:test.ncl(dbtest)物化视图站点:peixun.ncl(db58)复制用户:lis复制表:test_a准备工作:在站点创建将要被复制的表test_aSQL> create table test_a as select * from user_tables;表已创建。创建主键SQL> alter table test_a add (constraint pk_name primary key (table_name);表已更改。SQL> commit;提交完成。复制开始1. 检查初始化参数:参数global_names 为true;

2、job_queue_process 大于0.2. 检查全局数据库名称两个数据库的 db_domain 名称应该相同,只有db_name 不同。可以通过下面语句检查Select * form global_name;如果全局数据库名设置不符合规范,可以通过如下语句动态修改。alter database rename global_name to test.nclalter database rename global_name to peixun.ncl;3. 检查tnsname4. 建立主体站点-以system 用户连接到主站点CONN systemtest -建立复制管理用户repadmin

3、 并授权SQL> conn system/systemtest已连接。-建立复制管理用户repadmin 并授权SQL> CREATE USER repadmin IDENTIFIED BY repadmin;用户已创建SQL> BEGIN 2 DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA (username => 'repadmin'); 3 END; 4 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> GRANT COMMENT ANY TABLE TO repadmin;授

4、权成功。SQL> GRANT LOCK ANY TABLE TO repadmin;授权成功。SQL> GRANT SELECT ANY DICTIONARY TO repadmin;授权成功。-注册传播用户并授权,这里使用了管理用户repadmin,也可以分别建立用户SQL> BEGIN 2 DBMS_DEFER_SYS.REGISTER_PROPAGATOR (username => 'repadmin'); 3 END; 4 /PL/SQL 过程已成功完成。-注册接收用户,这里使用了管理用户repadminSQL> BEGIN 2 DBMS_

5、REPCAT_ADMIN.REGISTER_USER_REPGROUP ( 3 username => 'repadmin', 4 privilege_type => 'receiver', 5 list_of_gnames => NULL); 6 END; 7 /PL/SQL 过程已成功完成。-建立物化视图站点复制管理员的代理用户,出于简单考虑,这里也使用repadmin 用户SQL> BEGIN 2 DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP ( 3 username => 'rep

6、admin', 4 privilege_type => 'proxy_snapadmin', 5 list_of_gnames => NULL); 6 END; 7 /PL/SQL 过程已成功完成。SQL> commit;提交完成。-设置代理刷新用户,并授权,这里仍然使用repadmin 用户-对于repadmin 而言,不需要create session 权限-但是这里如果新建用户的话,create session 权限则是必须的SQL> GRANT CREATE SESSION TO repadmin;授权成功。SQL> GRANT S

7、ELECT ANY TABLE TO repadmin;授权成功。-设置清除延迟序列的job-以复制管理员身份登陆到主站点SQL> conn repadmin/repadmin已连接。SQL> BEGIN 2 DBMS_DEFER_SYS.SCHEDULE_PURGE ( 3 next_date => SYSDATE, 4 interval => 'SYSDATE + 1/8640',-每10秒更新一次 5 delay_seconds => 0); 6 END; 7 /PL/SQL 过程已成功完成。SQL> commit;提交完成。5 设置物

8、化视图站点-以system 用户连接到物化视图站点SQL> conn system/systemdb58已连接。SQL> CREATE USER mvadmin IDENTIFIED BY mvadmin;用户已创建SQL> BEGIN 2 DBMS_REPCAT_ADMIN.GRANT_ADMIN_ANY_SCHEMA ( 3 username => 'mvadmin'); 4 END; 5 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> GRANT COMMENT ANY TABLE TO mvadmin;授权

9、成功。SQL> GRANT LOCK ANY TABLE TO mvadmin;授权成功。SQL> GRANT SELECT ANY DICTIONARY TO mvadmin;授权成功。SQL> -建立传播者,并授权,这里使用mvadmin 用户,也可以建立单独的用户SQL> BEGIN 2 DBMS_DEFER_SYS.REGISTER_PROPAGATOR (username => 'mvadmin'); 3 END; 4 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> -建立刷新者,并授权,这里使用m

10、vadmin 用户刷新物化视图SQL> -对于mvadmin 而言,不需要create session 权限SQL> -但是这里如果新建用户的话,create session 权限则是必须的SQL> GRANT CREATE SESSION TO mvadmin;授权成功。SQL> GRANT ALTER ANY MATERIALIZED VIEW TO mvadmin;授权成功。SQL> -注册接受者SQL> BEGIN 2 DBMS_REPCAT_ADMIN.REGISTER_USER_REPGROUP ( 3 username => 'm

11、vadmin', 4 privilege_type => 'receiver', 5 list_of_gnames => NULL); 6 END; 7 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> -建立PUBLIC 数据库链SQL> CREATE PUBLIC DATABASE LINK test.ncl USING 'dbtest'数据库链接已创建。SQL> -建立到主站点上代理物化视图管理员的数据库链SQL> -以物化视图管理员身份连接到物化视图站点SQL> CONNE

12、CT mvadmin/mvadmindb58已连接。SQL> CREATE DATABASE LINK test.ncl CONNECT TO repadmin IDENTIFIED BY 2 repadmin;数据库链接已创建。SQL> -设置清除延迟序列的jobSQL> -如果物化视图站点只包括只读物化视图,这一步可以省略SQL> BEGIN 2 DBMS_DEFER_SYS.SCHEDULE_PURGE ( 3 next_date => SYSDATE, 4 interval => 'SYSDATE + 1/8640', 5 delay

13、_seconds => 0, 6 rollback_segment => ''); 7 END; 8 /PL/SQL 过程已成功完成。SQL> -设置将修改推入到主站点的jobSQL> -如果物化视图站点只包括只读物化视图,这一步可以省略SQL> BEGIN 2 DBMS_DEFER_SYS.SCHEDULE_PUSH ( 3 destination => 'test.ncl', 4 interval => 'SYSDATE + 1/8640', 5 next_date => SYSDATE, 6

14、stop_on_error => FALSE, 7 delay_seconds => 0, 8 parallelism => 0); 9 END; 10 /PL/SQL 过程已成功完成。SQL> commit;提交完成。6 建立主体组SQL> -建立名为rep_test 的复制组SQL> BEGIN 2 DBMS_REPCAT.CREATE_MASTER_REPGROUP ( 3 gname => 'rep_test'); 4 END; 5 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> -将复制

15、对象增加到复制组中SQL> -主键所用的索引自动复制,其他索引需要明确添加到复制组中SQL> BEGIN 2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT ( 3 gname => 'rep_test', 4 type => 'TABLE', 5 oname => 'test_a', 6 sname => 'lis', 7 use_existing_object => TRUE, 8 copy_rows => FALSE); 9 END; 10 /PL/SQ

16、L 过程已成功完成。SQL> BEGIN 2 DBMS_REPCAT.CREATE_MASTER_REPOBJECT ( 3 gname => 'rep_test', 4 type => 'INDEX', 5 oname => 'pk_name', 6 sname => 'lis', 7 use_existing_object => TRUE, 8 copy_rows => FALSE); 9 END; 10 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL&

17、gt; -生成复制支持SQL> BEGIN 2 DBMS_REPCAT.GENERATE_REPLICATION_SUPPORT ( 3 sname => 'lis', 4 oname => 'test_a', 5 type => 'TABLE', 6 min_communication => TRUE); 7 END; 8 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> -开始复制SQL> BEGIN 2 DBMS_REPCAT.RESUME_MASTER_ACTIVI

18、TY ( 3 gname => 'rep_test'); 4 END; 5 /PL/SQL 过程已成功完成。SQL> commit;提交完成。7 建立物化视图SQL> -以复制用户连接到主站点SQL> CONNECT lis/lis已连接。SQL> -建立物化视图日志表,FAST 刷新方式必须要求建立物化视图日志,COMPLETE 则不需要SQL> CREATE MATERIALIZED VIEW LOG ON lis.test_a;实体化视图日志已创建。赋予lis用户权限SQL> conn system/system已连接。SQL&g

19、t; GRANT 2 CREATE SESSION, 3 CREATE TABLE, 4 CREATE PROCEDURE, 5 CREATE SEQUENCE, 6 CREATE TRIGGER, 7 CREATE VIEW, 8 CREATE SYNONYM, 9 ALTER SESSION, 10 CREATE MATERIALIZED VIEW, 11 ALTER ANY MATERIALIZED VIEW, 12 CREATE DATABASE LINK 13 TO lis;授权成功。SQL> -建立复制用户到主站点代理刷新者的数据库链SQL> CONNECT lis/l

20、isdb58已连接。SQL> CREATE DATABASE LINK test.ncl CONNECT TO repadmin IDENTIFIED BY 2 repadmin;数据库链接已创建。SQL> -物化视图组必须和复制站点上的复制组名称相同SQL> BEGIN 2 DBMS_REPCAT.CREATE_MVIEW_REPGROUP ( 3 gname => 'rep_test', 4 master => 'test.ncl', 5 propagation_mode => 'ASYNCHRONOUS'

21、); 6 END; 7 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> -创建刷新组SQL> -对于只包含只读物化视图的站点,不需要此步骤SQL> BEGIN 2 DBMS_REFRESH.MAKE ( 3 name => 'mvadmin.rep_refresh', 4 list => '', 5 next_date => SYSDATE, 6 interval => 'SYSDATE + 1/8640', 7 implicit_destroy => FALSE,

22、 8 rollback_seg => '', 9 push_deferred_rpc => TRUE, 10 refresh_after_errors => FALSE); 11 END; 12 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> -创建物化视图SQL> -对于只读物化视图,省略FOR UPDATE 语句SQL> CREATE MATERIALIZED VIEW lis.test_a 2 REFRESH FAST WITH PRIMARY KEY FOR UPDATE 3 AS SELECT *

23、FROM lis.test_atest.ncl;实体化视图已创建。SQL> -将物化视图添加到物化视图组SQL> -对于只读物化视图,此步骤可以省略SQL> BEGIN 2 DBMS_REPCAT.CREATE_MVIEW_REPOBJECT ( 3 gname => 'rep_test', 4 sname => 'lis', 5 oname => 'test_a', 6 type => 'SNAPSHOT', 7 min_communication => TRUE); 8 END;

24、 9 /PL/SQL 过程已成功完成。SQL> BEGIN 2 DBMS_REPCAT.CREATE_MVIEW_REPOBJECT ( 3 gname => 'rep_test', 4 sname => 'lis', 5 oname => 'pk_name', 6 type => 'INDEX', 7 min_communication => TRUE); 8 END; 9 /PL/SQL 过程已成功完成。SQL> commit;提交完成。SQL> -将物化视图添加到刷新组SQL> BE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论