这是我参与8月更文挑战的第21天,活动详情查看:8月更文挑战
本文介绍oracle数据库单机环境下,数据文件存储采用非asm形式情况下的安全完整的关库步骤。
第一步:先停止应用程序服务(器)(weblogic 、websphere、Jboss、IIS、东方通等),保证没有业务可以通过应用程序再连接进来。
第二步:停止oracle监听器。
lsnrctl stop
第三步:通过sqlplus工具连接数据库,执行命令切换归档日志:
alter system switch logfile;
第四步:多次执行检查点操作:
alter system checkpoint;
第五步:考虑杀掉所有“LOCAL=NO”服务器进程以及其他“LOCAL=YES”前台进程。可以通过下命令杀掉“LOCAL=NO”服务器进程
ps -ef | grep "LOCAL=NO"|grep -v grep | awk '{print "kill -9 " $2}'|sh
通常来说不应该再有LOCAL=NO的进程,如果还有,则有这么几种可能:
1.还有未关闭的应用程序,找到并将其关闭。
2.有一些开发工具连接数据库,这种不走应用,例如通过plsql dev连接的。
3.应用程序是c/s的,有客户端程序没有退出。
4.有监控程序,我们也将他归类到应用程序中。
在确定这些进程的来源后,也可以将其kill中止掉。
第六步:执行shutdown immediate来干净的关库。至此一次停机操作完毕。
此外:有这么一种可能,即使杀掉了所有的应用进程,数据库还是无法关闭,我们可能会在数据库日志中看到如下日志信息:
Shutting down instance (immediate)
License high water mark = 6
Tue Jan 29 08:30:44 2013
ALTER DATABASE CLOSE NORMAL
Tue Jan 29 08:30:45 2013
SMON: disabling tx recovery
SMON: disabling cache recovery
这些信息显示smon进程已经结束了事务层面的回退操作,关闭了cache层面的恢复,也就是说smon进程开始进行临时段的回收工作。此时如果是系统中有大量需要回收的临时段,那么这个操作可能会持续很长时间。此时,使用shutdown abort关库也是相对安全的。