primary RAC to single standby

参考文献:
RAC+单实例DATAGUARD 配置   http://blog.csdn.net/miyatang/article/details/9979579

配置要点
rac为主时:
    rac中的每个实例都需要配置传输日志
单节点为主时:
    向rac中的其中一个节点传输日志
    在rac中的其中一个节点上启动MRP进程

创建standby redo log 日志组
RAC中的每个thread都需要创建对应的standby redo log。创建原则和单实例一样:
--在主库创建standbylogfile是便于发生角色转换后备用?
--sandby redo log创建原则:?
--a)、确保standbyredo log的大小与主库online redolog的大小一致???
--b)、如主库为单实例数据库:standbyredo log组数=主库日志组总数+1?
--c)、如果主库是RAC数据库:standby redo log组数=(每线程的日志组数+1)*线程数?
--d)、不建议复用standbyredo log,避免增加额外的I/O以及延缓重做传输?

查看rac中联机日志
SQL> select thread#,group#,members,bytes/1024/1024 from v$log;

THREAD#     GROUP#    MEMBERS BYTES/1024/1024
---------- ---------- ---------- ---------------
         1          1          1              50
         1          2          1              50
         2          3          1              50
         2          4          1              50
         
SQL> select GROUP#,STATUS,TYPE,MEMBER from v$logfile;

GROUP# STATUS  TYPE    MEMBER
---------- ------- ------- ------------------------------------------------------------
         2         ONLINE  +DATA/paydb/onlinelog/group_2.262.927484759
         1         ONLINE  +DATA/paydb/onlinelog/group_1.261.927484751
         3         ONLINE  +DATA/paydb/onlinelog/group_3.266.927485173
         4         ONLINE  +DATA/paydb/onlinelog/group_4.267.927485181
         
RAC有两个redo thread,每个thread有两个日志组,每个日志组有一个日志文件,文件大小为50M,所以要针对每个thread需要3组standby redo,大小为50M
创建6个日志组,每个日志组有一个日志文件

单实例standby:
alter database add standby logfile thread 1 group 5('/data0/u01/app/data/oradata/orcl11g/standby_redo05.log') size 50m;
alter database add standby logfile thread 1 group 6('/data0/u01/app/data/oradata/orcl11g/standby_redo06.log') size 50m;
alter database add standby logfile thread 1 group 7('/data0/u01/app/data/oradata/orcl11g/standby_redo07.log') size 50m;
alter database add standby logfile thread 2 group 8('/data0/u01/app/data/oradata/orcl11g/standby_redo08.log') size 50m;
alter database add standby logfile thread 2 group 9('/data0/u01/app/data/oradata/orcl11g/standby_redo09.log') size 50m;
alter database add standby logfile thread 2 group 10('/data0/u01/app/data/oradata/orcl11g/standby_redo10.log') size 50m;

primary rac下:
alter database add standby logfile thread 1 group 5 size 50M,group 6 size 50M ,group 7 size 50M ;
alter database add standby logfile thread 2 group 8 size 50M,group 9 size 50M ,group 10 size 50M ;

监听配置
将10.100.211.250 db-scan 加入standby的hosts文件
静态注册监听
standby:
[oracle@test02 admin]$ cat listener.ora
LISTENER =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(Host = 10.100.211.30)(Port = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl11g)
      (ORACLE_HOME = /data0/u01/app/oracle/product/11.2.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )
rac已自动注册了动态监听,监听scan-ip:1521,无需再静态注册(创建listener.ora文件)
rac两节点和单节点standby上tnsname.ora一致
[oracle@test02 admin]$ cat tnsnames.ora                                                                                                                              
PAYDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db-scan)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = paydb)
    )
  )
SIGDB =   
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.100.211.30)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl11g)
    )
  )
 
每个节点上检查:
    tnsping SIGDB   
    tnsping PAYDB

参数配置
数据文件目录和归档日志文件目录查看:
rac:
SQL> select file#,name from v$datafile;

FILE# NAME
---------- ------------------------------------------------------------
         1 +DATA/paydb/datafile/system.256.927484413
         2 +DATA/paydb/datafile/sysaux.257.927484413
         3 +DATA/paydb/datafile/undotbs1.258.927484415
         4 +DATA/paydb/datafile/users.259.927484415
         5 +DATA/paydb/datafile/example.264.927484777
         6 +DATA/paydb/datafile/undotbs2.265.927485095
         7 +DATA/paydb/datafile/paybiz01.dbf
归档日志目录:
log_archive_dest_1                   string      LOCATION=+DATA/archlog
standby 单节点
SQL> select file#,name from v$datafile;

FILE# NAME
---------- ------------------------------------------------------------
         1 /data0/u01/app/data/oradata/orcl11g/system01.dbf
         2 /data0/u01/app/data/oradata/orcl11g/sysaux01.dbf
         3 /data0/u01/app/data/oradata/orcl11g/undotbs01.dbf
         4 /data0/u01/app/data/oradata/orcl11g/users01.dbf
         5 /data0/u01/app/oracle/product/11.2.0/dbhome_1/dbs/catlog01.d
           bf
归档日志目录:
log_archive_dest_1                   string      location=/data0/arch

primary rac上操作:
alter database force logging;

ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(paydb,orcl11g)';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=SIGDB ASYNC LGWR VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl11g';
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
ALTER SYSTEM SET FAL_SERVER=SIGDB;
ALTER SYSTEM SET FAL_SERVER=PAYDB;
ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/data0/u01/app/data/oradata/orcl11g/','+DATA/paydb/datafile/' SCOPE=SPFILE;
ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/data0/arch','+DATA/archlog'  SCOPE=SPFILE;
ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;

在线创建物理备机
将primary的口令文件、参数文件scp到standby,并对参数文件进行修改,重命名为init$sid.ora
standby操作:
    create spfile from pfile
    startup nomount
rac上操作:
rman TARGET sys/oracle@PAYDB AUXILIARY sys/oracle@SIGDB

DUPLICATE TARGET DATABASE
  FOR STANDBY
  FROM ACTIVE DATABASE nofilenamecheck;

会在线备份数据文件、控制文件、tempfile、redo logfile恢复到从库

创建完physical standby 后会自动启动到mount
创建standby redo logfile

==========================
DG Broker
https://docs.oracle.com/cd/B28359_01/server.111/b28295/configure.htm#CFHICBJH

查看磁盘:
select dg.name,DGName, INSTANCE_NAME, DB_NAME,STATUS, from Gv$asm_diskgroup dg ;

用于管理dg的工具,会在所有的主备库通过自己的DMON进程和配置文件进行通信,可以配置dg或管理已配置好的dg及监控dg状态
支持primary和standby是单实例或rac,支持一主多从,从的个数上限是9个
会在主和从上启动DMON进程,通过参数DG_BROKER_START 控制是否启动dg broker,此参数默认是false,不启动
broker的配置文件是二进制文件,有默认的路径;允许有多份,通过指定参数DG_BROKER_CONFIG_FILEn来进行创建配置文件;如果是RAC环境,每个实例都要有Broker配置文件,放在共享存储上;

配置DG Broker
SQL> show parameter broker;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1               string      /data0/u01/app/oracle/product/
                                                 11.2.0/dbhome_1/dbs/dr1orcl02.
                                                 dat
dg_broker_config_file2               string      /data0/u01/app/oracle/product/
                                                 11.2.0/dbhome_1/dbs/dr2orcl02.
                                                 dat
dg_broker_start                      boolean     FALSE

SQL> alter system set dg_broker_config_file1='+DATA/dr1orcl11g.dat';
SQL> alter system set dg_broker_config_file2='+DATA/dr2orcl11g.dat';
开启dg broker
SQL> alter system set dg_broker_start=true;
连接到主库
DGMGRL> connect sys/oracle@PAYDB
创建配置文件
DGMGRL> help create
DGMGRL> CREATE CONFIGURATION primary AS PRIMARY DATABASE IS paydb CONNECT IDENTIFIER IS PAYDB;
Configuration "primary" created with primary database "paydb"
条件备库配置
ADD DATABASE <database name>  ====db_unique_name
    [AS CONNECT IDENTIFIER IS <connect identifier>]
    [MAINTAINED AS {PHYSICAL|LOGICAL}];

DGMGRL> ADD DATABASE orcl11g AS CONNECT IDENTIFIER IS SIGDB MAINTAINED AS PHYSICAL;
Database "orcl11g" added
DGMGRL> enable configuration;

===
rac 修改参数文件
如果我们直接使用: create pfile from spfile 命令穿件pfile,那么生成的pfile 文件将覆盖原有$ORACLE_HOME/dbs 目录下的pfile 文件。 而在之前的pfile文件里面值保留了一条指向spfile存放位置的记录。 这样修改之后,就会造成数据库启动时会因为找不到spfile文件而读取本地的pfile文件,而不是共享设备上的spfile文件。这样对参数管理上就会带来麻烦,也带来其他的隐患。
正确做法
SQL> create pfile='/data0/app/oracle/initpaydb.ora' from spfile;
修改后
SQL> create spfile='+DATA/paydb/spfilepaydb.ora' from  pfile='/data0/app/oracle/initpaydb.ora'

主从(physical standby)切换:
switchover
    原主库会重启成为新的备库
    为参与switchover的其他的备库会接受并应用来自新的主库的redo log
broker的行为:
    主库或备库如果是rac,只会保证一个实例启动,其他的实例均关闭,如果无法关闭则需要手工关闭
    首先将主库切换为备,将目标备库切换为主
    修改不broker的配置文件
    重启新备库,应用redo,如果原主库是rac,重启在switchover之前关闭的实例
    将新的主库启动到读写状态,如果原备库是rac,则重启在switchover之前关闭的实例
failover
两种模式complete和immediate,前者是在备库应用完日志之后再进行切换,后者是直接切换
    如果目标备库是rac,broker将会指示CRS关闭除应用日志的实例之外的其他实例,如果关闭失败,则需要手动关闭,然后再次执行难failover命令;
    在failover期间不可以打开任何新的实例
    broker会指示CRS重启在failover前关闭的其他的实例
    更改保护模式:
        如果failover前的数据库保护模式是maximum protection,则在failover后被重置为maximum performance
        maximum protection:
            在事务提交之前会保证将事务变更信息写到online redo log,并保证同步到至少一个备库上,保证数据0丢失
        maximum performance:
            在事务提交之前会将事务变更信息写到online redo log 然后提交,然后再同步到从库,主库down掉后不能保证数据不丢失
        
DGMGRL> FAILOVER TO database-name [IMMEDIATE];

RAC+单节点搭建DG的更多相关文章

  1. RAC环境上搭建DG

    首先RAC要确实是开归档的状态archive log list;如果是非归档状态,需要执行下面几步srvctl stop database -d +数据库实例名 关闭数据库--节点1(要做DG主库的) ...

  2. 3级搭建类301-Oracle 11g RAC 双节点搭建(11.2.0.4)非公

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  3. elasticsearch 单节点搭建与爬坑记录

    elasticsearch 单节点搭建与爬坑记录   prepare   虚拟机或者云服务器(这里用的是阿里云ECS) linux---centos7 安装完毕的jdk 相应的安装包(在https:/ ...

  4. 一个节点rac+单节点dg网络配置(listener.ora与tnsnames.ora)

    环境说明:  实验环境是 一个节点的 rac + 单机dg    (主备全部用asm存储) tnsnames.ora  文件  (oracle用户) node 1 : node1-> pwd / ...

  5. rac双节点+物理DG

    注:以下文章均是看了黄伟老师的视频,记录为博客供以后使用. 双节点RAC搭建: http://blog.csdn.net/imliuqun123/article/details/76171289 RA ...

  6. RAC 单节点实例异常关闭,关键报错ORA--29770

    监控系统监控到RAC 的一个实例异常关闭 ,时间是凌晨1点多,还好没有影响到业务 之后就是分析原因 这套RAC搭建在虚拟化环境OS SUSE11 查看oracel alert log信息 Mon :: ...

  7. RocketMQ单节点搭建

    RocketMQ服务搭建 下载RocketMQ源码: http://mirror.bit.edu.cn/apache/rocketmq/4.4.0/rocketmq-all-4.4.0-source- ...

  8. k8s v1.5.8 单节点搭建

    setsid etcd -name etcd -data-dir /var/lib/etcd -listen-client-urls http://0.0.0.0:2379,http://0.0.0. ...

  9. CentOS6.5下nginx-1.8.1.tar.gz的单节点搭建(图文详解)

    不多说,直接上干货! [hadoop@djt002 local]$ su root Password: [root@djt002 local]# ll total drwxr-xr-x. root r ...

随机推荐

  1. BeanUtils 工具类

    一.BeanUtils 概述     BeanUtils 是阿帕奇提供的一套专门用于将一些数据封装到java对象中的工具类;          名词:javaBean:特定格式的java类称为java ...

  2. MFC 消息中( WPARAM wParam,LPARAM lParam)包含信息

    windows的消息具有以下两个参数: (1)字参数(wParam) (2)长参数(lParam) 字参数和长参数都是32位整数,用于提供消息的附带消息,是消息传递过程中参数的载体.附加信息的消息号取 ...

  3. java 序列化Serializable 详解

    Java 序列化Serializable详解(附详细例子) 1.什么是序列化和反序列化Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization是 ...

  4. 电脑公司最新稳定win7系统下载

    系统来自系统妈:http://www.xitongma.com 系统概述 电脑公司ghost win7 x86(32位)万能装机版集成的软件符合电脑公司及电脑城装机绝大多数人要求及喜好,既大众,又时尚 ...

  5. npm scripts的生命周期管理

    我们平时阅读一些开源项目,可能会发现有些项目的package.json里的scripts区域定义的脚本很复杂,令人眼花缭乱. 其实这些脚本是有规律可循的.让我们从最简单的一个例子开始学习. 新建一个空 ...

  6. Hibernate查询方式汇总

    Hibernate总的来说共有三种查询方式:HQL.QBC和SQL三种.但是细分可以有如下几种: 一.HQL查询方式    这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的 ...

  7. 团队作业-Beta冲刺第二天

    这个作业属于哪个课程 <https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1> 这个作业要求在哪里 <https ...

  8. CPP-基础:char、BYTE、byte

    一,C++语言的内建类型中没“BYTE”这么个类型.BYTE是WINDOWS Platform SDK中windef.h里面定义的:typedef unsigned char BYTE; 二,char ...

  9. linux——nmap端口扫描命令

    先安装 nmap :apt-get install nmap 端口扫描命令nmap -sS 172.16.55.100nmap -Pn 172.16.55.100第一组渗透测试指令,用于情报收集. 要 ...

  10. 浅谈倍增LCA

    题目链接:https://www.luogu.org/problemnew/show/P3379 刚学了LCA,写篇blog加强理解. LCA(Least Common Ancestors),即最近公 ...