data guard switchover切换异常
data guard switchover切换异常
查看DG数据库备份库发现,switchover_status为SWITCHOVER LATENT
SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
---------- -------------------- -------------------- --------------------
MOUNTED MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE SWITCHOVER LATENT
发现是switchover latent而不是to primary
这个问题是说切换处于pending模式,没有完成无法回到主库。当你查看ALERT日志时,也没有发现什么报错,是不是要继续等下去呢?其实不需要等待,出现这个问题的原因就是日志没有归档,所以备库与主库不一致,需要恢复。当备库恢复到和主库一致后,状态就会成为to_primary
验证一下这个问题是不是上面所说的原因,你可以继续在备库上执行下面这句
sys@standby> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN
*
ERROR at line 1:
ORA-16139: media recovery required
这里提示需要介质恢复。
根据以上的分析和定位,我们要解决这个问题,需要在备库上切断应用,启用日志同步
SYS@standby> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.
SYS@standby> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
显示为TO PRIMARY,这时看状态就正常了。
SYS@standby> alter database commit to switchover to primary with session shutdown;
Database altered.
SYS@standby> select database_role,switchover_status,open_mode from v$database;
DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE
---------------- -------------------- --------------------
PRIMARY NOT ALLOWED MOUNTED
打开数据库
sys@standby>alter database open;
切换一下日志
sys@standby> alter system switch logfile ;
System altered.
再检查一下日志的状态
SYS@standby> select sequence#,standby_dest,archived,applied,status from v$archived_log;
SEQUENCE# STA ARC APPLIED S
---------- --- --- --------- -
4 NO YES YES A
5 NO YES YES A
6 NO YES YES A
7 NO YES YES A
发现都是YES,说明已经同步了。
二、FAILED DESTINATION状态
当备库切换为主库后,发现切换状态为FAILED DESTINATION
SYS@primary> select database_role,switchover_status,open_mode from v$database;
DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE
---------------- -------------------- --------------------
PRIMARY FAILED DESTINATION READ WRITE
发现是FAILED DESTINATION而不是to standby
这个问题说明主库连接备库有问题,可以具体查看一下ALERT日志,看看是怎么回事
Error 12541 received logging on to the standby
Check whether the listener is up and running.
Errors in file /u01/app/oracle/diag/rdbms/primary/primary/trace/primary_arc2_2546.trc:
ORA-12541: TNS:no listener
PING[ARC2]: Heartbeat failed to connect to standby 'standby'. Error is 12541.
这里说明备库的监听有问题,重启备库监听,再查状态就变成to standby了
SYS@primary> select database_role,switchover_status,open_mode from v$database;
DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE
---------------- -------------------- --------------------
PRIMARY TO STANDBY READ WRITE
当然导致FAILED DESTINATION的原因会有很多,比如log_archive_dest_2 参数的属性值还有口令文件的配置出错或者权限问题等。
Switchover_Status值的含义
NOT ALLOWED
当前的数据库不是带有备用数据库的主数据库
PREPARING DICTIONARY
该逻辑备用数据库正在向一个主数据库和其他备用数据库发送它的重做数据,以便为切换做准备
PREPARING SWITCHOVER
接受用于切换的重做数据时,逻辑备用配置会使用它
RECOVERY NEEDED
备用数据库还没有接收到切换请求
SESSIONS ACTIVE
在主数据库中存在活动的SQL会话;在继续执行之前必须断开这些会话
SWITCHOVER PENDING
适用于那些已收到主数据库切换请求但是还没有处理该请求的备用数据库
SWITCHOVER LATENT
切换没有完成并返回到主数据库
TO LOGICAL STANDBY
主数据库已经收到了来自逻辑备用数据库的完整的字典
TO PRIMARY
该备用数据库可以转换为主数据库
TO STANDBY
该主数据库可以转换为备用数据库
data guard switchover切换异常的更多相关文章
- (摘录)data guard switchover切换异常
查看DG数据库备份库发现,switchover_status为SWITCHOVER LATENT SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION ...
- 12c Data guard Switchover Best Practices using SQLPLUS (Doc ID 1578787.1)
12c Data guard Switchover Best Practices using SQLPLUS (Doc ID 1578787.1) APPLIES TO: Oracle Databas ...
- 11.2 Data Guard Physical Standby Switchover Best Practices using SQL*Plus (Doc ID 1304939.1)
11.2 Data Guard Physical Standby Switchover Best Practices using SQL*Plus (Doc ID 1304939.1) APPLIES ...
- oracle data guard配置dg_broker
https://community.oracle.com/docs/DOC-1007327 本文主要包括以下内容: 1. 配置dg broker,需要完成以下几个工作: 在主备库配置静态监听注册,注 ...
- 使用Data Guard迁移到RAC (Doc ID 273015.1)
Migrating to RAC using Data Guard (Doc ID 273015.1) APPLIES TO: Oracle Database Cloud Exadata Servic ...
- Data Guard 之 浅析Switchover与Failover
Data Guard主从库之间的角色切换分为以下两种:1)SwitchoverSwithchover通常都是人为的有计划的进行角色互换,比如升级等.它通常都是无损的,即不会有数据丢失.其执行主要分为两 ...
- 搭建实时同步data guard的最高可用-切换主备
搭建实时同步data guard的最高可用-切换主备 首先保证主库在归档模式下:错过N次了 准备二台机器(hostname gw hosts ech0)host-only [root@node1 ~] ...
- 【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置
[DATAGUARD]物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技 ...
- 物理Data Guard主备切换步骤
物理Data Guard角色转换步骤 Step 1 验证主库是否能执行角色转换到备库(原主库执行) SQL> SELECT SWITCHOVER_STATUS FROM V$DATAB ...
随机推荐
- uva 167 - The Sultan's Successors(典型的八皇后问题)
这道题是典型的八皇后问题,刘汝佳书上有具体的解说. 代码的实现例如以下: #include <stdio.h> #include <string.h> #include < ...
- 【Leetcode】Binary Tree Level Order Traversal
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- MySQL 5.6 SQL 优化及 5.6手册
http://blog.chinaunix.net/uid-259788-id-4146363.html http://www.cnblogs.com/Amaranthus/p/4028687.htm ...
- LabVIEW设计模式系列——移位寄存器
标准:1.太多移位寄存器会导致连线太多,看起来凌乱,使用簇将变量打包,统一用一个移位寄存器,这样可以减少连线的麻烦2.如果每个变量都使用一个移位寄存器,没有一个名字是很难区分移位寄存器到底属于哪一个变 ...
- 1个小时学会ReactiveCocoa基本使用
来源:朱凯奇 链接:http://www.jianshu.com/p/5d966074741a 1.ReactiveCocoa简介 ReactiveCocoa(简称为RAC),是由Github开源的一 ...
- Sqlserver中实现oralce 数据库的rownumber
引用自:http://cai555.javaeye.com/blog/466033 方法1: with temp as ( select row_number() over(order by city ...
- nginx之服务器
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev ...
- Apache common包应用集合
一.Commons BeanUtils http://jakarta.apache.org/commons/beanutils/index.html 说明:针对Bean的一个工具集.由于Bean往往是 ...
- 对于百川SDK签名验证的问题
SDK是要在wantu.taobao.com生成的.而生成这个SDK其实是要上传一个apk,而这个上传其实就是取他的签名而已.验证就是那张yw222那张图片.重点是你上传的apk的签名是不是跟你的生成 ...
- Android模拟器对应的电脑快捷键说明
Home键(小房子键) 在键盘上映射的就是home键,这倒是很好记. Menu键 用于打开菜单的按键,在键盘上映射的是F2键,PgUp键同样可以.另外,看英文原文的意思,貌似这个键在某些机型上会被设计 ...