快速关闭数据库
time:2008/05/15
author: skate
有时在实际中需要重新启动生产数据库,但生产数据库的数据量都很大,有时候关机要长达几个小时,
这样对业务有很的影响,让人等的很揪心阿,为此我们就想快速关机,下面总结下快速关机的方法。
1. 停掉应用层的各种程序,防止对数据库产生更多的连接。
2. 停掉oracle监听器,彻底切短外界与生产库的新增连接
$ lsnrctl stop
3. 在独占的系统的用户下,备份控制文件
$ sqlplus / as sysdba
sql> alter database backup controlfile to '/home/oracle/controlfile.ora';
4. 在独占系统的运行下,手工切换重做日志文件,确保当前已经修改过的数据已经存入文件
sql> alter system switch logfile;
5. 在独占的系统中,生成杀数据库连接的脚本文件:
sql > set head off;
sql > set feedback off;
sql > set newpage none;
sql > spool ./kill_session.sql
sql > select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username is not null
sql > spool off;
6.执行杀数据库连接的脚本
sql > @./kill_session.sql
7.准备工作已经做完了,现在可以关闭数据库了
sql > shutdown immediate;
等待数据库的关闭,这个过程应该很快,下面的操作就是启动数据库了
8. 启动监听程序
$ lsnrctl start
9. 启动数据库
$ sqlplus / as sysdba
sql> startup
10.启动应用程序
---- end -----