dg主备切换 oracle 更换ip_oracle dg切换后ip地址改变 - CSDN
精华内容
参与话题
  • oracle dg切换

    2020-06-23 00:04:01
    ip 主机名 db_name db_unique_name server_name 主库 192.168.6.30 enmotech1 orcl orcl orcl 库 192.168.6.31 enmotech2 orcl orcldg orcldg 1.DG...
    服务器属性          ip 主机名 db_name db_unique_name server_name
    主库 192.168.6.30 enmotech1 orcl

    orcl

    orcl
    备库 192.168.6.31 enmotech2 orcl orcldg orcldg
    1.DG三种模式
    1.1.最大性能模式max performance-默认
    这种保护模式(默认)提供了可能的最高级别的数据保护,而不影响主数据库的性能。这是通过允许事务
    在恢复该事务所需重做数据在写到本地联机重做日志后立即提交而实现的。主数据库的重做数据流也写到
    至少一个备数据库,但是那个重做流相对于创建重做数据的事务是异步写的。当所用的网络连接有足够的
    带宽,这种模式提供了近似于最大可用性模式的数据保护级别,并且对主数据库性能的影响最小。
    
    1.2.最大可用性模式max availability
    这种保护模式提供了可能的最高级别的数据保护,而不用与主数据库的可用性相折中。与最大保护模式相
    同,在恢复事务所需的重做写到本地联机重做日志和至少一个事务一致性备数据库上的备重做日志之前,
    事务将不会提交。与最大保护模式不同的是,如果故障导致主数据库无法写重做流到异地备重做日志时,
    主数据库不会关闭。替代地,主数据库以最大性能模式运行直到故障消除,并且解决所有重做日志文件中
    的中断。当所有中断解决之后,主数据库自动继续以最大可用性模式运行。
    这种模式确保如果主数据库故障,但是只有当第二次故障没有阻止完整的重做数据集从主数据库发送到至
    少一个备数据库时,不发生数据丢失。
    
    1.3.最大保护模式max protection
    这种保护模式确保如果主数据库故障不会发生数据丢失。要提供这种级别的保护,恢复每个事务所需的重
    做数据必须在事务提交之前同时写到本地联机重做日志和至少一个备数据库上的备重做日志。要确保不发
    生数据丢失,如果故障导致主数据库无法写重做流到至少一个事务一致性备数据库的备重做日志时,主数
    据库会关闭。
    
    1.4.查询当前模式
    SYS@orcl> select protection_mode,protection_level from v$database;
    
    2.DG切换测试
    2.1 DG switchover 切换测试
    enmotech1:主库--------->备库
    enmotech2:备库--------->主库
    
    2.2主备库角色状态查询
    主备库角色状态查询
    enmotech1主库:
    set linesize 120;
    set pagesize 999;
    col SWITCHOVER_STATUS for a30;
    col  DATABASE_ROLE for a30;
    col OPEN_MODE for a30;
    select switchover_status,database_role,open_mode from v$database;
    
    SWITCHOVER_STATUS	       DATABASE_ROLE		      OPEN_MODE
    ------------------------------ ------------------------------ ------------------------------
    SESSIONS ACTIVE 	       PRIMARY			      READ WRITE
    enmotech2备库:
    set linesize 120;
    set pagesize 999;
    col SWITCHOVER_STATUS for a30;
    col  DATABASE_ROLE for a30;
    col OPEN_MODE for a30;
    SYS@orcl> select switchover_status,database_role,open_mode from v$database;
    
    SWITCHOVER_STATUS	       DATABASE_ROLE		      OPEN_MODE
    ------------------------------ ------------------------------ ------------------------------
    NOT ALLOWED		           PHYSICAL STANDBY 	      READ ONLY WITH APPLY
    
    enmotech1显示:TO STANDBY/PRIMARY,如果显示SESSION ACTIVE表示还有活动的会话,需要关闭会话再检查
    enmotech2显示:NOT ALLOWED/PHYSICAL STANDBY
    
    2.3主库切到备库(enmotech1操作)
    SYS@orcl> alter database commit to switchover to physical standby;
    SYS@orcl> alter database commit to switchover to physical standby with session shutdown;
    --如果状态显示SESSION ACTIVE,在切换的时候可以指定with session shutdown 子句强制关闭活动的会话。
    SYS@orcl> shutdown immediate
    SYS@orcl> startup mount
    
    2.4备库切换到主库(enmotech2操作)
    SYS@orcl> alter database commit to switchover to primary;
    SYS@orcl> alter database open;
    
    2.5新备库(enmotech1操作)执行APPLY LOG命令
    --启用mount状态下的APPLY LOG
    SYS@orcl> alter database recover managed standby database disconnect from session;
    --启用open状态(READ ONLY WITH APPLY)下的APPLY LOG
    SYS@orcl> alter database recover managed standby database cancel;
    SYS@orcl> alter database open;
    SYS@orcl> alter database recover managed standby database disconnect from session;
    SYS@orcl> select switchover_status,database_role,open_mode from v$database;
    
    2.5对换主备库的ip,并修改主备库的host文件,重启监听
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.6.30 enmotech1 oracle
    192.168.6.31 enmotech2 oracle
    
    3.1.DG failover 切换测试
    enmotech1:主库------>崩溃
    enmotech2:备库------>主库
    
    3.2
    主备库角色状态查询
    SYS@orcl> select switchover_status,database_role,open_mode from v$database;
    
    3.2.1主库(enmotech1)通过shutdown abort方式人工模拟主库崩溃,直接关闭
    SYS@orcl> select open_mode from v$database;
    SYS@orcl> shutdown abort
    SYS@orcl> startup mount
    SYS@orcl> alter system flush redo to 'orcldg';
    
    3.2.2备库(enmotech2)执行如下操作切换为主库
    SYS@orcl> select thread#, low_sequence#, high_sequence# from v$archive_gap;
    --如果没有发现明显的gap现象,说明此次的failover不会有数据损失情况。在备库,要进行关闭apply和结束应用动作。
    SYS@orcl> alter database recover managed standby database cancel;
    SYS@orcl> alter database recover managed standby database finish;
    SYS@orcl> alter database commit to switchover to primary;
    SYS@orcl> alter database open;
    SYS@orcl> select open_mode, switchover_status from v$database;
    
    4.DG failover后重建DG
    enmotech1:崩溃------>备库
    enmotech2:主库------>主库(保持主库状态不变)
    
    4.1.新主库(enmotech2)角色状态查询
    SYS@orcl> select switchover_status,database_role,open_mode from v$database;
    
    4.2新主库(enmotech2)创建备库控制文件
    mkdir -p /u01/bak/
    SYS@orcl> alter database create standby controlfile as '/u01/bak/control01.ctl';
    
    4.3将备库控制文件拷贝至db11
    scp ezdb12:/u01/bak/control01.ctl /u01/app/oracle/oradata/orcl/control01.ctl
    cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/
    mv /u01/app/oracle/fast_recovery_area/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/control02.ctl
    
    4.4恢复对应数据文件至db11,并启动enmotech1到mount状态,应用APPLY模式
    SYS@orcl> startup mount;
    SYS@orcl> alter database recover managed standby database disconnect from session;
    
    4.5启动enmotech1至OPEN状态,并应用APPLY REDO模式
    SYS@orcl> alter database recover managed standby database cancel;
    SYS@orcl> alter database open;
    SYS@orcl> alter database recover managed standby database disconnect from session;
    
    5.开启和关闭DataGuard的流程
    5.1.关闭
    关闭主库
    SYS@orcl> shutdown immediate
    
    5.2关闭主库监听
    lsnrctl stop
    
    5.3查询备库是否正在执行重做应用或实时应用。如果MRP0或MRP进程存在,则备库正在应用重做。
    SYS@orcl> select process, status from v$managed_standby;
    
    5.4如果重做应用程序正在运行,停止备库的Redo日志的应用
    SYS@orcl> alter database recover managed standby database cancel;
    
    5.5关闭备库
    SYS@orcl> shutdown immediate
    
    5.6关闭备库监听
    lsnrctl stop
    
    6.1.开启
    启动备库监听
    lsnrctl start
    
    6.2启动备库到mount状态
    SYS@orcl> startup mount;
    
    6.3开启备库的Redo日志应用
    SYS@orcl> alter database recover managed standby database using current logfile disconnect from session;
    
    6.4启动主库监听
    lsnrctl start
    
    6.5启动主库
    SYS@orcl> startup;
    
    6.6检查日志情况的SQL语句
    select al.thrd "Thread", almax "Last Seq Received", lhmax "Last Seq Applied"
     from (select thread# thrd, max(sequence#) almax
           from v$archived_log
           where resetlogs_change#=(select resetlogs_change# from v$database)
           group by thread#) al,
          (select thread# thrd, max(sequence#) lhmax
           from v$log_history
           where first_time=(select max(first_time) from v$log_history)
           group by thread#) lh
     where al.thrd = lh.thrd;

     

    展开全文
  • Oracle DG之--客户端TAF 配置系统环境:操作系统:RedHat EL5OracleOracle 11gR2 系统架构图如图所示:数据库(生产库): BJDB 库 (容灾库): SHDBDG的架构模式为Physical DG,数据保护模式为:Max ...

    Oracle DG之--客户端TAF 配置

    系统环境:

    操作系统:RedHat EL5

    Oracle: Oracle 11gR2


    wKioL1NXhaGysLtaAAIEl99FSRw112.jpg

     系统架构图

    如图所示:

    主数据库(生产库): BJDB

    备        库 (容灾库): SHDB


    DG的架构模式为Physical DG,数据保护模式为:Max Protection。

    1、系统架构

    主库:

    SYS@ TestDB12>show parameter name

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    db_name                              string           TestDB12

    db_unique_name                       string      bjdb

    instance_name                        string          TestDB12

    service_names                        string             bjdb


    SYS@ TestDB12>select name,dbid,database_role,protection_mode from v$database;

    NAME                                 DBID DATABASE_ROLE    PROTECTION_MODE

    ------------------------------ ---------- ---------------- --------------------

    TESTDB12                       2811829300 PRIMARY          MAXIMUM PERFORMANCE

    主库归档配置:

    log_archive_dest_1                   string      LOCATION=/dsk4/arch_bj

                                                                         VALID_FOR=(ALL_LOGFILES,ALL_

                                                                         ROLES)

                                                                         DB_UNIQUE_NAME=bjdb

    log_archive_dest_2                   string      SERVICE=shdb ASYNC

                                                                         VALID_FOR=(ONLINE_LOGFILES,P

                                                                         RIMARY_ROLE)

                                                                         DB_UNIQUE_NAME=shdb

    备库:

    SYS@ shdb>show parameter name

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    db_name                              string               TestDB12

    db_unique_name                       string         shdb

    instance_name                        string             shdb

    service_names                        string              shdb

    SYS@ shdb>select name,dbid,database_role,protection_mode from v$database;

    NAME            DBID DATABASE_ROLE    PROTECTION_MODE

    --------- ---------- ---------------- --------------------

    TESTDB12  2811829300 PHYSICAL STANDBY MAXIMUM PERFORMANCE

    备库归档日志:

    log_archive_dest_1                   string      LOCATION=/dsk4/arch_sh

                                                                         VALID_FOR=(ALL_LOGFILES,ALL_

                                                                         ROLES)

                                                                         DB_UNIQUE_NAME=shdb

    log_archive_dest_2                   string      SERVICE=bjdb ASYNC

                                                                         VALID_FOR=(ONLINE_LOGFILES,P

                                                                          RIMARY_ROLE)

                                                                          DB_UNIQUE_NAME=bjdb

    主备库网络配置:

    BJDB =

     (DESCRIPTION =

       (ADDRESS_LIST =

         (ADDRESS = (PROTOCOL = TCP)(HOST = bjsrv)(PORT = 1521))

       )

       (CONNECT_DATA = (SERVER = DEDICATED)

         (SERVICE_NAME = bjdb)

       )

     )


    SHDB =

     (DESCRIPTION =

       (ADDRESS_LIST =

         (ADDRESS = (PROTOCOL = TCP)(HOST = shsrv)(PORT = 1521))

       )

       (CONNECT_DATA = (SERVER = DEDICATED)

         (SERVICE_NAME = shdb)

       )

     )

    2、客户端TAF 配置

     1)首先在主库上配置一个TAF的service

    此服务在数据库出现故障时会发送通知给客户端,允许查询语句在故障转移发生后继续运行。  

    SYS@ TestDB12>begin

    DBMS_SERVICE.CREATE_SERVICE

    (service_name=> 'dg_sw',

     network_name => 'dg_sw',

    aq_ha_notifications =>TRUE,

    failover_method => 'BASIC',

    failover_type =>'SELECT',

    failover_retries => 30,

    failover_delay => 5);

    end;

    /

    PL/SQL procedure successfully completed.

    Elapsed: 00:00:00.15

    2)建立一个存储过程,用于调用service,确保只在主库运行

    我们创建一个存储过程来实现此目的,如果当前数据库是主库它就启动此服务,如果是备库就停止。

    SYS@ TestDB12>create or replace procedure dg_taf_proc

    is

    v_role VARCHAR(30);

    if v_role = 'PRIMARY'

    begin

    select DATABASE_ROLE into v_role from V$DATABASE;

    if v_role = 'PRIMARY'

    then

    DBMS_SERVICE.START_SERVICE('dg_sw');

    else

    DBMS_SERVICE.STOP_SERVICE('dg_sw');

    end if;

    end;

     /

    Procedure created.

    3)创建2个触发器来确保服务可以运行    

    创建两个触发器,让数据库在启动和角色转换时运行此存储过程。

    SYS@ TestDB12>

    create or replace TRIGGER dg_taf_trg_startup

    after startup on database

    begin

    dg_taf_proc;

    end;

    /

    Trigger created.

    Elapsed: 00:00:00.08

    用于当数据库open时,如果是主库则执行存储过程。

    SYS@ TestDB12>

    SYS@ TestDB12>create or replace TRIGGER dg_taf_trg_rolechange

    after db_role_change on database

    begin

    dg_taf_proc;

    end;

    /

    Trigger created.

    当数据库切换后,如果是主库则执行存储过程。

    4)客户端tnsnames 配置

    DG_SW =

     (DESCRIPTION =

       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.120)(PORT = 1521))

        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.130)(PORT = 1521))

       (LOAD_BALANCE = yes)

       (CONNECT_DATA =

         (SERVER = DEDICATED)

         (SERVICE_NAME = dg_sw)

         (FAILOVER_MODE =

           (TYPE = session)

           (METHOD = basic)

           (RETRIES = 180)

           (DELAY = 5)

         )

       )

     )

    注:8.120 是主库,8.130 是备库


    3、验证客户端的TAF

    1)首先在主库上执行该存储过程

    04:19:09 SYS@ TestDB12>execute dg_taf_proc;

    PL/SQL procedure successfully completed.

    Elapsed: 00:00:00.06

    04:22:55 SYS@ TestDB12>show parameter name

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    db_name                              string      TestDB12

    db_unique_name                       string      bjdb

    instance_name                        string      TestDB12

    service_names                        string      dg_sw

    注:service_name 变为dg_sw

    04:23:01 SYS@ TestDB12> alter system switch logfile;

    在主库做日志的切换,将变化应用到备库

    2)在备库查询

    SYS@ shdb>select trigger_name,trigger_name from dba_triggers

    where trigger_name like '%DG%';

    TRIGGER_NAME                   TRIGGER_NAME

    ------------------------------ ------------------------------

    DG_TAF_TRG_STARTUP             DG_TAF_TRG_STARTUP

    DG_TAF_TRG_ROLECHANGE          DG_TAF_TRG_ROLECHANGE

    3)客户端连接测试

    C:\Documents and Settings\tiany>sqlplus sys/oracle@dg_sw as sysdba

    SQL*Plus: Release 11.2.0.1.0 Production on 星期三 4月 23 16:35:28 2014

    Copyright (c) 1982, 2010, Oracle.  All rights reserved.

    连接到:

    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

    With the Partitioning, Oracle Label Security, OLAP, Data Mining,

    Oracle Database Vault and Real Application Testing options

    SQL>

    此时应连接到主库!


    4、主备库切换后的TAF测试

    1)主备库切换

    主库切换后:

    SYS@ TestDB12>select database_role ,switchover_status from v$database;

    DATABASE_ROLE    SWITCHOVER_STATUS

    ---------------- --------------------

    PHYSICAL STANDBY RECOVERY NEEDED

    备库切换后:

    SYS@ shdb>select database_role ,switchover_status from v$database;

    DATABASE_ROLE    SWITCHOVER_STATUS

    ---------------- --------------------

    PRIMARY          NOT ALLOWED

    Elapsed: 00:00:00.02


    2)客户端连接测试

    C:\Documents and Settings\tiany>sqlplus sys/oracle@dg_sw as sysdba

    SQL*Plus: Release 11.2.0.1.0 Production on 星期三 4月 23 16:43:49 2014

    Copyright (c) 1982, 2010, Oracle.  All rights reserved.

    连接到:

    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

    With the Partitioning, Oracle Label Security, OLAP, Data Mining,

    Oracle Database Vault and Real Application Testing options

    SQL> show parameter name

    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    db_name                              string      TestDB12

    db_unique_name                       string      shdb

    instance_name                        string      shdb

    service_names                        string      dg_sw

    切换后,在备库上存储过程启动了TAF的service ,客户端再连接时,自动连接到了当前的主库(原备库)。

        @至此,在DG环境下客户端的TAF配置基本完成。
    展开全文
  • 需求为不管源端Oracle还是目标端SQL server发生主机切换时,ogg需要随时可以容灾切换,保证ogg同步正常工作 Oracle DG Oracle角色 主机名 IP 主库 host-1 192.168.1.11 从库 host-2 192....

    背景:

    源端数据库是Oracle DG架构,其中Oracle的多张表需要OGG实时同步到SQL server数据库上,SQL server为AlwaysOn架构,

    需求为不管源端Oracle还是目标端SQL server发生主机切换时,ogg需要随时可以容灾切换,保证ogg同步正常工作

    Oracle DG

    Oracle角色 主机名 IP
    主库 host-1 192.168.1.11
    从库  host-2 192.168.1.12

    SQL server AlwaysOn

    SQL server角色 主机名 IP
    主库 win-1 192.168.1.21
    备库 win-2 192.168.1.22
    备库 win-3 192.168.1.23

    拓扑图

    Oracle端为sersync+rsync实时同步ogg目录文件到备库,windows端为均挂载共享目录nas,将windows端ogg目录安装到nas上,实现ogg跟随SQL server主节点快速切换;

    Oracle端ogg容灾部署

    主库 host-1 192.168.1.11
    从库 host-2 192.168.1.12

    一、主从库安装ogg软件


    1.创建目录 /u01/app/ogg


    上传 fbo_ggs_Linux_x64_shiphome.zip
    解压 unzip fbo_ggs_Linux_x64_shiphome.zip
    cd  /u01/app/fbo_ggs_Linux_x64_shiphome/Disk1/response
    vim oggcore.rsp
    --主要修改内容:
    INSTALL_OPTION=ORA11g --安装选项,如果是oracle11g选择ORA11g
    SOFTWARE_LOCATION=/u01/app/ogg --OGG的安装目录,一定要是一个空目录
    START_MANAGER=false --是否自动启动mgr管理进程

    --其他选择默认即可

    2、启动静默安装


    cd /u01/app/fbo_ggs_Linux_x64_shiphome/Disk1
    ./runInstaller -silent -responseFile /u01/app/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp
    等待安装完成即可。

    二、Oracle主从库安装sersync+rsync

    1.部署rsync服务(rsync-server服务器上配置)


    yum install rsync -y --在主从库上root用户安装rsync,如果嫌yum版本过低也可以源码安装

    2.修改rsync配置文件

    vim /etc/rsyncd.conf --默认rsync没有配置文件,创建一个,文件中汉字仅为注释,使用中请将所有注释清除

    --主库host-1

    #Rsync server
    uid = root
    gid = root
    use chroot = no                         -- 安全相关
    max connections = 2000                  -- 并发连接数
    timeout = 600                           -- 超时时间(秒)
    pid file =/var/run/rsyncd.pid           -- 指定rsync的pid目录
    lock file =/var/run/rsync.lock          -- 指定rsync的锁文件【重要】
    log file = /var/log/rsyncd.log          -- 指定rsync的日志目录
    ignore errors                           --忽略一些I/O错误
    read only = false                       --设置rsync服务端文件为读写权限
    list = false                            --不显示rsync服务端资源列表
    hosts allow = 192.168.0.0/16              --允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
    hosts deny = 0.0.0.0/32                 --禁止数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开
    auth users = rsync_backup               --执行数据同步的用户名,可以设置多个,用英文状态下逗号隔开
    secrets file =/etc/rsync.12.pass        --用户认证配置文件,里面保存用户名称和密码
    #################################################
    [ogg]                                   -- 模块 
    comment = ogg
    path = /u01/app/ogg

    --从库host-2
    #Rsync server
    uid = root
    gid = root
    use chroot = no
    max connections = 2000
    timeout = 600
    pid file =/var/run/rsyncd.pid
    lock file =/var/run/rsync.lock
    log file = /var/log/rsyncd.log
    ignore errors
    read only = false
    list = false
    hosts allow = 192.168.0.0/16
    hosts deny = 0.0.0.0/32
    auth users = rsync_backup
    secrets file =/etc/rsync.24.pass   --密码文件和主库区别
    #################################
    [ogg] 
    comment = ogg
    path = /u01/app/ogg


    3.创建用户认证文件,设置文件权限

    --主库host-1
    echo  "rsync_backup:123456">/etc/rsync.12.pass  --配置文件,添加以下内容
    chmod 600 /etc/rsync.12.pass
    --从库host-2
    echo  "rsync_backup:123456">/etc/rsync.24.pass  --配置文件,添加以下内容
    chmod 600 /etc/rsync.24.pass

    4.主从库启动守护进程,并写入开机自启动

    --启动服务
    rsync --daemon  #可以使用--config= 指定非标准路径下的配置文件

    vim /etc/rc.local
    # rsync server progress
    /usr/bin/rsync --daemon

    5.主从rsync-client密码配置

    --主库host-1
    echo "123456">/etc/rsync.24.pass
    chmod 600 /etc/rsync.24.pass
     
    --从库host-2
    echo "123456">/etc/rsync.12.pass
    chmod 600 /etc/rsync.12.pass

    6.主从库创建日志

    --主库host-1
    touch /u01/app/ogg/ogg.log
    --从库host-2
    touch /u01/app/ogg/ogg.log

    7.测试从库拉取ogg文件


    --从库host-2
    rsync  -avzP rsync_backup@192.168.1.11::ogg/ /u01/app/ogg/ --password-file=/etc/rsync.12.pass
    ...
    sent 37903 bytes  received 532161555 bytes  4730661.85 bytes/sec
    total size is 4541399947  speedup is 8.53
    --测试成功

    8.主从上传部署sersync

    rz sersync2.5.4_64bit_binary_stable_final.tar.gz

    tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/
    cd /usr/local/
    mv GNU-Linux-x86 sersync

    9.配置sersync

    cp sersync/confxml.xml  sersync/confxml.xml-bak
    vim  sersync/confxml.xml

    --主库host-1

    <inotify>
    <delete start="true"/>
    <createFolder start="true"/>
    <createFile start="false"/>  --改为true
    <closeWrite start="true"/>
    <moveFrom start="true"/>
    <moveTo start="true"/>
    <attrib start="false"/> --改为true
    <modify start="false"/> --改为true
    </inotify>

    <sersync>
    <localpath watch="/opt/tongbu">  改为/u01/app/ogg
        <remote ip="127.0.0.1" name="tongbu1"/> 改为<remote ip="192.168.1.12" name="ogg"/>
        <!--<remote ip="192.168.8.39" name="tongbu"/>-->
        <!--<remote ip="192.168.8.40" name="tongbu"/>-->
    </localpath>
    <rsync>
        <commonParams params="-artuz"/>
        <auth start="false" users="root" passwordfile="/etc/rsync.pas"/> 改为<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.24.pass"/> 
        <userDefinedPort start="false" port="874"/><!-- port=874 -->
        <timeout start="false" time="100"/><!-- timeout=100 -->
        <ssh start="false"/>
    </rsync>


    --从库host-2

    <inotify>
    <delete start="true"/>
    <createFolder start="true"/>
    <createFile start="false"/>  --改为true
    <closeWrite start="true"/>
    <moveFrom start="true"/>
    <moveTo start="true"/>
    <attrib start="false"/> --改为true
    <modify start="false"/> --改为true
    </inotify>

    <sersync>
    <localpath watch="/opt/tongbu">  改为/u01/app/ogg
        <remote ip="127.0.0.1" name="tongbu1"/> 改为<remote ip="192.168.1.11" name="ogg"/>
        <!--<remote ip="192.168.8.39" name="tongbu"/>-->
        <!--<remote ip="192.168.8.40" name="tongbu"/>-->
    </localpath>
    <rsync>
        <commonParams params="-artuz"/>
        <auth start="false" users="root" passwordfile="/etc/rsync.pas"/> 改为<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.12.pass"/> 
        <userDefinedPort start="false" port="874"/><!-- port=874 -->
        <timeout start="false" time="100"/><!-- timeout=100 -->
        <ssh start="false"/>
    </rsync>

    10.设置主从环境变量


    echo "export PATH=$PATH:/usr/local/sersync/">>/etc/profile
    source /etc/profile


    11.现阶段是主库ogg目录同步向从库,所以需要开启主库sersync服务,监听主库ogg目录变化,同步到从库

    --检查从库host-2 rsync服务启动情况
    [root@host-2 ~]# netstat -nulpt| grep rsync
    --主库启动sersync
    [root@host-1 ~]# /usr/local/sersync/sersync2  -d -r -o /usr/local/sersync/confxml.xml
    set the system param
    execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
    execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
    parse the command param
    option: -d     run as a daemon
    option: -r     rsync all the local files to the remote servers before the sersync work
    option: -o     config xml name:  /usr/local/sersync/confxml.xml
    daemon thread num: 10
    parse xml config file
    host ip : localhost    host port: 8008
    will ignore the inotify createFile event 
    daemon start,sersync run behind the console 
    use rsync password-file :
    user is    rsync_backup
    passwordfile is     /etc/rsync.24.pass
    config xml parse success
    please set /etc/rsyncd.conf max connections=0 Manually
    sersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads) 
    Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)
    please according your cpu ,use -n param to adjust the cpu rate
    ------------------------------------------
    rsync the directory recursivly to the remote servers once
    working please wait...
    execute command: cd /u01/app/ogg && rsync -artuz -R --delete ./ rsync_backup@192.168.1.12::ogg --password-file=/etc/rsync.24.pass >/dev/null 2>&1 
    run the sersync: 
    watch path is: /u01/app/ogg

    --检查运行情况
    [root@host-1 ~]# ps -ef |grep sersync
    root     24387     1  0 16:50 ?        00:00:00 /usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml

    --检查从库ogg目录是否跟随主库ogg变化
    ll /u01/app/ogg/dirchk/  --文件时间变化,测试成功

    三、OGG容灾演练


    --计划切换DG时,可以先停止ogg同步,再停止sersync,之后再进行切换ogg,较为安全
    --非计划切换DG,主库不可用,大概可以套用以下步骤


    1.切换Oracle DG


    host-1:主库------>备库
    host-2:备库------>主库
    --主备库角色状态查询
    SQL>select switchover_status,database_role,open_mode from v$database;

    host-1切换到备库
    SQL> alter database commit to switchover to physical standby with session shutdown;
    #如果状态显示SESSION ACTIVE,在切换的时候可以指定with session shutdown 子句强制关闭活动的会话


    host-2切换到主库
    SQL> alter database commit to switchover to primary;
    SQL> alter database open;

    2.关闭host-1ogg,启动host-2ogg


    --在oracle用户下的.bash_profile 添加alias ggsci='rlwrap /u01/app/ogg/ggsci'

    GGSCI (host-1) 1>stop ex  --当主库切换时ex抽取进程自动中断
    GGSCI (host-1) 1>stop pup
    GGSCI (host-1) 1>stop mgr

    3.关闭host-1上的sersync监听服务


    [root@host-1 ~]# ps -ef |grep sersync
    root     24387     1  0 16:50 ?        00:00:00 /usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml

    kill -9 24387

    4.启动host-2上的ogg服务

    GGSCI (host-2) 1>start mgr
    GGSCI (host-2) 1>start ex
    GGSCI (host-2) 1>start pup
    GGSCI (host-2) 1>info all

    --遇到的问题
    ERROR   OGG-02803  Encountered a Data Guard role transition. Alter Extract to SCN 1,458,101 and restart Extract, or r
    ecreate Extract with the correct number of threads at SCN 1,458,101.
    --解决办法
    GGSCI (host-2) 1>alter extract ex ,scn 1458101
    GGSCI (host-2) 1>start ex

    --mgr或者pup无法启动,查看进程,有进程正在跑

    oracle   43037     1  0 Aug27 ?        00:01:46 /home/app/ogg/extract PARAMFILE /home/app/ogg/dirprm/pup.prm REPORTFILE /home/app/ogg/dirrpt/PUP.rpt PROCESSID PUP USESUBDIRS
    oracle   54741 54329  0 11:42 pts/2    00:00:00 grep --color=auto pup
    --解决办法
    kill -9 43037

    5.修复host-1的Oracle,开启只读模式


    SQL> shutdown immediate
    SQL> startup nomount;
    SQL>alter database mount standby database;
    SQL>alter database open read only;
    SQL>alter database recover managed standby database using current logfile disconnect from session;

    6.开启host-2sersync监听服务,同步host-2上的ogg到host-1上

    --检查host-1上rsync服务启动情况
    [root@host-1 ~]# netstat -nulpt| grep rsync
    --host-2启动sersync
    [root@host-2 ~]# /usr/local/sersync/sersync2  -d -r -o /usr/local/sersync/confxml.xml

    set the system param
    execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches
    execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events
    parse the command param
    option: -d     run as a daemon
    option: -r     rsync all the local files to the remote servers before the sersync work
    option: -o     config xml name:  /usr/local/sersync/confxml.xml
    daemon thread num: 10
    parse xml config file
    host ip : localhost    host port: 8008
    will ignore the inotify createFile event 
    daemon start,sersync run behind the console 
    use rsync password-file :
    user is    rsync_backup
    passwordfile is     /etc/rsync.12.pass
    config xml parse success
    please set /etc/rsyncd.conf max connections=0 Manually
    sersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads) 
    Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)
    please according your cpu ,use -n param to adjust the cpu rate
    ------------------------------------------
    rsync the directory recursivly to the remote servers once
    working please wait...
    execute command: cd /u01/app/ogg && rsync -artuz -R --delete ./ rsync_backup@192.168.1.11::ogg --password-file=/etc/rsync.12.pass >/dev/null 2>&1 
    run the sersync: 
    watch path is: /u01/app/ogg

    --检查sersync运行情况
    [root@host-2 ~]# ps -ef |grep sersync
    root     24387     1  0 16:50 ?        00:00:00 /usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml

    --检查host-1 ogg目录是否跟随主库ogg变化
    [root@host-1 ~]#ll /u01/app/ogg/dirchk/  --文件时间变化,测试成功

     

    windows 端OGG切换测试

    1.停止windows端win-1上的ogg进程

    GGSCI (win-1) 1>stop rer
    GGSCI (win-1) 1>stop mgr

    2.启动windows端win-2上的ogg进程mgr

    GGSCI (win-2) 1>start mgr
    GGSCI (win-2) 1>info  rer

    3.停止oracle端ogg的pup传输进程

    GGSCI (host-1) 1>stop pup

    4.修改源端pup参数rmthost为win-2

    GGSCI (host-1) 1>edit param pup

    extract pup
    USERID ggs, PASSWORD ggs
    SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
    SETENV (ORACLE_SID = orcl)
    rmthost 192.168.1.22, mgrport 7809
    rmttrail n:\ogg\dirdat\er
    PASSTHRU
    WILDCARDRESOLVE DYNAMIC
    Dynamicresolution
    table scott.test001;

    5.启动Oracle端pup

    GGSCI (host-1) 1>start pup

    6.启动windows端rer应用进程

    GGSCI (win-2) 1>info  rer
    #要是出现问题需要修改rer指针,info rer找到之前的记录
    #alter replicat rer, extseqno 159, extrba 136621541

    7.测试oracle端和windows端表记录,ogg同步容灾成功

    额外内容:

    修改windows端ogg部署的路径方法

    --拷贝ogg目录到其他路径
    --修改源端pup参数路径
    --修改源端pup进程路径
    GGSCI (host-1) 1>info pup
    GGSCI (host-1) 1>delete extract pup
    GGSCI (host-1) 1>add extract pup,exttrailsource ./dirdat/ex
    GGSCI (host-1) 1>add rmttrail n:\ogg\dirdat\er,ext pup,megabytes 200

    GGSCI (host-1) 1>alter pup extseqno 144,extrba 16599070
    --修改目标端mgr参数和rer参数路径
    --修改rer进程路径
    GGSCI (win-1) 1>info rer

    GGSCI (win-1) 1>dblogin sourcedb ggs userid ggs password ggs
    GGSCI (win-1) 1>delete replicat rer
    GGSCI (win-1) 1>add replicat rer,exttrail n:\ogg\dirdat\er,begin now,checkpointtable base.ckp
    GGSCI (win-1) 1>alter replicat rer, extseqno 159, extrba 136621541

     

    展开全文
  • Oracle DG主备切换VIP

    千次阅读 2018-02-05 13:04:26
    在做DG主备切换时,为使应用端在不修改连接配置的情况下,正常连接DG数据库,方法有几种; 一是,应用端连接主机为主机名,可以通过域名解析调整实现; 二是,应用端连接主机为IP, 通过设置VIP(手动配置或者f5等...

           在做DG主备切换时,为使应用端在不修改连接配置的情况下,正常连接DG数据库,方法有几种;

    一是,应用端连接主机为主机名,可以通过域名解析调整实现;

    二是,应用端连接主机为IP, 通过设置VIP(手动配置或者f5等集群工具)

    三是,应用端连接主机为IP,直接修改主机IP

           本文为通过手动配置VIP的形式实现DG主备切换对应用透明;以下是配置过程:

    1.      Primary配置vip

    ifconfig eth1:0 192.168.206.95 netmask255.255.255.128 #配置vip

    ifconfig eth1:0down #取消配置

    2.      修改listener.ora

    LISTENER =

      (DESCRIPTION_LIST=

        (DESCRIPTION =

          (ADDRESS =(PROTOCOL = TCP)(HOST =192.168.206.95)(PORT = 1521))

          (ADDRESS =(PROTOCOL = TCP)(HOST =192.168.206.61)(PORT = 1521))

          (ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC1521))

        )

    )

    3.      重启监听

    lsnrctl stop

    lsnrctl start

    4.      Switchover(略)

    切换完成后,primary与standby角色互换完成;

    5.      手动配置vip

    a.      取消原primary的vip

    ifconfig eth1:0down #取消配置

    lsnrctl stop、lsnrctl start

    b.      原Standby配置vip

    重复步骤1-3。切换完成;
    展开全文
  • Oracle 11gR2 DG部署(RMAN方式)

    千次阅读 2018-12-04 09:47:16
    Oracle DG部署(RMAN方式) Oracle DG部署(RMAN方式) 1.环境介绍 2.DG部署 2.1.建立主库orcl 2.2.主库开启归档 2.3.主库添加Standby Redo Log 2.4.从主库创建pfile文件 2.5.设置主库初始化参数 2.6.设置库...
  • oracle DG主备切换

    千次阅读 2017-04-12 11:08:09
    --切换前确认下主备信息 select open_mode, switchover_status, database_role, db_unique_name from v$database; --主库 alter database commit to switchover to physical standby with session shutdow
  • dg和ogg的区别--oracle数据库

    万次阅读 2018-12-04 15:42:21
    ADG和OGG的新特性,目前越来越多的客户重视灾数据站点的建设,由于存储级灾和操作系统级灾的局限性(主要是带宽高及事务完整性不容易保证),因此在选择甲骨文的应用级灾时,通常考虑的是DataGuard和...
  • AIX7.1_oralce11gR2的ADG安装文档

    千次阅读 2019-04-01 10:46:28
    环境说明: 主库: ip:10.143.183.31 sid:primary1 建立 GI ...库: ip:10.143.183.33 sid:standsty1 建立 GI 、ASM、oracle数据库软件、无需建立oracle数据库 ASM磁盘组说明: 数据: +DG_DATA1 +DG_DATA2 、...
  • Oracle 单实例DG搭建详解

    万次阅读 2017-06-06 14:50:41
    oracle DG datagrad switchover failover failover恢复
  • ORACLE连接MYSQL-使用DG4ODBC.

    千次阅读 2014-05-23 10:48:37
    最近做了一次Oracle连接到MySQL的实验,主要是通过DG4ODBC来连接的.以下是实验环境和实验步骤. Oracle服务器: IP:192.168.0.193 Database Version:11.2.0.1 MySQL服务器 IP:192.168.0.100 MySQL Version:5.5.18...
  • Data Guard 环境修改主备IP地址

    千次阅读 2017-12-05 16:01:44
       公司机房搬迁,Data Guard ... IP 及数据库信息 修改之前: 主库:192.168.2.242 库:192.168.2.243   修改之后: 主库:192.168.2.22 库:192.168.2.23<br
  • Oracle Data Guard 重要配置参数

    千次阅读 2013-08-13 17:05:08
    Oracle Data Guard主要是通过为...对于Oracle DG的配置,我们可以通过Grid Control来完成,也可以通过Data Guard Broker以及SQL*Plus来完成。对于前两者方式可以在图形界面上完成,操作简单。而对于使用SQL*Plus命令行
  • Oracle数据库主从同步配置详解1. 安装前准备 1.1.软件 1、数据库软件:Oracle 11g r1 (企业版) 2、操作系统:WINDOWS SERVER 2008 ENTERPRISE EDTION 64X 1.2.环境 主库主机: dbprimary 192.168.1.57 从库...
  • oracle的主从复制技术ADG

    万次阅读 2018-09-06 09:25:04
    oracle 11g 主从复制技术ADG实施手册 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;数据库一般是实时的...
  • 不同Oracle数据库之间的数据同步

    万次阅读 2017-04-19 15:11:55
    Oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。对于中大型数据库,业务数据库里所有的数据同步到另外一个处理服务器上最佳的选择还是使用SnapShot方式,即快照的...
  • ORACLE数据库Dataguard dg broker 3大模式升级方式 主备库互相切换
  • Oracle 12c RAC 到单机实例 DATAGUARD搭建

    千次阅读 2016-10-15 10:32:03
    第二章:环境信息 2.1 系统平台 2.1.1 主机平台与版本 ...2.1.2 机平台与版本 机系统 ● HP-UX Itanium 11.31 机数据库 ● 12.1.0.2 Single Instance Database With ASM 2.2 数据库环境 2.2.1
  • Oracle dataguard一环境搭建

    千次阅读 2016-05-29 20:20:18
    库:Reahat 6.5 x64 + Oracle 11.2.0.3 x64 单机(IP:192.168.6.10 db) DB_UNIQUE_NAME=orcl 库1:Reahat 6.5 x64 + Oracle 11.2.0.3 x64 单机(IP:192.168.6.101 db1) DB_UNIQUE_NAME=dglocal 库2:...
  • 主备库的ORACLE_BASE=/u01/app/oracle,ORACLE_HOME=$ORACLE_BASE/product/11.2.0.1/db_1  一、配置监听  1> 主库上  [oracle@node1 ~]$ cd $ORACLE_HOME/network/admin/  [oracle@node1 admin]$ cat ...
  • Oracle11gR2下搭建DataGuard主备同步详解

    万次阅读 2016-05-13 18:26:17
    (PS:以下正文中以“//“开头的为注释行) 一,环境基本信息: 主库信息: 操作系统版本:CentOS release 6.5 ...Oracle版本信息: BANNER ----------------------------------------------------------------
1 2 3 4 5 ... 20
收藏数 1,586
精华内容 634
关键字:

dg主备切换 oracle 更换ip