手把手教你Oracle DataGuard主备切换(switchover)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 手把手教你Oracle DataGuard主备切换(switchover)

Oracle DataGuard主备切换有两种方式,一种是手动,一种是使用dgmgr切换。今天主要来讲第一种。

一、手动切换

(一)先查看主备库的状态何日志是否正常

1、主库

  1. SQL>set line 300 pages 300
  2. select name,remote_archive,database_role,guard_status,db_unique_name from v$database;

  1. SQL>SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME  FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

2、备库

  1. SQL>set line 300 pages 300
  2. select name,remote_archive,database_role,guard_status,db_unique_name from v$database;

  1. SQL>SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME  FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

3、再查看是否可以进行切换

在主库

需要检查SWITCHOVER_STATUS参数,如果值为”SESSION ACTIVE”或者”TO STANDBY”, 则主数据库角色可以切换为备库角色。

  1. SQL> set line 300 pages 300
  2. SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

4、进行主备切换

将其切换到备库,切换后,数据库会关闭

  1. SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

5、将主库启动到mount状态

  1. SQL> SHUTDOWN ABORT #11.2.0.4以下低版本执行,高版本不需要执行
  2. SQL> STARTUP MOUNT

6、将备库切换成主库并启动到open

查看备库状态

注意:需要检查SWITCH_STATUS参数,如果值为”SESSION ACTIVE”或”TO PRIMARY”,则备库可以切换为主库。

  1. SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

7、切换到主库

  1. SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

8、打开数据库

此时数据库为mount状态,需打开数据库

  1. SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;
  2. SQL> ALTER DATABASE OPEN ;

再次查看备份的SWITCHOVER_STATUS是否变为TO STANDBY

  1. SQL> SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;

9、新的备库开启日志应用

  1. SQL> ALTER DATABASE OPEN;
  2. SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

10、验证是否切换成功

原主库现备库查看

  1. SQL> set linesize 999
  2. select name,open_mode,database_role,protection_mode,switchover_status from v$database;

原备库现主库查看

  1. SQL> set linesize 999
  2. select name,open_mode,database_role,protection_mode,switchover_status from v$database;

我们可以看到主备已经切换完成,整个过程也比较顺利。期间也出现了两个问题,现在总结一下。

1、切换过程中备库SWITCHOVER_STATUS状态为NOT ALLOWED。

解决方法:

先看告警日志

  1. SQL> show parameter dump;

  1. [oracle@standbynode trace]$cd /u01/app/oracle/diag/rdbms/orcl11gdg/orcl11g/trace

在trace目录下查看alert_orcl11g.log日志是否有告警

一般是因为主备库的数据没完全同步

  1. [oracle@standbynode ~]$ rman target /
  2. RMAN> list incarnation;

需重置备库化身和主库保持一致

备库

  1. SQL> shutdown immediate
  2. SQL> startup mount
  3. [oracle@standbynode ~]$rman target /
  4. RMAN> reset database to incarnation 3;
  5. RMAN> list incarnation;

打开备库和备库开启日志应用

  1. 开启备库
  2. SQL> alter database open;
  3. 备库开启日志实时应用
  4. SQL> alter database recover managed standby database using current logfile disconnect from session;
  5. 查看进程
  6. SQL> select pid,process, status, thread#,sequence#, block#, blocks from v$managed_standby;

2、切换过程中备库SWITCHOVER_STATUS状态为FAILED DESTINATION。

解决方法:

先看告警日志

  1. SQL> show parameter dump;

  1. [oracle@standbynode trace]$cd /u01/app/oracle/diag/rdbms/orcl11gdg/orcl11g/trace

在trace目录下查看alert_orcl11g.log日志是否有告警

一般是监听有问题或者主库状态异常。总之要学会看trace日志。

二、DG_BROKER

需要搭建DG_BROKER,后面再分享搭建的。其实最关键是将主备库的dg_broker_start的VALUE设置为true。然后进行监听之类的配置。

  1. SQL>alter system set dg_broker_start=true scope=both;
相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
Oracle 网络协议 安全
Oracle 11g DataGuard搭建保姆级教程
Oracle 11g DataGuard搭建保姆级教程
1283 4
|
Oracle 网络协议 关系型数据库
Oracle DataGuard主备切换之自动切换
Oracle DataGuard主备切换之自动切换
687 2
|
Oracle 关系型数据库 数据库
Flink CDC中oracle dataguard模式下,有没有cdc备库的方案?
Flink CDC中oracle dataguard模式下,有没有cdc备库的方案?
417 1
|
Oracle 关系型数据库
oracle 19c 搭建dataguard 简要命令
通过service 完成dg 搭建。
342 0
|
Oracle 网络协议 关系型数据库
oracle 11g dataguard 配置步骤
oracle 11g dataguard 配置步骤
350 0
|
Oracle 网络协议 关系型数据库
Oracle11g DataGuard部署与维护
DataGuard是Oracle高可用必备技能。
|
2月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
337 93
|
1月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
176 0
|
4月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。

推荐镜像

更多