环境检查检查两RAC的参数文件配置SQL> show parameter spfile;SQL>show parameter fal;lsnrctl status 查看RAC环境中监听状态tnsping 查看TNS的连通情况如果需要RAC作为备库执行如下步骤①.为RAC环境添加standby redolog,而且作为备库redolog group数要多于或等于主库:SQL>alter database add standby logfile thread 1 group 5 size 50M ,group 6 size 50M ,group 7 size 50M ;单实例添加方法:SQL>alter database add standby logfile group 7 "/oradata/racdb/onlinelog/group_7.log" size 50M;②.配置RAC环境中以下两个参数指定到自己的文件路径SQL> alter system set db_file_name_convert="+DATA/phydb/","+DATA/racdb/" sid="*" scope=spfile;SQL> alter system set log_file_name_convert="+DATA/phydb/","+DATA/racdb/" sid="*" scope=spfile;检查standby数据库
SQL> select status from v$instance;
SQL> select open_mode from v$database;
SQL> select member from v$logfile;如果没有standby redolog需要创建,语法如下:SQL>alter database add standby logfile group 7 "/oradata/racdb/onlinelog/group_7.log" size 50M;SQL> select name from v$datafile;SQL> select name from v$tempfile;SQL> show parameter control;正常切换①. 切换前检查RAC环境中数据库状态SQL> select dbid,name,protection_mode,database_role,open_mode,switchover_status from gv$database;关闭任一节点数据库SQL> shutdown immediate;②.将主库切换为备库SQL>alter database commit to switchover to physical standby with session shutdown;切换过程中查看数据库状态③.备库将已经完成传输的日志应用完成,确保数据不会丢失SQL> alter database recover managed standby database disconnect from session;SQL> select name,creator,sequence#,applied,completion_time from v$archived_log;SQL> alter database recover managed standby database cancel;④. 断开所有连接会话(或者重启备库到mount状态),切换至主库SQL> alter database commit to switchover to primary;(mount状态)⑤.打开数据库,查看新主库的状态是否正常SQL>alter database open;SQL> select dbid,name,protection_mode,database_role,open_mode,switchover_status from v$database;主库故障无法修复,快速切换备库为主库启动备库到mount状态,查看数据库standby信息:SQL>startup mount;启动日志应用,确保最大限度的可以日志应用完成后,再开始切换SQL> alter database recover managed standby database disconnect from session;SQL> select name,creator,sequence#,applied,completion_time from v$archived_log;SQL> alter database recover managed standby database cancel;SQL>select thread#,low_sequence#,high_sequence from v$archive_gap;确保日志传输完成,如果有返回记录,需要去主库上将该文件copy至备库相应目录下,并执行以下语句使之生效SQL> alter database register physical logfile "filespecl";主备库上都查询一下归档的最大序列号,确保主库的归档备库上都有,如果发现备库没有的,需要手动的复制至备库。查询语句如下:SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;停止当前的RFS进程,并立即执行failoverSQL> alter database recover managed standby database finish force;切换备库为主库,并打开数据库SQL> alter database commit to switchover to primary;SQL> alter database open;--------------------------------------分割线 --------------------------------------Oracle Data Guard 重要配置参数 http://www.linuxidc.com/Linux/2013-08/88784.htm基于同一主机配置 Oracle 11g Data Guard http://www.linuxidc.com/Linux/2013-08/88848.htm探索Oracle之11g DataGuard http://www.linuxidc.com/Linux/2013-08/88692.htmOracle Data Guard (RAC+DG) 归档删除策略及脚本 http://www.linuxidc.com/Linux/2013-07/87782.htmOracle Data Guard 的角色转换 http://www.linuxidc.com/Linux/2013-06/86190.htmOracle Data Guard的日志FAL gap问题 http://www.linuxidc.com/Linux/2013-04/82561.htmOracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法 http://www.linuxidc.com/Linux/2013-03/82009.htm--------------------------------------分割线 --------------------------------------更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址