oracle基础知识-安全关闭集群和数据库

数据库 (28) 2024-02-21 11:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说oracle基础知识-安全关闭集群和数据库,希望能够帮助你!!!。

作为一名数据库管理员,难免有一些机器的停机检修,主机网络资源的调整,最基本的一个动作就是停库,一般看来数据库停库不就是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日志有无异常报错, 如果都没有。至此,方可确认数据库已经安全停止。

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复