zoukankan      html  css  js  c++  java
  • data guard折腾记一

    终于有空闲的机器腾出来了,生产环境上的一套Oracle环境终于可以鸟枪换炮了,生产环境有Data Guard,为了减少停机时间,而且避免重新构建Data Guard的麻烦(其实也不麻烦,就是浪费时间),计划借助Data Guard的switchover来完成。

          不打无准备的仗,观察了一下某生产环境的Data Guard,发现配置极其简单,趁机抄袭了一下并搭建好测试环境,怎么个简单呢,配置如下:

          (1) 主备节点没有配置standby log file ;

          (2) 只在主节点配置了日志发送的路径;

          (3) 没有配置FAL;

         还是贴配置吧,主节点:

    1
    2
    *.log_archive_dest_2='service=standby'
    *.standby_file_management='AUTO

         备节点:

    1
    *.standby_file_management='AUTO'

         当然 spfile 中的配置是不止这些的,但是与Data Guard 相关的就这几条,简单吧,从同事的口中了解到该Data Guard就是只为了Failover,也不打算搞实时apply,就采用maximum performance的保护模式(其他都是浮云)。

         介绍一下测试环境,两台Oracle服务器,primary节点 test02 ,standby节点 test03,tnsname分别是 mydb_test02 和 mydb_test03。

         众所周知,搞Data Guard要折腾三个地方:初始化参数(spfile/pfile),控制文件和数据文件,参数文件的设置如上,将primary节点的spfile和password文件复制到standby节点的$ORACLE_HOME/dbs/目录下面,然后将standby启动到nomount。

    1
    2
    3
    ##### Standby #####
    sys$mydb@test03 SQL> startup nomount ;
    sys$mydb@test03 SQL> alter system set standby_file_management='AUTO';

         设置一下primary节点的spfile:

    1
    2
    3
    ##### Primary #####
    sys$mydb@test02 SQL> alter system set log_archive_dest_2='service=mydb_test03';
    sys$mydb@test02 SQL> alter system set standby_file_management='AUTO';

         以下是如何配置standby controlfile和数据文件:

         在 primary 节点中先使用rman备份数据文件并准备 standby controlfile:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ##### Primary #####
    run
    {
      sql"alter system switch logfile";
      allocate channel c1 device type disk ;
      backup
        as compressed backupset
        tag 'compressed_full'
      database ;
      backup tag 'standby_controlfile'
        current controlfile
        for standby;
      release channel c1 ;
    }

         注意看输出中的备份集信息,先不要退出rman会话,后面还有用,将以上rman脚本产生的两个备份集复制到standby机器的相同目录中

    1
    2
    3
    4
    5
    ##### Primary #####
    [oracle@test02 ~]$ cd /u01/app/flash_recovery_area/MYDB/backupset/2010_12_16/
    [oracle@test02 2010_12_16]$ ls
    o1_mf_ncnnf_STANDBY_CONTROLFILE_6jlx5w8x_.bkp  o1_mf_nnndf_COMPRESSED_FULL_6jlwvnyx_.bkp
    [oracle@test02 2010_12_16]$ scp ./* test03:`pwd`

         复制所需的归档日志到standby机器,先确定归档的路径:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ##### Primary #####
    sys$mydb@test02 SQL> archive log list ;
    Database log mode              Archive Mode
    Automatic archival             Enabled
    Archive destination            /u01/app/flash_recovery_area/MYDB/archivelog
    Oldest online log sequence     2906
    Next log sequence to archive   2910
    Current log sequence           2910
    sys$mydb@test02 SQL> host
     
    [oracle@test02 archivelog]$ find ./ -name "*.arc" -cmin -300 -exec scp {} test03:`pwd` ;

         还是回到primary机器的rman会话中,执行duplicate语句来创建Data Guard的备用数据库:

    1
    2
    3
    ##### Primary #####
    RMAN> connect auxiliary sys/oracle@mydb_test03
    RMAN> duplicate target database for standby dorecover nofilenamecheck;

         最后启动Data Guard Standby节点的归档恢复进程:

    1
    2
    ##### Standby #####
    sys$mydb@test03 SQL> alter database recover managed standby database disconnect from session;

         自此,测试环境的Data Guard搭建完成。

  • 相关阅读:
    【5min+】 秋名山的竞速。 ValueTask 和 Task
    int16、int32、int64的范围
    C#实现的一些常见时间格式
    C# WPF抽屉效果实现(C# WPF Material Design UI: Navigation Drawer & PopUp Menu)
    如何为.NETCore安装汉化包智能感知
    .NetCore学习笔记:三、基于AspectCore的AOP事务管理
    C#设计模式学习笔记:简单工厂模式(工厂方法模式前奏篇)
    .net core3.0 webapi搭建(一)
    [Abp vNext 源码分析]
    WPF 控件功能重写(ComboBox回车搜索)
  • 原文地址:https://www.cnblogs.com/hllnj2008/p/4028878.html
Copyright © 2011-2022 走看看