2.演示针对某个表使用高级复制进行数据同步。

3.演示使用物化视图的方式进行数据同步。

2.演示针对某个表使用高级复制进行数据同步。

2.1 配置GLOBAL_NAME
    2.1.1 源库
    SQL> alter database rename global_name to db1.com;

Database altered.

SQL> show parameter global_names;

NAME        TYPE        VALUE
    -----------------------------------------
    global_names    boolean        FALSE

SQL> alter system set global_names=true scope=both;

System altered.

2.1.2 目标库:
    SQL> alter system set global_names=true scope=both;

System altered.

SQL> alter database rename global_name to db2.com;

Database altered.

SQL> show parameter global_name;

NAME                     TYPE    VALUE
    -----------------------------------------------------
    global_names                 boolean    TRUE
    SQL> select * from global_name;

GLOBAL_NAME
    ---------------------
    DB2.COM
    
2.2 两个库中创建应用用户,
    这里我还是使用HR 用户及用户下的po 来做实验
    
    SQL> create table po(id integer);

Table created.

SQL> alter table po  add constraint pk_po_id primary key (ID);

Table altered.

2.3 两个库中创建复制管理用户repadmin

CREATE USER repadmin IDENTIFIED BY oracle DEFAULT TABLESPACE users;
    GRANT connect,resource,DBA TO repadmin;

--授予repadmin用户权限可以管理当前站点中任何主体组
    EXECUTE dbms_repcat_admin.grant_admin_any_schema('REPADMIN');
    --授予repadmin用户权限可以为任何表创建snapshot logs
    GRANT comment any table TO REPADMIN;
    GRANT lock any table TO REPADMIN;
    --指定repadmin用户为propagator,并授予执行任何procedure的权限
    execute dbms_defer_sys.register_propagator('REPADMIN');
    GRANT execute any procedure TO REPADMIN;

2.4在两个数据库上建立数据库链接

create public database link db2.com connect to repadmin identified by oracle using 'DB2';
create public database link db1.com connect to repadmin identified by oracle using 'DB1';

2.5 创建复制组:

execute dbms_repcat.create_master_repgroup('repg');

--删除复制组
--execute dbms_repcat.drop_master_repgroup('repg');

SQL>
SQL> SELECT GNAME,MASTER,STATUS FROM DBA_REPGROUP;

GNAME    MASTER        STATUS
--------------------------------
REPG        Y   QUIESCED

2.6 在复制组里加入复制对象:
execute dbms_repcat.create_master_repobject(sname=>'hr',oname=>'po',type=>'table',use_existing_object=>true,gname=>'repg',copy_rows=>false);

--删除对象
--execute dbms_repcat.drop_master_repobject(sname=>'hr',oname=>'po',type=>'table',DROP_OBJECTS=>true);

select sname,oname,status,gname from dba_repobject where gname='REPG';

SNAME           ONAME                  STATUS             GNAME
----------------------------------------------------------------------------------------
HR           PO                      VALID                 REPG

SQL>

2.7对复制对象产生复制支持:
execute dbms_repcat.generate_replication_support('hr','po','table');
execute dbms_repcat.drop_master_repobject('hr','po','table'); [取消同步]

SQL> select sname,oname,status,gname from dba_repobject where gname='REPG';

SNAME           ONAME                  STATUS             GNAME
----------------------------------------------------------------------------------------
HR           PO                      VALID                 REPG
HR           PO$RP                  VALID                 REPG
HR           PO$RP                  VALID                 REPG

2.8添加主体复制节点:
begin
dbms_repcat.add_master_database(gname=>'repg',
master=>'db2.com',
use_existing_objects=>true,
copy_rows=>false,
propagation_mode=>'synchronous');
end;
/
    第一次执行上面代码出错:
    ERROR at line 1:
    ORA-23358: invalid remote user
    ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
    ORA-06512: at "SYS.DBMS_REPCAT_RPC", line 12
    ORA-06512: at "SYS.DBMS_REPCAT_RPC", line 1768
    ORA-06512: at "SYS.DBMS_REPCAT_UTL", line 4280
    ORA-06512: at "SYS.DBMS_REPCAT_MAS", line 2158
    ORA-06512: at "SYS.DBMS_REPCAT", line 146
    ORA-06512: at line 2
    
    重做后又没问题,不知什么原因。

select gname,dblink,masterdef ,master FROM SYS.DBA_REPSITES WHERE GNAME='REPG';

SQL> select gname,dblink,masterdef ,master FROM SYS.DBA_REPSITES WHERE GNAME='REPG';

GNAME        DBLINK              MASTERDEF  MASTER
--------------- ------------------------- ---------- ----------
REPG        DB1.COM           Y         Y

测试数据同步,通过

**********************************************  
参数说明:  
gname 主复制组名  
master 加入主复制节点的另一个数据库  
use_existing_object true 表示用主复制节点已经存在的数据库对象  
copy_rows false表示第一次开始复制时不用和主复制节点保持一致  
propagation_mode 同步地执行
synchronous(上边配置异步复制) 
***********************************************

在主体定义站点启动复制:
execute dbms_repcat.resume_master_activity('repg',true);
execute dbms_repcat.resume_master_activity('repg',false);
execute dbms_repcat.suspend_master_activity('repg')[停止复制]

--------------------------------------------------------------------
3.演示使用物化视图的方式进行数据同步。

1.在DB1.COM建立一个新表,用于测试物化视图

create table hr.emp(id int primary key);
insert into hr.emp
select rownum from dual connect by rownum<=1000;

2.在DB1.COM 创建物化视图日志

CREATE MATERIALIZED VIEW LOG ON hr.emp WITH PRIMARY KEY INCLUDING NEW VALUES

3.在DB2.COM 创建物化视同步数据。

create materialized view hr.mv_emp build immediate refresh fast  
enable query rewrite as select * from hr.emp@db1.com;

DB2.COM查询数据:

SQL> select count(0) from hr.mv_emp;

COUNT(0)
----------
      1000

DB1.COM 插入新数据
SQL> insert into hr.emp values(1001);

1 row created.

SQL> commit;

Commit complete.

SQL>

DB2.COM 刷新特化视图并查询数据。
SQL> execute dbms_mview.refresh('hr.mv_emp','f');

PL/SQL procedure successfully completed.

SQL> select count(0) from hr.mv_emp;

COUNT(0)
----------
      1001

SQL>

看到数据已同步过来了。

【ORACLE 高可用】 高级复制的两个配置实例 - 使用高级复制和物化视图相关推荐

  1. 构建Oracle高可用环境HA rac:企业级高可用数据库架构、实战与经验总结

    1.1  理解Oracle数据库 1.2  Oracle高可用特性(High Availability) 1.3  搭建高可用的周边辅助环境 1.4  高可用应用设计 1.5  高可用数据库设计 1. ...

  2. Oracle高可用概述(HA与RAC的关系解惑)

    1.你如何理解高可用的概念? 所谓的高可用HA就是当你的系统中的某个节点异常损坏了,系统还是可用状态,还可以对外提供服务,不会因为你的节点丢失而整体瘫痪. 2.列出你知道的Oracle高可用产品,并作 ...

  3. 重读 构建Oracle高可用环境(一)

    两年前, 看了陈吉平的<构建Oracle高可用环境>,用现在的话说,完全没有sense. 准备重读,照例找点文章先开开胃: RAID,即廉价磁盘冗余阵列,是一种将相同的数据放在多个硬盘上不 ...

  4. 中国第一个Oracle高可用认证大师?

    作者:姚远Oracle 姚远是2019年7月取得的Oracle 12c OCM认证,和10年以前取得10g OCM认证一样,没有参加学习班,在不知道题目的情况下硬考的.当时我就想考12c 的高可用认证 ...

  5. 【陈吉平】《构建oracle高可用环境》前言

    这里,首先要感谢广大读者的支持与认可,该书第一次印刷到现在,2个多月的时间,就要准备第二次印刷了.在此期间,我也看到了很多读者反馈(包括读者书评与读者来信),他们对本书的肯定,让我深表感动.本书在写作 ...

  6. oracle数据库的高可用r,Oracle高可用之dataguard

    Oracle高可用之dataguard DataGuard是一种数据库级别的HA方案,最主要功能是冗灾.数据保护.故障恢复等. 在生产数据库的"事务一致性"时,使用生产库的物理全备 ...

  7. 【ORACLE 高可用】使用GOLDENGATE 配置Oracle-MySQL的异构复制

    使用GOLDENGATE 配置Oracle-MySQL的异构复制 1. 下载  mysql and goldengate for mysql: https://edelivery.oracle.com ...

  8. 小机、数据库、存储选型应该注意的几个事项(摘自ORACLE高可用环境-陈吉平)

    存储: 存储的几个主要指标是IOPS.带宽与响应时间. IOPS: 指的是系统在单位时间内能处理的最大IO频度,一般是指单位时间内能完成的随机小IO个数. 带宽(throuput): 有的时候也较吞吐 ...

  9. 【ORACLE 高可用】作业 :配置ORACLE GoldenGate 2

    OGG作业: 输出完整的操作过程: 1.不使用数据泵完成Oracle-Oracle的双向复制. 2.使用数据泵进行Oracle-Oracle的单向复制. 3.完成Oracle-MySQL的单向复制. ...

最新文章

  1. 图神经网络新课上架:​宾大2020秋季在线课程开课,视频上线B站
  2. 报名 | Sven Travis教授设计与人工智能思享会
  3. python pandas for循环_python – 将一个for循环应用于Pandas中的多个DataFrame
  4. 细思恐极,插上U盘就开始执行Python代码的程序
  5. java image 设置大小_如何在Java中调整BufferedImage的大小
  6. 拳王公社:缺流量难变现?文库引流让你0成本可获5000精准粉!
  7. tigerVNC的简单使用教程(CentOS 自带VNC包的远程桌面连接)
  8. 密文恢复出明文的过程称为_整流二极管的反向恢复过程图解
  9. Day0205____数据库
  10. 用 Wolfram 语言绘制电子轨道
  11. 电子通信类顶级会议及期刊2(自用更新版)
  12. Word文件批量查找替换字符串
  13. 重要的xcel文件e报表丢了如何恢复呢
  14. 一、Vulkan开发理论基础知识
  15. 【Pytorch】量化
  16. Vue下使用docxtemplater-POI模式导出word
  17. Mac端Python+Appium环境搭建
  18. heidisql修改mysql密码_读取HeidiSQL 配置文件中的密码
  19. 2022-2028年中国汽车设计行业发展现状调查及市场分析预测报告
  20. python 中的 __repr__() 方法

热门文章

  1. java 打包jar文件以在没有安装JDK或JRE的机子上运行
  2. nginx重新安装 引起的问题
  3. ajax实现highchart与数据库数据结合完整案例分析(三)---柱状折线图
  4. Linux内核启动过程概述
  5. 判断指定目录下的所有[图片]的扩展名, 并打印出文件名.
  6. Linux MTD系统剖析
  7. 一步一步实现自己的模拟控件(6)——控件树及控件区域
  8. 低碳生活:充电电池及充电器
  9. AttributeError: module 'tensorflow' has no attribute 'sub'
  10. cors解决ajax跨域