DataGuard日常维护
2009-12-23 00:05
267 查看
日常维护:
正确的开关机顺序是:
启动的时候,先备库的listener,再启动备库,再启动主库的listener,再启动主库。
关闭的时候,先关闭主库,再关闭备库。
--为主数据库或备用数据库添加/删除日志组
SQL> alter database add standby logfile group 5 '/oracle/oradata/orcl/standbyredo05.log' size 100M; SQL> alter database drop standby logfile group 5; |
SQL> select process,client_process,sequence#,status from v$managed_standby; |
CLIENT_PROCESS列显示对应的主数据库中的进程
SEQUENCE#列显示归档redo的序列号
STATUS列显示的进程状态
--查询standby库中所有已被应用的归档文件信息(不论该归档文件是否还存在)
SQL> select first_time,first_change#,next_change#,sequence# from v$log_history; |
SQL> SELECT THREAD#, MAX(SEQUENCE#) AS "LAST_APPLIED_LOG" FROM V$LOG_HISTORY GROUP BY THREAD#; |
SQL> SELECT LOCAL.THREAD#, LOCAL.SEQUENCE# FROM (SELECT THREAD#, SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=1) LOCAL WHERE LOCAL.SEQUENCE# NOT IN (SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND THREAD# = LOCAL.THREAD#); |
SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS; |
SELECT ARCHIVED_THREAD#, ARCHIVED_SEQ#, APPLIED_THREAD#, APPLIED_SEQ# FROM V$ARCHIVE_DEST_STATUS; |
SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; SQL> Alter DATABASE OPEN READ ONLY; |
SQL> Alter DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; |
注意:Swithover时只能先从Primary切到Standby,再从Standby切到Primary.
1、在主库端
select database_role,switchover_status from v$database; |
直接执行 ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
否则执行: ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
SQL> shutdown immediate; SQL> startup nomount; SQL> alter database mount standby database; SQL> select database_role from v$database; SQL> alter database recover managed standby database disconnect from session; |
select database_role,switchover_status from v$database; |
执行:ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
否则执行: ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
shutdown immediate; startup; |
failover测试
1. 备库上检查是否存在归档中断
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP; |
SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN XX AND XX; |
SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'xxx'; |
--检查归档文件是否完整
分别在primary/standby执行下列语句:
SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log; |
3. 启动failover
SQL> alter database recover managed standby database finish force; |
或
SQL> alter database recover managed standby database finish skip standby logfile; |
SQL> alter database commit to switchover to primary; SQL> shutdown immediate SQL> startup |
相关文章推荐
- 49、DataGuard日常维护
- Oracle 11G R2 DataGuard日常维护及故障处理
- oracle dataguard日常维护命令总结
- Oracle 10g 物理Dataguard日常操作维护(一)
- Oracle 10g dataguard 物理备库日常维护(一)
- Oracle 10g 物理Dataguard日常操作维护(二)
- Dataguard日常维护及故障解决
- Oracle 10g dataguard 物理备库日常维护
- 高可用性dataguard搭建和日常维护工作
- Oracle 10g 物理Dataguard日常操作维护(二)
- DataGuard 日常维护
- Oracle 11g 物理Dataguard日常操作维护(二)
- DataGuard日常维护
- Dataguard日常维护及故障解决
- Oracle 10g 物理Dataguard日常操作维护(一)
- Oracle 10g 物理Dataguard日常操作维护(二)
- 运维监控利器Nagios之:Nagios的日常维护和管理
- Oracle数据库集群容灾实施与维护2.0(RAC+DataGuard+GoldenGate)教程
- oracle日常维护的几个常用脚本
- Hadoop日常维护系列——Hadoop添加删除节点