Oracle 11gR2 Data Guard 安装配置报告
文档作者: 空吾创建日期: 2015/09/25确认日期:
1.Oracle 11g R2 Data Guard 安装简介..........................................................31.1 Data Guard 安装的环境准备.....................................................................31.2 确保 oracle 数据库主节点所在 ECS 正常运行................................................32. Data Guard 安装详细步骤
42.1 ECS 从节点实例创建..................................................................................43. Data Guard 功能验证
164. 相关参考文档
19
- 2 -
- 3 -
1.Oracle 11g R2 Data Guard安装简介以下文档内容的目的是为了给出 Oracle 11gR2 的 Data Guard 在 ECS SSD 上的安装配置
过程。便于用户部署在阿里云环境上的 Oracle 数据库实现高可用。本次安装所采用的系统平台OS:CentOS 6.5,ORACLE 数据库版本为 11gR2。
在基于阿里云 ECS 的 CentOS 6.5 上安装 oracle 11gR2 的具体步骤已经在阿里云提供的其他文档中有详细的描述了,具体请查看文档 Oracle_11gR2_ECS+SSD 环境安装测试报告.doc。
- 4 -
1.1 Data Guard安装的环境准备硬件:两台 ECS 高级配置,16 核、64GB 内存、20GB 本地存储、4 块 SSD 存储(100GB1
块,200GB3 块) ,分别用于存放 oracle 实例和数据文件,日志文件,控制文件及归档日志等。软件:阿里云 CentOS 6.5,Oracle 11gR2 (文件系统,建议 11gR2 版本 11.2.0.4)
节点 节点 IP 节点名称 OS 版本主节点 10.251.195.221 iZ25g3ycjwyZ CentOS 6.5
从节点 10.251.199.103 iZ25ctzsjdjZ CentOS 6.5
- 5 -
1.2 确保oracle 数据库主节点所在ECS正常运行1) 登陆阿里云管理控制台,查看运行 oracle 数据库的 ecs 实例是否已经在运行中
2) 用类似 putty SSH 的工具连接 oracle 所在的 ECS 实例,配置用户服务器 IP,用户名与密码。如下图:
- 6 -
p
- 7 -
2. Data Guard 安装详细步骤
- 8 -
2.1 ECS从节点实例创建1) 根据阿里云控制台上快照与镜像的功能,通过主节点 ECS 创建 Oracle 从节点 ECS 实例。
找到 oracle 主节点的 ECS 实例,选“本实例磁盘”,选择系统盘,点击:“创建快照”
2) 查看本实例快照,快照已经生成完成,选择“创建自定义镜像”
3) 新镜像名字
- 9 -
在创建新的 ECS instance 的时候选择刚刚创建的“自定义镜像”
4) 新的用来安装 oracle Data Guard 从节点的 ECS instance 生成完成
5) 确保主从节点的 host 文件都已经配置 OK,并确定两节点网络互通
主节点
从节点
- 10 -
6) 因 Oracle Home 目录文件没有放在系统盘目录下,所以需要手动将主节点的 Oracle Home 下文件同步到从节点相似目录下
a) 在主节点$ORACLE_HOME 目录下执行 tar -cvf 11.2.0.tar 11.2.0b) 在从节点上执行 scp –r [email protected]: /u01/app/grid/product/11.2.0.tar
/u01/app/grid/product/c) 在从节点上解压:tar -xvf 11.2.0.tard) 确保从节点上.bash_profile 文件配置如下
export ORACLE_BASE=/u01/app/gridexport ORACLE_HOME=$ORACLE_BASE/product/11.2.0export ORACLE_SID=orastbexport PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
# User specific environment and startup programsPATH=$PATH:$HOME/binexport PATH
7) . .bash_profile8) echo $ORACLE_HOME 。确保 Oracle home 文件生成完成9) 重新链接 Oracle Home 文件:relink all10)主节点数据库配置,验证数据库文件状态,
SQL> conn / as sysdba;SQL> set wrap off;SQL> set linesize 1000;SQL> select name from v$database;
NAME---------ORAECS
SQL> select file_name from dba_data_files;
- 11 -
FILE_NAME---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/u01/app/grid/oradata/oraecs/users01.dbf/u01/app/grid/oradata/oraecs/undotbs01.dbf/u01/app/grid/oradata/oraecs/sysaux01.dbf/u01/app/grid/oradata/oraecs/system01.dbf
SQL> show parameters unique;
NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_unique_name string oraecsSQL>
11) Enable Forced Logging
SQL> ALTER DATABASE FORCE LOGGING;Database altered.
12)创建口令文件用于远程连接数据库cd $ORACLE_HOME/dbs[rac1] > orapwd file=ora orapworaecs password=oracle force=y
13)开启 standby redo log, 这个功能是用来支持 Data Guard Maximum Availability and Maximum Protection 两种模式的
SQL> select * from v$logfile; GROUP#STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE---------- ------- ------- -------------------------------------------------------------------------------- ------------------------------ 3 ONLINE /u01/app/grid/oradata/oraecs/redo03.log NO 2 ONLINE /u01/app/grid/oradata/oraecs/redo02.log NOONLINE /u01/app/grid/oradata/oraecs/redo01.log
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ' /u01/stbredo/stdby04.log' SIZE 50M;Database altered.
- 12 -
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 '/ /u01/stbredo/stdby05.log' SIZE 50MDatabase altered.
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ' /u01/stbredo/stdby06.log' SIZE 50MDatabase altered.SQL> select member from v$logfile;
MEMBER--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/u01/app/grid/oradata/oraecs/redo03.log/u01/app/grid/oradata/oraecs/redo02.log/u01/app/grid/oradata/oraecs/redo01.log/u01/stbredo/stdby04.log/u01/stbredo/stdby05.log/u01/stbredo/stdby06.log
6 rows selected.
14)开启归档模式SQL> startup mount;ORACLE instance started.Total System Global Area 285212672 bytesFixed Size 1218992 bytesVariable Size 75499088 bytesDatabase Buffers 205520896 bytesRedo Buffers 2973696 bytesDatabase mounted.
SQL> alter database archivelog;Database altered.
SQL> alter database open;Database altered.
SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /vmasmtest/kax2020/archdest/archOldest online log sequence 92Next log sequence to archive 94Current log sequence 94
15)设置主数据库的参数,主要增加以下参数,请根据自己的主备服务名称配置自己的环境,本文中主节点的实例名称是 oraecs,从实例的名称是 orastb,参数文件 pfileoraecs.ora 内容如下:
*.fal_server='ORASTB'*.log_archive_config='DG_CONFIG=(oraecs,orastb)'
- 13 -
*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST'*.log_archive_dest_2='SERVICE=orastb NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orastb'*.log_archive_dest_state_2='DEFER'*.log_archive_format='%t_%s_%r.arc'*.log_archive_max_processes=30*.memory_target=4013948928*.open_cursors=300*.processes=150*.remote_login_passwordfile='EXCLUSIVE'*.standby_file_management='AUTO'*.undo_tablespace='UNDOTBS1'Once the new parameter file is ready we create from it the spfile:
16)重启数据库,使新参数文件生效并创建 spfile,以便后续运维中可以动态更改参数:SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.
SQL> startup nomount pfile=' /u01/app/grid/product/11.2.0/dbs/dbs/pfileoraecs.ora';ORACLE instance started.Total System Global Area 285212672 bytesFixed Size 1218992 bytesVariable Size 92276304 bytesDatabase Buffers 188743680 bytesRedo Buffers 2973696 bytes
SQL> create spfile from pfile;File created.
SQL> shutdown immediate;ORA-01507: database not mountedORACLE instance shut down.
SQL> startup;ORACLE instance started.Total System Global Area 285212672 bytesFixed Size 1218992 bytesVariable Size 92276304 bytesDatabase Buffers 188743680 bytesRedo Buffers 2973696 bytesDatabase mounted.Database opened.
17)通过 RMAN 创建用于生产 standby 数据库的备份作业mkdir -p /oradata/backup
- 14 -
[oracle@iZ25g3ycjwyZ backup]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Mon Sep 21 15:15:58 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORAECS (DBID=2736193826)
RMAN>
RMAN> configure channel device type disk format '/oradata/backup/%U';
RMAN> backup full database plus archivelog;
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY;
RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY;
RMAN> BACKUP ARCHIVELOG ALL;
RMAN> exit;
18)查看备份的情况 cd /oradata/backup
[oracle@iZ25g3ycjwyZ backup]$ ls -larttotal 1071664drwxr-xr-x 4 oracle dba 4096 Sep 17 19:19 ..-rw-r----- 1 oracle oinstall 36036608 Sep 17 19:20 06qhddgd_1_1-rw-r----- 1 oracle oinstall 1005625344 Sep 17 19:20 07qhddge_1_1-rw-r----- 1 oracle oinstall 9830400 Sep 17 19:21 08qhddgt_1_1-rw-r----- 1 oracle oinstall 15872 Sep 17 19:21 09qhddgv_1_1-rw-r----- 1 oracle oinstall 9797632 Sep 17 19:21 0aqhddh5_1_1drwxr-xr-x 2 oracle oinstall 4096 Sep 17 19:21 .-rw-r----- 1 oracle oinstall 36064256 Sep 17 19:21 0bqhddhq_1_1[oracle@iZ25g3ycjwyZ backup]$
19)在从节点上创建用于存储恢复介质的目录mkdir -p /oradata/backup
$cd /oradata/backup$ scp root@iZ25g3ycjwyZ :/oradata/backup/* .
- 15 -
[oracle@ iZ25ctzsjdjZ backup]$ The authenticity of host ' iZ25g3ycjwyZ (10.251.195.221)' can't be established.RSA key fingerprint is c3:84:69:0f:29:1c:60:5f:ef:21:41:41:37:8d:0b:f7.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'rac2, 10.251.195.221 ' (RSA) to the list of known hosts.root@ iZ25g3ycjwyZ 's password:
20)将主节点上的口令文件及参数文件复制到从节点上[oracle@ iZ25g3ycjwyZ dbs]$ scp orapworaecs oracle@ iZ25ctzsjdjZ: /u01/app/grid/product/11.2.0/dbsoracle@rac2's password:orapwecs 100% 1536 1.5KB/s 00:00
[oracle@ iZ25g3ycjwyZ dbs]$ scp initoraecs.ora oracle@ iZ25ctzsjdjZ: /u01/app/grid/product/11.2.0/dbsoracle@ iZ25ctzsjdjZ 's password:initoraecs.ora 100% 2071 2.0KB/s 00:00
21)在从节点上更改参数文件,主要更改如下参数log_archive_dest_1 ='LOCATION=/u01/archive'log_archive_config='dg_config=(oraecs,orastb)'log_archive_max_processes = 8fal_server ='oraecs'log_file_name_convert = '/u01/app/grid/oradata/oraecs','/u01/app/grid/oradata/oraecs'db_file_name_convert = '/u01/app/grid/oradata/oraecs','/u01/app/grid/oradata/oraecs'db_unique_name ='orastb'*.standby_file_management='auto'*.log_archive_format='%t_%s_%r.arc'*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
22)通过主节点的备份介质恢复 standby 数据库- 16 -
SQL> startup nomountORACLE instance started.
Total System Global Area 285212672 bytesFixed Size 1218992 bytesVariable Size 92276304 bytesDatabase Buffers 188743680 bytesRedo Buffers 2973696 bytesSQL> exit;
23)配置主从节点的 tns 及 listener 信息
主从节点的 Tnsnames.ora 文件内容相同ORAECS = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.251.195.221)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oraecs) ) )
orastb = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = iZ25g3ycjwyZ)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orastb) ) )
主节点 listener.aoraSID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/grid/product/11.2.0) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME=oraecs) (ORACLE_HOME = /u01/app/grid/product/11.2.0) (SID_NAME = oraecs) ) )
- 17 -
ADR_BASE_ORAECS = /u01/app/grid
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = iZ25g3ycjwyZ)(PORT = 1521)) ) )
ADR_BASE_LISTENER = /u01/app/grid
24)从节点 listener.ora
Listener.ora
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/grid/product/11.2.0) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME=orastb) (ORACLE_HOME = /u01/app/grid/product/11.2.0) (SID_NAME = orastb) ) )
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = iZ25ctzsjdjZ)(PORT = 1521)) ) )
25)主从节点上 tnsping 测试a) 主节点上 tnsping 测试 :tnsping orastb
[oracle@iZ25g3ycjwyZ admin]$ tnsping orastb
TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 21-SEP-2015 15:35:53
- 18 -
Copyright (c) 1997, 2009, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.251.199.103)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orastb)))OK (10 msec)
b) 从节点上 tnsping 测试 :tnsping oraecs
[oracle@iZ25ctzsjdjZ admin]$ tnsping oraecs
TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 21-SEP-2015 15:36:32
Copyright (c) 1997, 2009, Oracle. All rights reserved.
Used parameter files:/u01/app/grid/product/11.2.0/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the aliasAttempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.251.195.221)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oraecs)))OK (0 msec)
26)执行 rman 创建 oracle stdby 数据库[oracle@rac1 ~]$ rman target=sys/syspword@oraecs auxiliary=/
RMAN> DUPLICATE TARGET DATABASE FOR STANDBY NOFILENAMECHECK;
102 18/09/15 16:08 18/09/15 16:087 rows selected
- 19 -
3. Data Guard 功能验证1) 从节点上开启同步模式
SQL> alter database recover managed standby database disconnect from session;
2) 在主节点日志切换SQL> alter system switch logfile;SQL> alter system archive log current;
3) 在两个节点执行如下命令SQL> select max(sequence#) from v$log_history;
SQL> select max(sequence#) from v$archived_log;
col DEST_NAME for a20col DESTINATION for a20select dest_name, status, destination from v$archive_dest_status
DEST_NAME STATUS DESTINATION-------------------- --------- --------------------LOG_ARCHIVE_DEST_1 VALID /u01/app/oracle/orad ata/KAX2020/arch/
LOG_ARCHIVE_DEST_2 VALID kax2020DR
4) 查看 alert 文件查看日志同步是否进行ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSIONWed Sep 18 16:46:26 2010Attempt to start background Managed Standby Recovery process (oraecs)MRP0 started with pid=47, OS id=12498Wed Sep 18 16:46:26 2015MRP0: Background Managed Standby Recovery process started (oraecs)Managed Standby Recovery not using Real Time ApplyClearing online redo logfile 1 /u01/app/oracle/oradata/KAX2020DR/onlinelog/o1_mf_1_310n215q_.logClearing online log 1 of thread 1 sequence number 95Deleted Oracle managed file /u01/app/oracle/oradata/KAX2020DR/onlinelog/o1_mf_1_310n215q_.logWed Sep 18 16:46:32 2015Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSIONWed Sep 18 16:46:33 2015Clearing online redo logfile 1 complete
- 20 -
Clearing online redo logfile 2 /u01/app/oracle/oradata/KAX2020DR/onlinelog/o1_mf_2_310n21sx_.logClearing online log 2 of thread 1 sequence number 96Deleted Oracle managed file /u01/app/oracle/oradata/KAX2020DR/onlinelog/o1_mf_2_310n21sx_.logClearing online redo logfile 2 completeClearing online redo logfile 3 /u01/app/oracle/oradata/KAX2020DR/onlinelog/o1_mf_3_310n22jj_.logClearing online log 3 of thread 1 sequence number 94Deleted Oracle managed file /u01/app/oracle/oradata/KAX2020DR/onlinelog/o1_mf_3_310n22jj_.logClearing online redo logfile 3 completeMedia Recovery Waiting for thread 1 sequence 96
Start the Primary Database
The alert log of the primary will show how it recognize the standby and start shipping archived logs******************************************************************LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2******************************************************************Wed Sep 18 16:01:07 2015LNS: Standby redo logfile selected for thread 1 sequence 100 for destinationLOG_ARCHIVE_DEST_2Wed Sep 18 16:01:07 2015Successfully onlined Undo Tablespace 1.Wed Sep 18 16:01:07 2015SMON: enabling tx recoveryWed Sep 18 16:01:09 2015Database Characterset is AL32UTF8replication_dependency_tracking turned off (no async multimaster replication found)Starting background process QMNCQMNC started with pid=21, OS id=13864Wed Sep 18 16:01:12 2015Completed: ALTER DATABASE OPENWed Sep 18 16:01:13 2010ARCq: Standby redo logfile selected for thread 1 sequence 99 for destinationLOG_ARCHIVE_DEST_2Wed Sep 18 16:05:05 2015Thread 1 advanced to log sequence 101Current log# 1 seq# 101 mem# 0:/u01/app/oracle/oradata/KAX2020/onlinelog/o1_mf_1_310n215q_.logWed Sep 18 16:05:06 2015LNS: Standby redo logfile selected for thread 1 sequence 101 for destinationLOG_ARCHIVE_DEST_2
5) 验证从节点的 standby 数据库是否日志同步正常Check archived redo log on Standby
SQL> show parameters db_unique_name;NAME TYPE VALUE
- 21 -
------------------------------------ ----------- ------------------------------db_unique_name string oradtb
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SEQUENCE# FIRST_TIM NEXT_TIME---------- --------- ---------96 18-SEP-15 18-SEP-1597 18-SEP-15 18-SEP-1598 18-SEP-15 18-SEP-1599 18-SEP-15 18-SEP-15100 18-SEP-15 18-SEP-07
Switch logfiles on Primary
SQL> alter system switch logfile;System altered.
SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /vmasmtest/oraces/archdest/Oldest online log sequence 100Next log sequence to archive 102Current log sequence 102
SQL> alter system switch logfile;System altered.
SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /vmasmtest/oraecs/archdest/Oldest online log sequence 101Next log sequence to archive 103Current log sequence 103
Check archived redo log on Standby
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SEQUENCE# FIRST_TIME NEXT_TIME---------- -------------- --------------96 18/09/15 09:35 18/09/15 09:4597 18/09/15 09:45 18/09/15 15:2098 18/09/15 15:20 18/09/15 15:4899 18/09/15 15:48 18/09/15 16:00100 18/09/15 16:00 18/09/15 16:05101 18/09/15 16:05 18/09/15 16:08
- 22 -
4. 相关参考文档1) ECS 使用:请登录阿里云官网进行相关技术的学习及咨询
http://help.aliyun.com/hot_and_nav.htm?spm=5176.2020520101.104.1.c34BVb&categoryId=8314827
2) Oracle 11gR2 在 ECS 上的安装请参考文档:Oracle_11gR2_ECS+SSD 环境安装 指导
3) Creating a Physical Standby Database (Doc ID 1475344.1)
- 23 -