DG之主库、备库切换(物理备库)
来源:互联网 发布:淘宝 企业店铺 假货 编辑:程序博客网 时间:2024/04/30 07:11
DG之主库、备库切换
一.开库与关库顺序
开库顺序
先启备库,再启主库(启动监听、打开告警日志)
关库顺序
先关主库,再关备库
二.主备库切换
1、操作过程一览
步骤1:启动备库、监听、告警;
步骤2:启动主库、监听、告警;
步骤3:主库(bj)查询信息
SQL> selectname,dbid,database_role,protection_mode from v$database;
步骤4:备库(sh)上做recover
SQL> recovermanaged standby database disconnect from session;
步骤5:备库上插入数据
SQL> insert into scott.emp1 select * from scott.emp;
报错
虽然备库处于open状态,但它是一个read-only状态。
步骤6:查看主库(bj)、备库(sh)日志是否一致
SQL> selectmax(sequence#) from v$archived_log where name is not null;
或SQL> selectmax(sequence#) from v$archived_log ;
举例:
主库:
备库:
上图表明已经归档的最大序列号均为34,说明日志是同步的,可以进行主备库切换。
步骤7:主库(bj)下检查是否可以切换
SQL> selectname,database_role,protection_mode,switchover_status from v$database;
switchover_status显示“TO STANDBY”表示允许做切换。
步骤8:备库(sh)下检查是否可以切换
SQL> selectname,database_role,protection_mode,switchover_status from v$database;
说明:备库是不允许主动去切成主库的,NOT ALLOWED状态说明正常。
步骤9:检查主库(bj)上的会话
SQL> select username,sid from v$session where username is notnull;
查看是否仍有用户使用数据库,若仍有人使用,是不允许切换的,切换前要通知确保无用户使用。
————————————————————————————————————————————————————————————————————
【补充】:有会话存在,不允许切换数据库。
(补充部分步骤混乱了,需重新整理 )
举例:
主库(bj)登陆用户:
SQL > conn scott/tiger
SQL > update emp1 set sal=sal+3000;
SQL > select username,sid from v$sessionwhere username is not null;
出现了scott用户。
SQL > selectname,database_role,protection_mode,switchover_status from v$database;
10g中switchover_status会显示“sessionactive”。
SQL> alter database commit to switchover to physical standby ;
或 alter database commit to switchover tostandby ;
报错。
同时检查告警日志会发现:
SQL > ! ps -ef|grep 7566
SQL > alter database commit to switchover to physical standbywith session shutdown;
scott没有提交的事务,会被回滚。
SQL > shutdown
bj手工关库
bj启动到mount状态
SQL > startup mount;
sh启动到mount状态
sh查询状态
sh转换为主库
SQL > alter database commit to switchover toprimary;
SQL > alter database open;
bj查看状态
SQL> selectname,database_role,protection_mode,switchover_status from v$database;
bj
SQL > alter database open
补充完毕
————————————————————————————————————————————————————————————————————
步骤10:主库(bj)变为物理备库(sh)
若没有会话,将主库(bj)变为物理备库(sh)
SQL> ALTER DATABASECOMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
若有会话的话,关闭会话,将主库(bj)变为物理备库(sh)
SQL> alter database commit to switchover to physical standby withsession shutdown;
步骤11:关闭、重启之前的主库(bj)到mount状态
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> selectswitchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
注:在这个时候,两个数据库都应该处于备库状态。
步骤12:查证备库的转换状态
SQL> SELECTSWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
-----------------
TO_PRIMARY ——可以转换为主库,说明是备库状态
步骤13:将目标物理备库(sh)转换为主库
SQL> ALTER DATABASECOMMIT TO SWITCHOVER TO PRIMARY ( WITHSESSION SHUTDOWN ) ;
步骤14:完成备库(sh)到主库转换,物理备库启动到open
若物理备库(bj)在最近一次启动时不是处于只读模式 opened in read-only mode,直接将数据库打开,然后下一步。
SQL> select status fromv$instance;
STATUS
------------
MOUNTED
SQL> ALTER DATABASE OPEN;
SQL> select switchover_statusfrom v$database;
SWITCHOVER_STATUS
--------------------
TO STANDBY
若物理备库(bj)在最近一次启动时是只读模式,则先将数据库正常关闭再起库。
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
步骤15:在新备库(bj)上重新开启日志应用
SQL> ALTER DATABASERECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
步骤16:在新的主库(sh)上切换日志,开始传输数据给备库
SQL> ALTER SYSTEM SWITCHLOGFILE;
SQL> /
SQL> select max(sequence#)from v$archived_log;
MAX(SEQUENCE#)
--------------
56
SQL> col name for a50;
SQL> select NAME ,SEQUENCE# from v$archived_log; 查看归档日志
步骤17:在备库(bj)上查看归档,两值相等说明备库能收到日志
SQL> select max(sequence#)from v$archived_log;
MAX(SEQUENCE#)
--------------
56
SQL> col name for a50;
SQL> select NAME ,SEQUENCE# from v$archived_log; 查看归档日志
2、总结主备库切换重点
时
间
轴
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
↓
主库
备库
查询能否切换(应该显示允许)
备库查询能否切换(应该显示不允许)
切换为物理备库
切换到mount状态
查看备库转换状态
转换为主库
切换到mount状态
启动到open
启动到open状态
开启日志应用
切换日志
查看归档序列号
查看归档序列号
查询状态:备库
查询状态:主库
********************************************** * 声明 ************************* ***********************
原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处( http://blog.csdn.net/huangyanlong )。
- DG之主库、备库切换(物理备库)
- DG之主库、备库切换(物理备库)
- DG搭建物理备库
- oracle物理DG管理-手工主备切换
- oracle物理dg安装:主库创建
- DG物理备库的几种模式
- oracle学习之:DG中物理备库、快照备库的相互转换
- oracle DG主备切换
- Oracle DG 之逻辑备库--Switchover
- DG物理standby主备库切换(swithover)
- 生产库DG的切换演练
- DG搭建逻辑备库
- DG备库重做脚本
- Oracle DG 备库状态为SWITCHOVER PENDING 无法切换到主库
- 【DATAGUARD】物理dg的switchover切换(五)
- 【DATAGUARD】物理dg在主库丢失归档文件的情况下的恢复(七)
- dg 备库归档位置不一致
- 解决DG备库延迟一例
- 开源组件ExcelReport
- tomcat配置虚拟目录的映射
- BITCS2016程序设计 | 9. 一夜发白 《千字文》
- c!#!获!取!文!件!夹!中!的!图!标!资!源
- HTML5学习_day10(2)--css文件书写格式
- DG之主库、备库切换(物理备库)
- hdu 4758 Walk Through Squares AC自动机
- 监听EditText的复制、粘贴、全选、剪切、选择等状态
- 【bzoj 1029】 [JSOI2007]建筑抢修
- 如何取消ctrl+space以便在Myecplise中使用快捷键
- codeforces Gym 101102F
- MATLAB数组加减法
- 有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和。
- 关于RN的配置流程