当前位置:文档之家› 运维手册_数据库_DataGuard日常运维手册

运维手册_数据库_DataGuard日常运维手册

文档标识文件状态:[] 草稿[√] 正式发布[ ] 正在修改Oracle RAC+DataGuard运维手册版本:1.0.0编制周光晖2015年01月20审核批准年月日生效日期:年月日修订历史记录日期版本修订说明作者目录第一章引言 (3)**. 编写目的 (3)**. 定义、首字母缩写词和缩略语 (4)第二章......................................................................................................... D ATA G UARD状态查询4**. 检查主备库的D ATA G UARD状态信息 (4)**. 检查进程 (4)**. 检查归档状态 (4)**. 检查最后应用的日志S EQUENCE (5)**. 查看是否使用实时应用 (5)**. 检查GAP (5)**. 检查保护模式 (5)**. 相关视图 (6)第三章................................................................................................................... SWITCHOVER 6**. 确认主库状态是否支持切换操作 (6)**. 执行主库转换 (7)**. 关闭并MOUNT新备库 (7)**. 确认老备库状态 (7)**. 切换目标备库为主库 (7)**. 打开新主库 (8)**. 启动新备库的日志应用 (8)**. 开启新备库的ADG (8)第一章引言1.1. 编写目的本文档描述了Oracle 11gR2 RAC+ADG操作手册。

包含RAC DOWN机测试,日常查询状态,启停RAC等指令同时包含oracle 11g R2 ACTIVE DATAGUARD 的日常维护指令。

1.2. 定义、首字母缩写词和缩略语第二章DataGuard状态查询2.1. 检查主备库的DataGuard状态信息SQL> Alter session set nls_date_format ='‘YYYY-MM-DD HH24:MISS';SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS;使用V$DATAGUARD_STATUS结合alert日志信息,判断DataGuard使用过程中的错误信息,查看当前日志应用的状态。

可以用ls -lt|more命令来查看主库最新归档日志文件的序号,对比备库当前归档日志应用状态了解备库目前和主库日志文件之间的差异情况。

2.2. 检查进程在主库:SELECT PROCESS, CLIENT_PROCESS, SEQUENCE#, STATUS FROM V$MANAGED_STANDBY;在备库:SELECT PROCESS, CLIENT_PROCESS, SEQUENCE#, STATUS FROM V$MANAGED_STANDBY; PROCESS CLIENT_P SEQUENCE# STATUS--------- -------- ---------- ------------ARCH ARCH 0 CONNECTEDARCH ARCH 0 CONNECTEDARCH ARCH 38 CLOSINGARCH ARCH 8 CLOSINGRFS ARCH 0 IDLEMRP0 N/A 39 APPLYING_LOGRFS LGWR 39 IDLERFS UNKNOWN0 IDLERFS UNKNOWN0 IDLEMRP是应用日志,ARCH是归档进程,RFS是接收重做日志的进程。

主库进程需要确认有ARCH进程,备库需要确认存在MRP、ARCH、RFS进程,如果不存在则表示dataguard工作不正常,查询V$DATAGUARD_STATUS视图和alert日志需找具体的错误信息。

2.3. 检查归档状态在主库运行查询:SELECT DEST_ID,DEST_NAME,STATUS from V$ARCHIVE_DEST_STATUS;判断primary库的两个归档路径是否为valid状态在备库执行查询:set linesize 1000col NAMEfor a60col CREATOR for a10col SEQUENCE# for a10col APPLIED for a10col COMPLETION_TIME for a15SELECT NAME, CREATOR,SEQUENCE#, APPLIED, COMPLETION_TIME FROMV$ARCHIVED_LOG;判断当前有哪些未APPLY,可通过操作系统命令ls查看对应目录下未APPLY的日志是否已经传输到standby端2.4. 检查最后应用的日志SequenceSQL> SELECT THREAD#, MAX(SEQUENCE#) FROM V$LOG_HISTORY GROUP BY THREAD#;2.5. 查看是否使用实时应用在备库执行如下查询:SQL>select recovery_mode from v$archive_dest_status where recovery_mode !='IDLE'; RECOVERY_MODE-----------------------MANAGED REAL TIME APPLY2.6. 检查GAP在备库运行:SQL> SELECT * FROM V$ARCHIVE_GAP;2.7. 检查保护模式set linesize 1000;col DATABASE_ROLE for a25;col INSTANCEfor a25;col OPEN_MODE for a25;col PROTECTION_MODE for a25;col PROTECTION_LEVEL for a25;col SWITCHOVER_STATUS for a25;SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS FROM V$DATABASE;确认主库状态为to standby或者为sessions active、保护模式应该MAXIMUM AVAILABILITY、角色为PRIMARY,如果状态异常,请按《检查DataGauard状态》章节操作检查DataGuard信息--在备库查询时通常为not allowed 或者sessions active,角色为PHYSICAL STANDBY;当primary 主库改为standby角色后,那么其中的任意一个standby库都可能被切换为primary角色,这时需要确认standby库的状态为to primary2.8. 相关视图V$ARCHIVE_DESTV$ARCHIVE_DEST_STATUSV$ARCHIVE_GAPV$ARCHIVED_LOGV$DATABASEV$DATAFILEV$DATAGUARD_STATUSV$LOGV$LOGFILEV$LOG_HISTORYV$MANAGED_STANDBY (Physical Standby Databases Only)V$STANDBY_LOGSWITCHOVER第三章DataGuard启动关闭3.1. 启动(for 10g)在主库端:#su - oracle$lsnrctl start$sqlplus / as sysdbaSQL>startup在备库端:#su - oracle$sqlplus / as sysdbaSQL>startup mountSQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY PARALLEL 2 USING CURRENT LOGFILE DISCONNECT FROM SESSION;SQL> select process,status from v$managed_standby;PROCESS STATUS--------- ------------ARCH CLOSINGARCH CONNECTEDRFS IDLERFS IDLEMRP0 APPLYING_LOG3.2. 关闭(for 10g)在主库端:#su - oracle$sqlplus / as sysdbaSQL>shutdown immediate在备库端#su - oracle$sqlplus / as sysdbaSQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;SQL>shutdown immediate3.3. 启动(for 11g)在主库端:#su - oracle$lsnrctl start$sqlplus / as sysdbaSQL>startup在备库端:#su - oracle$sqlplus / as sysdbaSQL>startupSQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY PARALLEL 2 USING CURRENT LOGFILE DISCONNECT FROM SESSION;SQL> select process,status from v$managed_standby;PROCESS STATUS--------- ------------ARCH CLOSINGARCH CONNECTEDRFS IDLERFS IDLEMRP0 APPLYING_LOG3.4. 关闭(for 11g)在主库端:#su - oracle$sqlplus / as sysdbaSQL>shutdown immediate在备库端#su - oracle$sqlplus / as sysdbaSQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;SQL>shutdown immediate第四章SWITCHOVER4.1. 主库4.1.1.如果主库是RAC,先做4.1.2。

如果是单机,直接做4.1.34.1.2.停掉节点2实例ssh 节点2#su - oracle$sqlplus / as sysdbashutdown immediate4.1.3.在节点1操作:#su - oracle$sqlplus / as sysdbaselect SWITCHOVER_STATUS,DATABASE_ROLE,PROTECTION_MODE FROM v$database;alter **mit to switchover to physical standby with session shutdown;shutdown immediatesqlplus / as sysdbastartup nomountalter database mount standby database;alter system set log_archive_dest_state_2=defer;alter system set aq_tm_processes=0 scope=memory;alter database recover managed standby database disconnect;4.2. 备库#su - oracle$sqlplus / as sysdbaselect SWITCHOVER_STATUS,DATABASE_ROLE,PROTECTION_MODE FROM v$database;如果SWITCHOVER_STATUS的值为TO Primary或SESSIONS ACTIVE ,执行脚本ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; alter **mit to switchover to primary with session shutdown;shutdown immediatesqlplus / as sysdbastartup mountalter system set log_archive_dest_state_2=enable;alter system set aq_tm_processes=0 scope=memory;alter database open;alter database tempfile '/u01/app/oracle/oradata/jygdb/temp01.dbf' resize 1000M; ---第一次主切备要做,以后切换不用4.3. 新备库#su - oracle$sqlplus / as sysdbaALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE NODELAY PARALLEL 2 USING CURRENT LOGFILE DISCONNECT FROM SESSION;第五章FAILOVER紧急状态下直接做5.3步骤5.1. 确认主库状态A、通常,只要主库所在主机可用,则数据库一直在运行,不必要进行主备切换。

相关主题