1、正常关闭
# 登录Oracle用户,执行
su - oracle
lsnrctl stop
sqlplus / as sysdba
# 正常关闭(等待所有会话结束,清理资源)
SQL> shutdown normal;
# 若等待过久,用立即关闭(强制断开会话,清理资源)
SQL> shutdown immediate;
2、紧急关闭
shutdown abort 是 Oracle 官方认可的「紧急关闭」方式:
- 会立即终止所有进程(包括 dbw0、lgwr、ckpt 等),但会记录崩溃标记;
- 重启实例时,Oracle 会自动执行实例恢复,修复数据不一致,数据风险远低于 kill -9。
# 登录SQL*Plus
SQL> shutdown abort;
3、强制关闭
# 使用 Oracle 官方工具强制终止实例(Linux)
su - oracle
orakill <实例名> <dbw0进程PID>
# 示例:orakill orcl 1234
or
#进行批量杀会话,这样就可以快速关闭数据库了
ps aux |grep "LOCAL=NO" |awk '{printf "%s\n", $2}' |xargs kill -9
Categories:
数据库运维