[Oracle] DataGuard switchover
Oracle DataGuard switchover
2013/07/11
Tag.Data Guard,primary,standby,switchover
切换前primary site和standby site状态检查
Primary site.
确认primary site和standby site没有出现日志裂隙(log file gap)
SQL> select status,gap_status from v$archive_dest_status where dest_id=2; STATUS GAP_STATUS
--------- ------------------------
VALID NO GAP
确认primary可以转换成standby角色
SQL> select switchover_status from v$database; SWITCHOVER_STATUS
--------------------
TO STANDBY
--注意:
switchover_status应为to standby/session active/not allowed
a. to standby 表示可以转换
b. session active 表示还有活动的session,通过v$session确认活动会话
c. not allowed 表示不能转换查看当前会话数
SQL> select count(*) from v$session where username is not null; COUNT(*)
----------
1
查看primary其他信息
SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
-------------------- -------------------- -------------------- --------------------
READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY
Standby site.
查看standby site端switchover状态
SQL> select switchover_status,database_role from v$database; SWITCHOVER_STATUS DATABASE_ROLE
-------------------- ----------------
NOT ALLOWED PHYSICAL STANDBY
确认standby site没有日志应用延迟
SQL> select delay_mins from v$archive_dest where dest_id=2; DELAY_MINS
----------
0
如果有延迟设置.在standby site禁用延迟
alter database recover managed standby database nodelay;
查看standby其他信息
SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
-------------------- -------------------- -------------------- --------------------
READ ONLY WITH APPLY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE NOT ALLOWED
切换
--注意:
现将primary将为standby,再将standby升为priamry
primary切到standby
SQL> select database_role from v$database; DATABASE_ROLE
----------------
PRIMARY SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
-------------------- -------------------- -------------------- --------------------
READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY SQL> alter database commit to switchover to physical standby; Database altered.
========================================
SQL> shutdown immediate;
ORA-01092: ORACLE instance terminated. Disconnection forced
SQL> shutdown immediate;
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL> select open_mode from v$database;
ERROR:
ORA-03114: not connected to ORACLE SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
========================================
[oracle@TENCENT64 /u]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.2.0 Production on Thu Jul 11 19:57:50 2013 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to an idle instance.
SQL>
=========================================
SQL> startup nomount;
ORACLE instance started. Total System Global Area 1603411968 bytes
Fixed Size 2226912 bytes
Variable Size 503317792 bytes
Database Buffers 1090519040 bytes
Redo Buffers 7348224 bytes SQL> alter database mount standby database; Database altered. SQL> alter database recover managed standby database disconnect from session; Database altered. SQL> select database_role from v$database; DATABASE_ROLE
----------------
PHYSICAL STANDBY 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 TO PRIMARY
观察alert日志可以发现primary已经成功切换成Physical Standby database
Thu Jul 11 19:58:56 2013
Successful mount of redo thread 1, with mount id 3458571643
Physical Standby Database mounted.
standby切到primary
SQL> select database_role from v$database; DATABASE_ROLE
----------------
PHYSICAL STANDBY SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
-------------------- -------------------- -------------------- --------------------
READ ONLY WITH APPLY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO PRIMARY SQL> alter database commit to switchover to primary; Database altered. SQL> shutdown immediate;
ORA-01109: database not open Database dismounted.
ORACLE instance shut down. SQL> startup;
ORACLE instance started. Total System Global Area 1603411968 bytes
Fixed Size 2226912 bytes
Variable Size 486540576 bytes
Database Buffers 1107296256 bytes
Redo Buffers 7348224 bytes
Database mounted.
Database opened. SQL> select database_role from v$database; DATABASE_ROLE
----------------
PRIMARY SQL> select open_mode,protection_mode,protection_level,switchover_status from v$database; OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
-------------------- -------------------- -------------------- --------------------
READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE RESOLVABLE GAP SQL> / OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
-------------------- -------------------- -------------------- --------------------
READ WRITE MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE TO STANDBY
观察alert日志可以发现standby已经成功切换成Primary
Standby became primary SCN: 1362898
Switchover: Complete - Database mounted as primary
Completed: alter database commit to switchover to primary
最后,修改primary site和standby site的tnsnames.ora
--END--
[Oracle] DataGuard switchover的更多相关文章
- 4.1 ORACLE DATAGUARD SWITCHOVER 步骤
验证主库是否能执行角色转换到备库 原主库执行 SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS --------- ...
- Oracle Dataguard之switchover
Oracle Dataguard的角色转换包含两类:Switchover和Failover.Switchover指主备之间角色转换,主库降为备库,备库升级为主库.而failover则是指主库出现问题时 ...
- Oracle DataGuard主备切换(switchover)
Oracle DataGuard主备切换可以使用传统的手动命令切换,也可以使用dgmgr切换,本文记录手动切换. (一)将主库切换为物理备库 STEP1:查看主库状态 SQL> SELECT O ...
- Oracle Dataguard之failover
Oracle Dataguard中,角色转换包含两类:Switchover和Failover.上文<Oracle Dataguard之switchover>中,我们已经谈过了switcho ...
- Oracle Dataguard之物理standby的基本配置
尽管网上有很多Oracle Dataguard的配置教程,但不难发现,很多采用的是rman duplicate这种方法,尽管此种方法较为简便.但在某种程度上,却也误导了初学者,虽说也能配置成功,但只知 ...
- Oracle dataguard 正常切换和应急切换
oracle dataguard提供异地容灾方案,能有效的防止单点故障和提供高可用技术,这里介绍dataguard正常主备切换和应急切换(应急切换模拟主库出现问题无法还原,备库脱离dataguard接 ...
- oracle dataguard主从切换
前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...
- Oracle dataguard failover 实战
Oracle dataguard failover 实战 操作步骤 备库: SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINIS ...
- Oracle Dataguard故障转移(failover)操作
注意:故障转移会破坏DG的主从关系,使其变为互不相关的2个数据库,谨慎使用. (一)故障转移操作流程图 (二)故障转移操作流程 备注:以下操作步骤与上面流程图步骤一一对应 STEP1:刷新所有未发送到 ...
随机推荐
- git的使用入门
写作目的: 快速的上手git版本控制+github神器进行基本的版本同步操作. 怎么做? 对于任意一个代码项目,使用git_bash进入到代码目录 如果没有进行过初始化操作:应当使用git init ...
- 12,DBUtils - Python数据库连接池
创建数据库连接池: import time import pymysql import threading from DBUtils.PooledDB import PooledDB, SharedD ...
- Servlet过滤器---编码转换过滤器
该实例用于将请求与相应的编码设置为当前网站的默认编码 java类: import java.io.IOException; import javax.servlet.Filter; import ja ...
- MySQL之查询性能优化(一)
为什么查询速度会慢 通常来说,查询的生命周期大致可以按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中“执行”可以认为是整个生命周期中最重要的阶段, ...
- quartz 动态更改执行时间
说明:Quartz + Servlet, 参考国外著名站点的文章:http://stackoverflow.com/questions/12208309/need-to-set-the-quartz- ...
- react基本知识点合集
妹子UI里面有React的相关组件与用法:http://amazeui.org/react/components React官方网站:https://facebook.github.io/react/ ...
- 剑指Offer - 九度1391 - 顺时针打印矩阵
剑指Offer - 九度1391 - 顺时针打印矩阵2013-11-24 04:55 题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 ...
- DOS程序员手册(十五)
837页 writeln('TRACING Current Buffer==='); holdup; bcbtrc(cvtbase^.curbfr); writeln; holdup ; writel ...
- hnust 好友互动标识
问题 A: 好友互动标识 时间限制: 1 Sec 内存限制: 128 MB提交: 897 解决: 122[提交][状态][讨论版] 题目描述 QQ有一个有趣的功能即显示好友互动标识,它 ...
- Python——数据类型初步:Numbers
本篇内容 今天主要简介了几种数字的数据类型和一些稍微比较常用的方法. • int • bytes • float • bool • complex • long Python里面的使用变量的时候并不需 ...