您的位置:首页 > 数据库 > Oracle

oracle 11.2.0.4 RAC 安全停库

2016-10-14 12:14 246 查看
作为一名数据库管理员,难免有一些机器的停机检修,主机网络资源的调整,最基本的一个动作就是停库,一般看来数据库停库不就是shutdown ? 非也,要做到数据库的安全停库,一系列的操作和检查是非常有必要的。下文详细列举了oracle11g RAC的安全停库操作步骤。

第一步: 检查主机状态,查看集群状态

hostname  查看主机,避免误操作。
id       查看当前用户,确保是oracle 或者 grid。 

查看crs集群状态,确保所有的集群资源都在正确的主机上,没有发生任何迁移。
crsctl stat res -t 

第二步: 处理监听,只能停单节点监听

停单节点监听(只能停单节点)
su - grid 

lsnrctl stop

检查该节点的监听是否正常停止。

crsctl stat res -t 

第三步:开始安全停库

安全停库前,建议多开几个CRT窗口,实时监控alert.log日志。以防发生异常,需要做处理

3.1 杀会话,查杀该节点所有的LOCAL=NO的会话

ps -ef|grep LOCAL=NO|awk '{print $2}'|xargs kill -9

3.2 查看是否有大事物回滚,如存在需等待回滚完毕,下面两条语句执行后查询为空就代表当前没有事物需要回滚。

select * from v$FAST_START_TRANSACTIONS where UNDOBLOCKSDONE <> UNDOBLOCKSTOTAL;  

select undoblocksdone,undoblockstotal from v$fast_start_transactions where state<>'RECOVERED';  

3.3 切换日志文件,执行checkpoint,循环多次执行以下两条语句

alter system switch logfile;

alter system checkpoint;

3.4 执行shutdown

 shutdown immediate;

     exit;

查看alert 日志有无异常报错信息

第三步:停集群资源

使用root用户, 执行 crsctl stop crs;

第四步: 检查是否还有oracle的进程

ps -ef  |  grep  d.bin

ps -ef  | grep oracle

ps -ef  |  grep grid

最后,需要确认, alert.log 有无异常报错, crs日志有无异常报错, 如果都没有。至此,方可确认数据库已经安全停止。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle oracle 11g