oracle关库卡住,你还在傻傻的等待吗?
oracle关库卡住,你还在傻傻的等待吗?
作者简介:王旭,在数据库管理方面拥有10多年经验。精通主流数据库系统,在企业数据库管理、性能优化、架构设计和高可用性能解决方案方面拥有丰富得实践经验。目前拥有(ORACLE ACE、MYSQL OCP、PG ACE、PGCA、PGCE、PGCM)等数据库认证。
环境
db:oracle 11g-19c
os:windows
执行了shutdown immediate过了很久都没关掉库?
这个现象只要是运维dba的都应该是遇到过,有些人比较佛系,慢慢等释放,而有些人等不及另外开窗口执行shutdown abort操作,最后启动可能又起不来;
我们来看下现象,这是我7月9日运维的环境,在关库后等了3分钟发现关不掉库,一直卡住...
经验充足的dba马上应该能想到看alert等日志分析,于是我看了alert日志发现没有进程阻止,就是卡住了。
然后我按照时间排序了最新产生的进程日志文件,打开分析,发现此库有大量的会话等待释放,一直释放不出来...
经验充足的dba马上就应该能想到,怎么帮助oracle快速释放这些会话呢?此时就要用到oracle的orakill工具,通过操作系统方式查杀;这就需要将这些日志复制到linux,通过生成出指定的查杀命令,再拷贝到windows cmd执行;
通过处理数据库马上就停了下来...
执行shutdown immediate 之前我们能不能尽可能避免这种情况呢?
这就需要正确的关库动作,而不是一上来就shutdown immediate; 正确的步骤应该是
设置白名单或者锁定用户
停监听
杀会话
切日志
触发检查点
刷脏
关库
总结
灵活掌握oracle工具的使用能够让我们运维oracle更加轻松。