oracle运维——数据库的正常关闭、紧急关闭和强制关闭

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: 数据库运维