搭建Oracle Data Guard 11g(物理备用)

OS:Oracle Linux 5u8 64bit
DB:11.2.0.4

可以参考另一篇博文: 12c RAC下搭建物理备用  

建议使用ASM作为存储,本次因故使用文件系统。

准备工作:

1. Primary数据库运行在归档模式,并启用强制日志。

点击(此处)折叠或打开

  1. ALTER DATABASE FORCE LOGGING;
  2. archive log list
2. 备用系统安装RDBMS,不创建数据库。

3. ASM(可选)

4. standby数据库创建目录(数据文件、FRA、audit_trail所在目录以及控制文件所在的目录,因为若目录不存在,Oracle不会自动创建上层目录)

5. standby数据库配置监听器并启动(netca)

6. 所有系统配置TNSNAME,包含了自己和所有其他站点。

准备Standby系统:

1. 配置静态监听
listner.ora中加入

点击(此处)折叠或打开

  1. SID_LIST_LISTENER =
  2.   (SID_LIST =
  3.     (SID_DESC =
  4.       (SID_NAME = jiangsu)
  5.       (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
  6.       (GLOBAL_DBNAME = jiangsu)
  7.     )
  8.   )
重启监听器

点击(此处)折叠或打开

  1. lsnrctl reload
2. 创建一个参数文件用来启动实例,只需包含DB_NAME,当用RMAN创建备用数据库期间该文件将被替换。

点击(此处)折叠或打开

  1. echo 'DB_NAME=WHATEVER' > $ORACLE_HOME/dbs/initjiangsu.ora
3. 复制Primary数据库的密码文件到相应路径,并修改文件名(注意大小写,和ORACLE_SID一致)

4. 以pfile= initjiangsu . ora启动实例到nomount

Primary数据库准备
1. 创建SRL,数量要比在线日志组多1,大小相同,不要复用。

点击(此处)折叠或打开

  1. alter database add standby logfile '/oradata/shanghai/standby01.log' size 50M;
  2. alter database add standby logfile '/oradata/shanghai/standby02.log' size 50M;
  3. alter database add standby logfile '/oradata/shanghai/standby03.log' size 50M;
  4. alter database add standby logfile '/oradata/shanghai/standby04.log' size 50M
用RMAN在Primary上创建Standby数据库

注意下面第2行,connect target后一定要显式写出密码,而不能用connect target /,否则会出现如下报错:

ORA-01017: invalid username/password; logon denied

点击(此处)折叠或打开

  1. RMAN>
  2. connect target sys/oracle@shanghai
  3. connect auxiliary sys/oracle@jiangsu
  4. run { 
       allocate channel prmy1 type disk; 
       allocate channel prmy2 type disk; 
       allocate channel prmy3 type disk; 
       allocate channel prmy4 type disk; 
       allocate channel prmy5 type disk; 
       allocate auxiliary channel stby1 type disk; 
       duplicate target database for standby from active database 
         spfile 
            parameter_value_convert 'shanghai','jiangsu' 
            set 'db_unique_name'='jiangsu' 
            set control_files='/oradata/jiangsu/control01.ctl'
            set db_create_file_dest='/oradata' 
            set db_create_online_log_dest_1='/oradata' 
            set db_create_online_log_dest_2='/u01/app/oracle/fast_recovery_area'
    set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area' 
            set DB_RECOVERY_FILE_DEST_SIZE='4G'  
  5.         set audit_file_dest='/u01/app/oracle/admin/jiangsu/adump'
  6.         set standby_archive_dest='+FRA'
  7.         set DB_FILE_NAME_CONVERT='/oradata/shanghai/','/oradata/jiangsu/'
                  set log_archive_max_processes='4'
                  set fal_client='jiangsu' 
                  set fal_server='shanghai' 
                  set standby_file_management='AUTO' 
                  set log_archive_config='dg_config=(shanghai,jiangsu)' 
                  set log_archive_dest_2='service=shanghai ASYNC 
                      valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)
                      db_unique_name=shanghai'
    nofilenamecheck; 
               sql channel prmy1 "alter system set 
                           log_archive_config=''dg_config=(shanghai,jiangsu)''";
               sql channel prmy1 "alter system set
                           log_archive_dest_2=''service=jiangsu ASYNC
                           valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)
                           db_unique_name=jiangsu''";
               sql channel prmy1 "alter system set log_archive_max_processes=4"; 
               sql channel prmy1 "alter system set fal_client=shanghai"; 
               sql channel prmy1 "alter system set fal_server=jiangsu"; 
               sql channel prmy1 "alter system set standby_file_management=AUTO"; 
  8.            sql channel prmy1 "alter system archive log current"; 
               allocate auxiliary channel stby type disk; 
  9.            sql channel stby1 "alter database recover managed standby database
                                 using current logfile disconnect"; 
    }

2016.1.30添加
上例中如果Primary是RAC,Standby是单实例,则需注意以下:
由于Primary默认会将自身的参数传递给Standby,因此将会把cluster_database=TRUE传递给Standby,因此需显式加上
set cluster_database='FALSE'
另外,有可能会报audit_file_dest无法创建的错误,因此最好事先创建好该目录,并直接显式加上
set audit_file_dest=''

2016.3.1 添加

set standby_archive_dest='+FRA'
不设置这个参数,备库的归档路径默认在?/dbs/arch

2016.6.13 添加
Primary端需要修改spfile参数并重启:

点击(此处)折叠或打开

  1. alter system set DB_FILE_NAME_CONVERT='/oradata/jiangsu/','/oradata/shanghai/' scope=spfile;
2018.4.10 添加
当库特别大且正在运行时,不可先以read only打开库,需要先运行DG,待同步后再取消同步-只读打开库-重新同步。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22621861/viewspace-1374443/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22621861/viewspace-1374443/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值