http://blog.itpub.net/29477587/viewspace-1331121/

前段时间做了一次主备库的切换,大体写下操作步骤和记录,分享下。

环境:  
         db version:11.2.0.3 
          主库:两节点的RAC 
         备库:两节点的RAC 
       是异地灾备,网络质量不太好。 
步骤: 
1.检查日志应用情况 
standby database(备库检查): 
SQL> select thread#,SEQUENCE#,FIRST_TIME,next_time,applied from gv$archived_log order by sequence#; (确定日志都已经应用 ) 

2. 检查日志传输错误 
SQL> SELECT STATUS, GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 2;

STATUS  GAP_STATUS 
--------- ------------------------ 
VALID  NO GAP

3. 评估切换时间   --rac环境下备库只有一个实例可以为open状态。 
 set linesize 200 
SQL> column name format a22 
SQL> column value format a16 
SQL> column unit format a28 
SQL> column time_computed format a25 
SQL>  select * from v$dataguard_stats; 
NAME       VALUE UNIT     TIME_COMPUTED       DATUM_TIME 
---------------------- ---------------- ---------------------------- ------------------------- ------------------------------ 
transport lag       +00 01:47:32 day(2) to second(0) interval 10/29/2014 10:48:15       10/29/2014 10:47:58 
apply lag       +00 01:47:32 day(2) to second(0) interval 10/29/2014 10:48:15       10/29/2014 10:47:58 
apply finish time day(2) to second(3) interval 10/29/2014 10:48:15 
estimated startup time 20 second     10/29/2014 10:48:15

4. 由于主备库都是rac ,此环境下主库和备库都只有一个实例存活 
 srvctl stop instance -d EM -i EM2   --先停止主库 
srvctl stop instance -d EM_SH -i EMP2  --停止备库 

NOTE:如果主库两个实例都存活会报错如下: 

SQL> alter database commit to switchover to physical standby with session shutdown; 
alter database commit to switchover to physical standby with session shutdown 

ERROR at line 1: 
ORA-01105: mount is incompatible with mounts by other instances 

5.登录主库操作 
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;   -- 确保状态为SESSION_ACTIVE 或者TO STANDBY(由于是异地可能在shut一个实例后,redo应用会有延迟,如果网络质量不太好,可等一等 

alter database commit to switchover to physical standby with session shutdown; --执行切换(最好把应用停掉 ) --执行完此操作后,数据库会自动shut 

STARTUP MOUNT; -- 启动原来主库到mount 

6.登录备库操作 
SELECT SWITCHOVER_STATUS FROM V$DATABASE;  -- 确保状态会SESSION_ACTIVE或者TO PRIMARY. 

ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;  --执行角色切换 

ALTER DATABASE OPEN;--打开新主库

srvctl start instance -d databasename -i instance_name --启动另外的节点

7.登录新的备库 
ALTER DATABASE OPEN; --启动库

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;  - -启动实时应用 

srvctl start instance -d databasename -i instance_name; --启动其他实例

8.进行事务,发现并没有同步过来 
archive log list 发现scn都没有 

经过核查是因为主库并没有日志传输 
 alter system set log_archive_dest_state_2='enable' sid='*';  --在新的主库执行,启动日志传输服务 
有可能查询数据的状态为: 

 SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS 
-------------------- 
FAILED DESTINATION 


查看备库的scn没有变化,可重启下备库。 

9.检查是否同步 
SELECT MAX(SEQUENCE#),THREAD# FROM V$ARCHIVED_LOG  
WHERE RESETLOGS_CHANGE# = (SELECT MAX(RESETLOGS_CHANGE#) FROM V$ARCHIVED_LOG)  GROUP BY THREAD#;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31397003/viewspace-2637881/,如需转载,请注明出处,否则将追究法律责任。

DataGuard切换(主库为Rac+备库为Rac)的更多相关文章

  1. DG备库无法接受主库归档日志之密码文件

    DG备库无法接受主库归档日志之密码文件 实验目的:还原某个客户案例,客户审计需要,对主库sys用户进行锁定,一小时后对sys用户进行解锁后,发现备库无法接受主库的归档日志 本篇文章,测试sys用户与D ...

  2. oracle dg 备库不同步主库数据

    今天遇到一个数据库同步问题,主库被关闭,重启主库后,备库不能正常同步主库数据.只有当手动切换归档日志的时候,备库才能和主库一致. 这个问题的解决方法: 重启备库,重新应用归档日志. 操作步骤如下: / ...

  3. Oracle-DG最大保护模式下,dg备库出现问题对主库有什么影响?

    一.需求 疑问?Oracle最大保护模式下,dg备库出现问题,影响主库吗? 我们都知道Oracle最大保护模式的意思是oracle不允许数据丢失,1条记录都不行! 那么备库有问题? oracle主库还 ...

  4. 备库Seconds_Behind_Master的计算

    背景 在mysql主备环境下,主备同步过程如下,主库更新产生binlog, 备库io线程拉取主库binlog生成relay log.备库sql线程执行relay log从而保持和主库同步. 理论上主库 ...

  5. oracle 利用flashback将备库激活为read wirte(10g 及上)

    oracle 利用flashback将备库激活为read wirte(10g 及上) 环境: OS: CENTOS 6.5 X64 DB: ORACLE 10.2.0.5 主库操作: SQL> ...

  6. Oracle11gr2_ADG管理之在备库上模拟failover的过程实战

    技术建议和方案. 要求failover后不重建备库,并能够把failover的数据库重新切换回备库 主库为newtest,备库为snewtest 备库上已经开启了闪回 得到一个参考的SCN SQL&g ...

  7. Oracle 10g RAC全库flashback

    因业务原因,今天需要做一次全库flashback.以下是操作全过程: 1.确认主库是否能flashback到需要的时间点 在节点1上执行: SQL> alter session set nls_ ...

  8. DG备库磁盘空间满导致无法创建归档

    上周五去某客户那里做数据库巡检.是window 2008系统上10g的一套NC系统的库,已经配置了DG,可是巡检时发现数据库报错: Tue Nov 11 10:13:57 2014 LNS: Stan ...

  9. MySQL · 答疑解惑 · 备库Seconds_Behind_Master计算

    背景 在mysql主备环境下,主备同步过程如下,主库更新产生binlog, 备库io线程拉取主库binlog生成relay log.备库sql线程执行relay log从而保持和主库同步. 理论上主库 ...

随机推荐

  1. blfs(systemd版本)学习笔记-为桌面环境构建xorg服务

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! lfs准备使用桌面环境,首先需要构建xorg服务 xorg服务项目地址:http://www.linuxfromscratch. ...

  2. [工具配置]使用requirejs模块化开发多页面一个入口js的使用方式

    描述 知道requirejs的都知道,每一个页面需要进行模块化开发都得有一个入口js文件进行模块配置.但是现在就有一个很尴尬的问题,如果页面很多的话,那么这个data-main对应的入口文件就会很多. ...

  3. JS的函数节流(throttle)

    什么是函数节流? 介绍前,先说下背景.在前端开发中,有时会为页面绑定resize事件,或者为一个页面元素绑定拖拽事件(其核心就是绑定mousemove),这种事件有一个特点,就是用户不必特地捣乱,他在 ...

  4. POJ 2484 A Funny Game(智商博弈)

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6397   Accepted: 3978 Description Alice ...

  5. 2018-11-29 VS Code英汉词典插件v0.0.6-改为TS实现, 加测试

    如前文VS Code英汉词典插件v0.0.4-驼峰下划线命名打算, 首先将JS源码改为TypeScript实现, 并添加了必要的测试. 昨天得知vue.js 3.0会用TypeScript实现, 正好 ...

  6. Java 开源博客 Solo 1.9.0 发布 - 新皮肤

    这个版本主要是改进了评论模版机制,让大家更方便皮肤制作,并发布了一款新皮肤:9IPHP. Solo 是一款一个命令就能搭建好的 Java 开源博客系统,并内置了 15+ 套精心制作的皮肤.除此之外,S ...

  7. Caused by: Java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;

    Caused by: Java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ ...

  8. Salesforce 导入导出数据简介

    导入数据的方式 有两种方式可以将数据导入Salesforce: 数据导入向导 Data Loader工具 Salesforce支持将csv文件中的数据导入系统. 数据导入向导 数据导入向导可以从设置界 ...

  9. Android为TV端助力 很详细的序列化过程Parcelable

    直接上代码:注释都写的很清楚了. public class Entry implements Parcelable{ public int userID; public String username ...

  10. Android为TV端助力 最简单的自定义圆点view

    首先创建一个选择器,用来判断圆点状态,可以根本自己的需求改 <selector xmlns:android="http://schemas.android.com/apk/res/an ...