
最近准备给一个生产项目上oracle 11g DataGuard,主备均为oracle 11.2.0.4软件,并在备库安装软件。这篇不讲述 DataGuard 的原理,只是oracle 11g DataGuard 搭建的详细过程。这次是生产库的RAC需要做一个DG,由于不知道SYS 用户密码,需要取回密码太麻烦,故不能使用 duplicate 方式,使用rman 全备 -->还原控制文件--> mount数据库还原数据文件 --> 追加日志 --> 主备同步。搭建过程中只需要修改部分参数以及网络监听,故不需要停机可白天完成,下面开始进入主题。
1、生产环境信息
系统名称 | 系统平台 | IP地址 | 数据库版本 | 数据量 |
XXXX系统 | Linux | 192.168.3.101 | 11.2.0.4.0 | 180G |
XXXX系统 | Linux | 192.168.3.102 | 11.2.0.4.0 |
主库: Linux 环境下 Oracle 11.2.0.4 RAC,使用ASM 文件系统。
备库: Linux 环境下Oracle 11.2.0.4 单机文件系统管理。
2、环境安装配置
2.1 环境需求
备库操作系统平台和版本要求与主库(生产库)一致。
备库数据库软件版本要求与主库(生产库)一致。
2.2 环境检查
确认主备数据库版本(关注企业版、标准版区别,标准版支持DG功能,不支持ADG)
su – oraclesqlplus as sysdbaSQL> select name from v$version;
确认数据数据文件存放位置(ASM或者文件系统)
su – oraclesqlplus as sysdbaSQL>select name from v$datafile;
确认数据库开启归档模式(若未开启归档,需与应用沟通开归档变更实施)
su – oraclesqlplus / as sysdbaSQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination +ARCHOldest online log sequence 21Next log sequence to archive 23Currentlog sequence 23
确认网络连通性
主备分别执行:
telnet IP port若无法使用 telnet工具,配置 tns 使用 tnsping 进行测试.
在主库tnsnames.ora中添加:
beijingstb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.101)(PORT =1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = beijingstb)))beijing =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.105)(PORT =1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = beijing)))
在备库tnsnames.ora中添加:
beijingstb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.101)(PORT =1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = beijingstb)))beijing =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.105)(PORT =1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = beijing)))
主库:su – oracletnsping beijingstb备库:su – oracletnsping beijing
2.3 备库安装 Oracle 数据库软件
2.3.1 AIX环境参数配置
2.3.1.1 确认系统包
lslpp -l bos.adt.baselslpp -l bos.adt.liblslpp -l bos.adt.libmlslpp -l bos.perf.libperfstatlslpp -l bos.perf.perfstatlslpp -l bos.perf.proctoolslslpp -l rsct.basic.rtelslpp -l rsct.compat.clients.rtelslpp -l libaio
2.3.1.2 编辑 hosts 文件
vi etc/hosts
2.3.1.3 创建用户组和用户
--用户组创建# mkgroup -'A' id='1000' adms='root' oinstall# mkgroup -'A' id='1010' adms='root' asmadmin# mkgroup -'A' id='1011' adms='root' asmdba# mkgroup -'A' id='1012' adms='root' asmoper# mkgroup -'A' id='1001' adms='root' dba# mkgroup -'A' id='1002' adms='root' oper--用户创建mkuser id='1010' pgrp='oinstall' groups='dba,asmadmin,asmdba,asmoper,oper' home='/home/grid' gridmkuser id='1000' pgrp='oinstall' groups='dba,asmdba,oper' home='/home/oracle' oraclechuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE gridchuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
2.3.1.4 编辑环境变量
export PS1="[`whoami`@`hostname`:"'$PWD]$'export ORACLE_BASE=/appexport ORACLE_HOME=/app/oracle/product/11.2.0/db_1export ORACLE_SID=jiekexuexport ORACLE_TERM=xtermexport NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport LIBPATH=$ORACLE_HOME/lib:/usr/lib:$ORACLE_HOME/lib32export PATH=$ORACLE_HOME/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin:export TMP=/tmpexport TEMP=/tmpumask 022
2.3.1.5 修改内核文件
vi etc/security/limits修改:default:fsize = -1core = 2097151cpu = -1data = -1rss = -1stack = -1nofiles = -1
2.3.1.6 修改内存参数
vmo -p -o minperm%=3vmo -p -o maxperm%=90vmo -p -o maxclient%=90vmo -p -o lru_file_repage=0vmo -p -o strict_maxclient=1vmo -p -o strict_maxperm=0chdev -l sys0 -a ncargs=256chdev -l sys0 -a maxuproc=16384
2.3.1.7 修改网络参数
no -r -o ipqmaxlen=512no -p -o rfc1323=1no -p -o sb_max=4194304no -p -o tcp_recvspace=65536no -p -o tcp_sendspace=65536no -p -o udp_recvspace=655360no -p -o udp_sendspace=65536
2.3.2 HPUX 环境参数配置
2.3.2.1 编辑 hosts 文件
vi etc/hosts
2.3.2.2 创建用户组和用户
mkgroup id=300 oinstallmkgroup id=301 dbamkuser id=300 pgrp=oinstall groups=dba home=/home/oracle oracle/usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
2.3.2.3 编辑环境变量
export PS1="[`whoami`@`hostname`:"'$PWD]$'export ORACLE_BASE=/appexport ORACLE_HOME=/app/oracle/product/11.2.0/db_1export ORACLE_SID=chyjdzx7export ORACLE_TERM=xtermexport NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport LIBPATH=$ORACLE_HOME/lib:/usr/lib:$ORACLE_HOME/lib32export PATH=$ORACLE_HOME/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin:export TMP=/tmpexport TEMP=/tmpumask 022
2.3.2.4 修改端口范围
/usr/sbin/ndd -set dev/tcp tcp_smallest_anon_port 9000/usr/sbin/ndd -set /dev/udp udp_smallest_anon_port 9000
2.3.2.5 设置 core 文件创建信息
mkdir -p var/corescoreadm -g /var/cores/%f.%n.%p.%t.core -e global -e global-setid -e log -d process -d proc-setid
2.3.2.6 添加 ssh 网络连接
mkdir usr/localln -s etc/ssh usr/local/etcln -s /usr/bin /usr/local/bin
2.3.2.7 修改配置参数
vi /etc/system添加:set noexec_user_stack=1set semsys:seminfo_semmni=100set semsys:seminfo_semmns=1024set semsys:seminfo_semmsl=256set semsys:seminfo_semvmx=32767set shmsys:shminfo_shmmax=4294967295set shmsys:shminfo_shmmni=100
2.3.3 Linux 环境参数配置
2.3.3.1 检查系统包
rpm -qa|grep binutilsrpm -qa|grep compat-libstdc++rpm -qa|grep elfutils-libelfrpm -qa|grep elfutils-libelf-develrpm -qa|grep expatrpm -qa|grep gccrpm -qa|grep gcc-c++rpm -qa|grep glibcrpm -qa|grep glibc-commonrpm -qa|grep glibc-develrpm -qa|grep glibc-headersrpm -qa|grep libaiorpm -qa|grep libaio-develrpm -qa|grep libgccrpm -qa|grep libstdc++rpm -qa|grep libstdc++-develrpm -qa|grep makerpm -qa|grep sysstatrpm -qa|grep unixODBCrpm -qa|grep unixODBC-devel
2.3.3.2 编辑 hosts 文件(主机名和IP对应)
vi etc/hosts--主机名建议小写,127.0.0.1 localhost 不能忽略不写127.0.0.1 localhost
2.3.3.3 修改配置参数
mkgroup id=300 oinstallmkgroup id=301 dbamkuser id=300 pgrp=oinstall groups=dba home=/home/oracle oracle/usr/bin/chuser capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
2.3.3.4 修改环境变量
vi .bash_profileexport PS1="[`whoami`@`hostname`:"'$PWD]$'export ORACLE_BASE=/appexport ORACLE_HOME=/app/oracle/product/11.2.0/db_1export ORACLE_SID=beijingstdexport ORACLE_TERM=xtermexport NLS_LANG=AMERICAN_AMERICA.ZHS16GBKexport LD_LIBRARY_PATH=$ORACLE_HOME/libexport LIBPATH=$ORACLE_HOME/lib:/usr/lib:$ORACLE_HOME/lib32export PATH=$ORACLE_HOME/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin:export TMP=/tmpexport TEMP=/tmpumask 022
2.3.3.5 配置内核参数
vi etc/sysctl.conf添加:kernel.shmmax = 4294967295kernel.shmall = 2097152kernel.shmmni = 4096kernel.sem = 250 32000 100 128fs.file-max = 6815744net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576fs.aio-max-nr=1048576
2.3.3.6 修改资源限制
vi /etc/security/limits.conf添加:grid soft nproc 2047grid hard nproc 16384grid soft nofile 1024grid hard nofile 65536oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536
2.3.3.7 修改登陆配置文件
vi /etc/pam.d/login添加:session required pam_limits.so
2.3.4 Oracle 软件安装
执行 ./runInstaller 出现安装界面(本节主要是参考,截图为RAC 不过搭建 MAA 时也可参考此文)
1.选择只安装软件
2.选择跳过软件更新

3.勾选两个节点
4.从左边栏选择添加 simpfied chinese

5.选择企业版

6.设置 oracle_base 和软件安装目录

7.选择用户组

8.等待自动环境检查结束

9.点击“安装”

10.用root用户执行root.sh脚本

11.安装完成,点击“关闭”

2.3.5 创建 Oracle 监听
使用 netca 命令打开图形界面,配置数据库默认监听,这里直接贴图就欧克没啥可说的了。







3、配置Oracle DataGuard
3.1 打开数据库强制日志
确认数据库日志模式
select name,log_mode,force_logging from v$database;
打开强制日志
alter database force logging;
3.2 创建备库密码文件
scp orapwbeijing oracle@192.168.3.101:$ORACLE_HOME/dbs/orapwbeijingstb
(有坑,一定要同步,RAC 的话,需要将节点一同步至节点2 再将节点1 密码文件传至备库,密码文件、参数文件名的大小写需要一致,不然也会出问题)
3.3 创建 standby 日志组
查看原生产库的日志信息,大小与原生产库保持一致:
set linesize 250COLUMN groupno FORMAT a6 HEADING 'Group'COLUMN thread FORMAT a6 HEADING 'Thread'COLUMN member FORMAT a50 HEADING 'Member'COLUMN redo_file_type FORMAT a10 HEADING 'Redo Type'COLUMN group_status FORMAT a12 HEADING 'Group Status'COLUMN member_status FORMAT a15 HEADING 'Member Status'COLUMN bytes FORMAT 999,999 HEADING 'Size(M)'COLUMN archived FORMAT a10 HEADING 'Archived?'BREAK ON groupnoSELECTto_char(f.group#) groupno, to_char(l.thread#) thread, f.member member, f.type redo_file_type, l.status group_status, f.status member_status, l.bytes/1024/1024 bytes, l.archived archivedFROMv$logfile f, v$log lWHEREf.group# = l.group#ORDER BYf.group#, f.member;
添加 standby 日志组(日志组最好比主库多一至两组,这样可以确保在主库业务量较大的情况下不至于备库来不及应用备库日志)
alter database add standby logfile group 4 '/app/oracle/oradata/beijing/redo4.dbf' size 500m;alter database add standby logfile group 5 '/app/oracle/oradata/beijing/redo5.dbf' size 500m;alter database add standby logfile group 6 '/app/oracle/oradata/beijing/redo6.dbf' size 500m;alter database add standby logfile group 7 '/app/oracle/oradata/beijing/redo7.dbf' size 500m;alter database add standby logfile group 8 '/app/oracle/oradata/beijing/redo8.dbf' size 500m;
3.4 修改主库参数文件
3.4.1 直接修改参数文件方式
创建pfile文件:
create pfile='/home/oracle/initbeijing.ora' from spfile;
添加以下参数:
vi home/oracle/initbeijing.oralog_archive_config='dg_config=(beijing, beijingstb)'log_archive_dest_1='location=/app/oracle/arch valid_for=(all_logfiles,all_roles) db_unique_name= beijing'log_archive_dest_2='service=orclstb LGWR ASYNCvalid_for=(online_logfiles,primary_role)db_unique_name= beijingstb'log_archive_dest_state_1='enable'log_archive_dest_state_2='enable'LOG_ARCHIVE_MAX_PROCESSES=10fal_server=' beijingstb 'db_file_name_convert='/app/oracle/oradata/beijingstb','/app/oracle/oradata/beijing'log_file_name_convert='/app/oracle/oradata/beijingstb','/app/oracle/oradata/beijing'standby_file_management='AUTO'
创建spfile:
create spfile from pfile='/home/oracle/initbeijing.ora';
3.4.2 使用命令在数据库启动状态下进行参数修改:
--建议使用此方法修改参数,请按自己实际环境参考修改,如修改出现问题可用备份还原,--如用以上方法修改可导致主库下次启动时出错,实例无法启动alter system set db_unique_name= beijing;alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(beijing,beijingstb)' ;alter system set LOG_ARCHIVE_DEST_1='LOCATION=/app/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME= beijing;alter system set LOG_ARCHIVE_DEST_2='SERVICE=beijingstb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME= beijingstb;alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE;alter system set FAL_SERVER= beijingstb;alter system set FAL_CLIENT= beijing;alter system set standby_file_management=auto;alter system set db_file_name_convert='/app/oracle/oradata/beijingstb','/app/oracle/oradata/beijing' scope=spfile;alter system set log_file_name_convert='/app/oracle/oradata/beijingstb','/app/oracle/oradata/beijing' scope=spfile;
修改完后 create pfile='/home/oracle/pfile20190729.ora' from spfile;
将此 pfile 传至备库去修改,然后使用 pfile 启动到 nomount
最最后一步记得重新创新spfile,下次启动时则可以自动使用spfile启动。
create spfile from pfile;
3.5 创建备库参数文件
传输主库参数文件到备库:
scp /home/oracle/pfile20190729.ora oracle@192.168.3.101:/home/oracle/
修改备库参数文件:
cp home/oracle/pfile20190729.ora home/oracle/pfile20190729.ora_bakvi home/oracle/pfile20190729.oraDB_UNIQUE_NAME=beijingstblog_archive_config='dg_config=(beijingstb, beijing)'log_archive_dest_1='location=/app/oracle/archvalid_for=(all_logfiles,all_roles)db_unique_name=beijingstb'log_archive_dest_2='service=beijing ASYNC valid_for=(online_logfiles,primary_role) db_unique_name=beijing'log_archive_dest_state_1='enable'log_archive_dest_state_2='enable'log_archive_format='%t_%s_%r.dbf'log_archive_max_processes=10db_file_name_convert='/app/oracle/oradata/beijing','/app/oracle/oradata/beijingstb'log_file_name_convert='/app/oracle/oradata/beijing','/app/oracle/oradata/beijingstb'
3.6 主备库添加网络服务名
在主库tnsnames.ora中添加:
beijingstb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.101)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = beijingstb)))beijing =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.105)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = beijing)))
在备库tnsnames.ora中添加:
beijingstb =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.101)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = beijingstb)))beijing =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.105)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = beijing)))
3.7 备库添加监听静态注册
备库在listener.ora中添加:
SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /app/oracle/product/11.2.0/db_1)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME = beijingstb)(ORACLE_HOME = /app/oracle/product/11.2.0/db_1)(SID_NAME = beijingstb)))------lsnrctl statusSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME =beijingstd)(ORACLE_HOME = /app/oracle/product/11.2.0/db_1)(SID_NAME = beijingstd)))
4、 数据库初始化
4.1 备份初始化恢复(两种方式)
4.1.1 远程在线初始化(不知主库sys密码)
利用rman的duplicate生成备库:
rman target sys/xxxxx@beijing auxiliary sys/xxxxxx@beijingstbduplicate target database for standby from active database;
4.1.2 利用 rman 备份片生成备库:
--主库建立备份目录,注意 oracle 权限mkdir -p backup/backup/backup20190730/sqlplus / as sysdba--主库切换日志alter system archive log current;--主库利用rman备份片生成备库(由于不知道主库sys密码,数据量也较小,使用RMAN备份传输至备库)rman targetrun {allocate channel c1 type disk ;allocate channel c2 type disk ;allocate channel c3 type disk ;allocate channel c4 type disk ;backup as compressed backupset database format '/backup/backup20190730/%d_%I_%s_%p.bak';backup as compressed backupset archivelog all format '/backup/backup20190730/%d_%I_%s_%p.arc';backup current controlfile for standby format '/backup/backup20190730/%d_%I_%s_%p.ctl';release channel c1;release channel c2;release channel c3;release channel c4;}
将备份传输至备库
[oracle@up rmanbk]$ scp beijing_3078169696_*192.168.3.105:/backup/backup20190730/
使用 pfile 启动至 nomount 状态,恢复控制文件
SQL> startup nomount pfile='/home/oracle/pfile20190729.ora';rman targetrestore standby controlfile from '/backup/backup20190730/SDZZSKP_1470960497_14179_1.ctl';
启动数据库至 mount
sql 'alter database mount';
指定 catalog 还原、恢复数据库
--rman 列出备份文件rman targetlist backup;--注册从源数据库拷贝过来的备份集到rman中RMAN> catalog start with'/backup/backup20190730/';……Do you really want to catalog the abovefiles (enter YES or NO)? yescataloging files...cataloging done恢复数据库run {allocate channel c1 type disk;allocate channel c2 type disk;allocate channel c3 type disk;allocate channel c4 type disk;restore database;recover database;release channel c1;release channel c2;release channel c3;release channel c4;}
恢复过程中报错可忽略
--这里会报错,没有恢复归档日志所致,可忽略released channel: c1released channel: c2released channel: c3released channel: c4RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of recover command at 7/30/2019 20:55:02RMAN-06054: media recovery requesting unknown archived log for thread 2 with sequence 1595 and starting SCN of 14566378244303
4.2 启动备库日志应用
alter database recover managed standby database disconnect from session;
或者使用实时的日志应用
alter database recover managed standby database using current logfile disconnect from session;
查看备库同步情况
set linesize 150;set pagesize 20;column name format a13;column value format a20;column unit format a30;column TIME_COMPUTED format a30;select name,value,unit,time_computed fromv$dataguard_stats where name in ('transport lag','apply lag');NAME VALUE UNIT TIME_COMPUTED------------- -------------------------------------------------- ------------------------------transport lag +00 00:00:00 day(2) to second(0) interval 07/30/2019 20:58:04apply lag +00 00:00:00 day(2) to second(0) interval 07/30/2019 20:58:04
4.3 取消应用日志然后启动备库为read only(11g新特性)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;Alter dabatase open;
使用实时的日志应用
alter database recover managed standby database using current logfile disconnect from session;
查看备库同步情况
set linesize 150;set pagesize 20;column name format a13;column value format a20;column unit format a30;column TIME_COMPUTED format a30;select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag');NAME VALUE UNIT TIME_COMPUTED------------- -------------------- ------------------------------ ------------------------------transport lag +00 00:00:00 day(2) to second(0) interval 07/30/2019 20:59:04apply lag +00 00:00:00 day(2) to second(0) interval 07/30/2019 20:59:04
4.4 验证 DataGuard 状态
查询数据库角色:
select name,database_role from v$database;
查询备库日志应用进程:
在备库(Standby)查询,检查日志应用进程是否开启 MRP0 进程select pid,process,status from v$managed_standby;SQL> select pid,process,status from v$managed_standby;PID PROCESS STATUS---------- --------- ------------21589 ARCH CONNECTED21591 ARCH CONNECTED21593 ARCH CONNECTED21595 RFS IDLE21597 RFS IDLE21604 RFS IDLE9809 MRP0 WAIT_FOR_LOG--MRP0 即为归档应用进程。
查看日志应用状态,确保每一个日志都可以被应用:
SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;SEQUENCE# APPLIED---------- ---------1410 YES1411 YES1412 YES1413 YES1414 YES
查看备库同步情况
set linesize 150;set pagesize 20;column name format a13;column value format a20;column unit format a30;column TIME_COMPUTED format a30;select name,value,unit,time_computed from v$dataguard_stats where name in ('transport lag','apply lag');NAME VALUE UNIT TIME_COMPUTED------------- -------------------- ------------------------------ ------------------------------transport lag +00 00:00:00 day(2) to second(0) interval 07/30/2019 20:59:59apply lag +00 00:00:00 day(2) to second(0) interval 07/30/2019 20:59:59
4.5 主备库切换测试
将备库的角色切换为主库:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY with session shutdown;
5 、备库应急切换测试
模拟情景由于主库故障无法正常 switchover,需要执行 failover,强制备库切换为主库并接管业务
5.1 停止应用恢复模式
alter database recover managed standby database finish force;
5.2 转换备库为主库
alter database commit to switchover to primary;
5.3 重启数据库进行业务测试
alter database open;
6. 重新生成 DataGuard 备库
由于切换测试已经将 DataGuard 进行了 failover 类型的切换,所以无法进行逆向操作,只能重新 进行 DataGuard 的数据初始化,重复第四章节即可。
最后,以上步骤我以整理成文档,公众号【JiekeXu之路】后台回复【ADG下载】获取百度云链接,习惯用 github 的也提供了下载链接,可自行回复关键字选择下载。
推荐阅读:
Linux Oracle 11.2.0.4 单机数据库升级至最新补丁安装指北
万字详解Oracle架构、原理、进程,学会世间再无复杂架构
Oracle 11GR2 RAC 最新补丁 190416 安装指导
Oracle 11gR2 RAC 集群服务启动与关闭总结
CentOS6.7安装PostgreSQL10.9详细教程
史上最全的 OGG 基础知识整理


(长按添加微信公众号,更多精彩内容不错过!)
码字不易,点赞、转发是一种对作者的鼓励!




