案例分析网站,用wordpress做的网站,设计师服务平台鱼巴士官网,商丘网站建设运营公司前言
众所周知#xff0c;DataGuard 的切换分为两种情况#xff1a;
系统正常情况下的切换#xff1a;这种方式称为 switchover#xff0c;是无损切换#xff0c;不会丢失数据。灾难情况下的切换#xff1a;这种情况下一般主库已经启动不起来了#xff0c;称为 failov…前言
众所周知DataGuard 的切换分为两种情况
系统正常情况下的切换这种方式称为 switchover是无损切换不会丢失数据。灾难情况下的切换这种情况下一般主库已经启动不起来了称为 failover有可能会丢失数据并且切换后原主库不再是该 Data Guard 配置的一部分。
Oracle DataGuard主备切换可以使用传统的手动命令切换也可以使用dgmgr切换本文将重点介绍在正常情况下运行的DG手动切换测试。
一将主库切换为物理备库
步骤 1查看主库状态
SQL SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS FOR_DATAGUAR GUARD_S
-------------------- ---------------- -------------------- ------------ --------
READ WRITE PRIMARY SESSIONS ACTIVE YES DISABLED NONE注意需要检查 SWITCHOVER_STATUS 参数如果值为 “SESSION ACTIVE” 或者 “TO STANDBY”则主数据库角色可以切换为备库角色。
步骤 2将其切换到备库切换后数据库会关闭
SQL ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY [WITH SESSION SHUTDOWN];注意如果上一步的 SWITCHOVER_STATUS 参数值为 “TO STANDBY”则 WITH SESSION SHUTDOWN 可以省略。
步骤 3启动到 mount 状态
SQL SHUTDOWN ABORT
SQL STARTUP MOUNT注意11.2.0.4 版本及其以上版本不需要执行 SHUTDOWN ABORT因为数据库已经在步骤 2 命令中关闭了。
二将备库切换成主库并启动到 open
步骤 1查看备库状态
SQL SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS FOR_DATAGUAR GUARD_S
-------------------- ---------------- -------------------- ------------ --------
READ ONLY WITH APPLY PHYSICAL STANDBY TO PRIMARY YES DISABLED NONE注意需要检查 SWITCHOVER_STATUS 参数如果值为 “SESSION ACTIVE” 或 “TO PRIMARY”则备库可以切换为主库。
步骤 2切换到主库
SQL ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY [WITH SESSION SHUTDOWN];注意如果上一步的 SWITCHOVER_STATUS 参数值为 “TO PRIMARY”则 WITH SESSION SHUTDOWN 可以省略。
步骤 3此时数据库为 mount 状态需打开数据库
SQL SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS FOR_DATAGUAR GUARD_S
-------------------- ---------------- -------------------- ------------ --------
MOUNTED PRIMARY NOT ALLOWED YES DISABLED NONE
SQL ALTER DATABASE OPEN;
Database altered.
SQL SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;OPEN_MODE DATABASE_ROLE SWITCHOVER_STATUS FOR_DATAGUAR GUARD_S
-------------------- ---------------- -------------------- ------------ --------
READ WRITE PRIMARY TO STANDBY YES DISABLED NONE三新的备库开启日志应用
SQL ALTER DATABASE OPEN;
SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;总结
通过上述步骤可以完成 Oracle DataGuard 的主备切换。以下是一些注意事项
检查 SWITCHOVER_STATUS在进行切换前确保 SWITCHOVER_STATUS 参数允许切换。关闭和启动数据库在切换过程中确保数据库正确关闭和启动。日志应用切换完成后确保新的备库开启日志应用。