zoukankan      html  css  js  c++  java
  • OGG学习笔记04-OGG复制部署快速参考

    OGG学习笔记04-OGG复制部署快速参考
    源端:Oracle 10.2.0.5 RAC + ASM
    节点1 Public IP地址:192.168.1.27

    目标端:Oracle 10.2.0.5
    IP地址:192.168.1.30

    操作目标:将源端数据库业务用户jy下两张表ogg同步到目标端数据库业务用户ludan下。
    在源端配置OGG extract、data pump进程;数据初始化;目标端配置OGG replicat进程。

    本文假设两端的OGG软件和环境变量已配置完成,即操作系统ogg用户登陆系统,确认ggsci可以正常使用,mgr管理进程正常启动,dblogin可以正常登陆到数据库。
    本文意义:OGG复制快速参考,补充一些前面未提及的ogg相关知识点。

    1. 配置源端OGG

    这一步主要做的工作:
    在源端数据库上创建一个单独的数据库用户;
    开启数据库最小附加日志,需要同步的表开启详细附加日志;
    配置好extract进程lxjyrac1;
    配置好data pump进程lpjyrac1;

    1.1 在源端数据库上创建一个单独的数据库用户

    create user ggs_admin identified by ggs_admin;
    grant dba to ggs_admin;

    1.2 开启数据库最小附加日志,需要同步的表开启详细附加日志

    --查看数据库附加日志开启状态:
    SQL> 
    select SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI from v$database;
    
    --数据库级别开启最小附加日志:
    SQL> 
    alter database add supplemental log data;
    
    --表级别开启详细附加日志:
    GGSCI (oradb27) > 
    dblogin userid ggs_admin@racbeq, password ggs_admin
    add trandata jy.t_second
    add trandata jy.t_second_p

    1.3 在源端配置extract进程
    我这里将extract进程起名为:lxjyrac1

    编辑lxjyrac1进程的配置文件:

    GGSCI (oradb27) >
    edit param lxjyrac1

    --Local Extract lxjyrac1
    --Author: Alfred Zhao
    --
    EXTRACT lxjyrac1
    SETENV(NLS_LANG=american_america.ZHS16GBK)
    SETENV(ORACLE_SID=jyrac1)
    USERID ggs_admin, PASSWORD ggs_admin
    --TRANLOGOPTIONS ASMUSER sys@asmbeq, ASMPASSWORD oracle
    TRANLOGOPTIONS DBLOGREADER
    EXTTRAIL ./dirdat/sa
    TABLE JY.T_SECOND;
    TABLE JY.T_SECOND_P;

    当前数据库版本是10.2.0.5 RAC + ASM,由于数据库redo日志放在ASM上,所以extract进程需要配置TRANLOGOPTIONS选项,否则获取不到数据库日志。
    上面的两种方式任意选择哪种都可以,使用“--” 注释其中一种。

    添加lxjyrac1进程:

    GGSCI (oradb27) 1> add extract lxjyrac1, tranlog, begin now, threads 2
    EXTRACT added.
    GGSCI (oradb27) 2> add exttrail ./dirdat/sa, extract lxjyrac1, megabytes 50
    EXTTRAIL added. 

    1.4 在源端配置datapump进程
    我这里将datapump进程起名为:lpjyrac1

    编辑lpjyrac1进程的配置文件:

    GGSCI (oradb27) >
    edit param lpjyrac1

    --Local datapump lpjyrac1
    --Author: Alfred Zhao
    --
    EXTRACT lpjyrac1
    PASSTHRU
    RMTHOST 192.168.1.30, MGRPORT 7777
    RMTTRAIL ./dirdat/ta
    TABLE JY.T_SECOND;
    TABLE JY.T_SECOND_P;

    添加lpjyrac1进程(本地datapump进程):

    GGSCI (oradb27) 1> add extract lpjyrac1, exttrailsource ./dirdat/sa, begin now
    EXTRACT added.
    GGSCI (oradb27) 2> ADD RMTTRAIL ./dirdat/ta, EXTRACT LPJYRAC1, MEGABYTES 50
    RMTTRAIL added.

    1.5 源端启动所有进程
    启动extract进程lxjyrac1、datapump进程lpjyrac1:

    GGSCI (oradb27) > 
    start extract lxjyrac1
    start extract lpjyrac1

    2. 数据初始化

    这一步主要做的工作:
    源端需要同步的数据表导出;
    目标端导入数据,完成初始化。

    2.1 数据导出
    导出业务用户jy并把导出文件传输到目标数据库所在主机:

    [oracle@oradb27 ~]$ exp jy/jy file=exp_jy.dmp log=exp_jy.log
    [oracle@oradb27 ~]$ scp exp_jy.dmp 192.168.1.30:/home/oracle/

    2.2 数据导入
    创建数据库业务用户ludan:

    SQL>
    create user ludan identified by ludan;
    grant connect, resource to ludan;

    imp 导入数据:

    [oracle@oradb30 ~]$ imp ludan/ludan fromuser=jy touser=ludan file=exp_jy.dmp log=imp_jy.log ignore=y

    3. 配置目标端OGG

    这一步主要做的工作:
    在目标端数据库上创建一个单独的数据库用户;
    在目标端数据库上创建checkpointtable;

    3.1 在目标端数据库上创建一个单独的数据库用户

    SQL>
    create user ggt_admin identified by ggt_admin;
    grant dba to ggt_admin;

    3.2 在目标端数据库上创建checkpointtable
    注意配置文件GLOBALS是位于ogg当前目录下的,确认内容正确配置了checkpointtable。
    这里配置的checkpointtable名字为chkpt

    GGSCI (oradb30) > 
    edit param ./GLOBALS
    
    checkpointtable ggt_admin.chkpt
    
    GGSCI (oradb30) > 
    dblogin userid ggt_admin@ora10, password ggt_admin
    add checkpointtable

    3.3 在目标端创建replicat进程
    我这里将replicat进程起名为:rjyrac1

    GGSCI (oradb30) >
    edit param rjyrac1

    --replicat rjyrac1
    --Author: Alfred Zhao
    --
    REPLICAT rjyrac1
    SETENV (ORACLE_SID=ora10)
    USERID ggt_admin, PASSWORD ggt_admin
    DISCARDFILE ./dirrpt/rjy1.dsc, PURGE
    HandleCollisions
    AssumeTargetDefs
    Map jy.*,Target ludan.*;

    添加rjyrac1进程(replicat进程):

    GGSCI (oradb30) > 
    add replicat rjyrac1, exttrail ./dirdat/ta

    3.4 目标端启动进程
    启动replicat进程rjyrac1:

    GGSCI (oradb30) > 
    start replicat rjyrac1

    4. ogg相关知识点补充

    4.1 OGG中ASM连接问题
    ogg连接到ASM实例的连接有三种方式:Net8、BEQ、DBLOGREADER,能否使用DBLOGREADER取决于使用的数据库版本。

    上文在lxjyrac1进程配置中,如果选择BEQ这种连接方式
    TRANLOGOPTIONS ASMUSER sys@asmbeq, ASMPASSWORD oracle
    那么,源数据库对应的“tnsnames.ora”配置中别名"asmbeq"的内容:

    ASMBEQ =
      (DESCRIPTION =
        (ADDRESS = 
          (PROTOCOL = BEQ)
          (PROGRAM = /u01/app/oracle/product/10.2.0.5/dbhome_1/bin/oracle)
          (ARGV0 = oracle+ASM1)    
          (ARGS = '(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=BEQ)))')
          (ENVS = 'ORACLE_HOME=/u01/app/oracle/product/10.2.0.5/dbhome_1,ORACLE_SID=+ASM1')
        )
        (CONNECT_DATA =
          (SERVICE_NAME = +ASM)
          (INSTANCE_NAME = +ASM1)
        )
      )

    目标数据库“tnsnames.ora”配置中别名"ora10"的内容,Net8连接方式类似这种配置:

    ORA10 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.30)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = ora10)
        )
      )

    使用DBLOGREADER相当于直接利用Oracle中的一个ASM API去访问文件,不需要配置TNS,也不需要用户名密码,是最简单的方式,但是需要要求数据库版本是“11.2.0.2”或“10.2.0.5”及以后的版本。
    本文环境“10.2.0.5 RAC + ASM”,就是使用的这种最简单的方式,经测试可用。

    4.2 OGG中的复杂结构运维经验
    实际上无论是OGG的双向复制、广播复制、级联复制,都是由两个或多个单向复制组成的,难度相比单纯的单向复制并没有增长多少,只是维护的工作量多了,建议规范好各进程的名字,有助于提高管理效率。

    GGSCI (oradb30) 1> info all
    
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    
    MANAGER     RUNNING                                           
    EXTRACT     RUNNING     LPJY1       00:00:00      00:00:04    
    EXTRACT     RUNNING     LPJY2       00:00:00      00:00:04    
    EXTRACT     RUNNING     LXJY1       00:00:00      00:00:07    
    REPLICAT    RUNNING     RJYRAC1     00:00:00      00:00:06    

    可以看到本次作为目标端的oradb30。一眼就可以判断出,跟本次部署有关的只有RJYRAC1进程,其他的LXJY1,LPJY1,LPJY2进程,显然是其他OGG配置,oradb30作为源端端一些进程。
    如果根据名字不能完全弄清楚,可以“view param 名字”看具体的配置文件,即可一目了然,比如查看进程lxjy1配置文件内容:

    GGSCI (oradb30) 3> view param lxjy1
    
    --Local Extract lxjy1
    --Author: Alfred Zhao
    --
    EXTRACT lxjy1
    SETENV(NLS_LANG=american_america.ZHS16GBK)
    SETENV(ORACLE_SID=ora10)
    USERID ggs_admin, PASSWORD ggs_admin
    EXTTRAIL ./dirdat/sa
    TABLE JY.T_SECOND;
    TABLE JY.T_SECOND_P;

    至此,OGG学习笔记基础部分的学习就已经结束。

  • 相关阅读:
    从JAVA看C#中volatile和synchronized关键字的作用
    SSAS动态添加分区 (转载)
    IIS7的集成模式下如何让自定义的HttpModule不处理静态文件(.html .css .js .jpeg等)请求
    SqlServer Analysis Service的事实维度关系
    SqlServer分区表概述(转载)
    SQL2005中的事务与锁定(九)-(1)- 转载
    SQL2005中的事务与锁定(八)- 转载
    SQL2005中的事务与锁定(七)
    LINUX下编译ffmpeg-x264出现的错误及解决转
    从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题 (转)
  • 原文地址:https://www.cnblogs.com/chenliyang/p/6543169.html
Copyright © 2011-2022 走看看