重启数据库

MySQL 数据库启停脚本
本文介绍了一个用于管理 MySQL 数据库的自定义脚本,包括如何使用 mysqladmin 工具来停止数据库服务以及如何利用 mysqld_safe 命令启动数据库。脚本中详细展示了具体的参数设置和命令用法。

/soft/mysql> ./mysqlimgm  db01 stop

这是自己写的脚本。

 

抽取语句

mysqladmin -u$dba_name -p -S$sockfile shutdown

 

真正的执行语句如下:

mysqladmin -udb_dba -p -S"/etc/mysock/db02.sock" shutdown

启动命令如下:

mysqld_safe --defaults-file='/etc/myconf/db02.cnf' >/dev/null 2>&1 &



<think>我们正在回答用户关于如何重启Oracle数据库的问题。根据引用内容,我们可以整理出重启Oracle数据库的步骤。需要注意的是,重启操作需要以oracle用户执行,并且包括关闭数据库、启动数据库以及重启监听器三个主要步骤。 步骤总结如下: 1. 切换到oracle用户 2. 关闭数据库(使用shutdown immediate命令,如果无法正常关闭则使用shutdown abort) 3. 启动数据库(使用startup命令) 4. 重启监听器(使用lsnrctl stop停止监听,然后lsnrctl start启动监听,但根据引用,有时在关闭数据库后直接启动数据库,然后启动监听器即可。但为了确保,我们可以在启动数据库重启监听器) 注意:在关闭数据库时,如果使用shutdown immediate无法关闭,则使用shutdown abort强制关闭。 具体步骤: 1. 使用oracle用户登录(如果当前是root用户,需要切换): ```bash su - oracle ``` 2. 进入SQL*Plus,以sysdba身份连接数据库: ```bash sqlplus / as sysdba ``` 3. 关闭数据库: ```sql shutdown immediate; ``` 如果上述命令长时间等待或报错,则使用: ```sql shutdown abort; ``` 4. 启动数据库: ```sql startup; ``` 5. 退出SQL*Plus: ```sql quit; ``` 6. 重启监听器(可选,如果监听器需要重启): ```bash lsnrctl stop # 停止监听器(如果之前没有停止,可以跳过停止直接启动,但为了确保状态正确,建议重启) lsnrctl start # 启动监听器 ``` 7. 检查监听器状态(可选): ```bash lsnrctl status ``` 注意:在实际操作中,如果只是重启数据库,监听器通常不需要重启,但有时为了确保连接正常,可以选择重启监听器。另外,在关闭数据库时,使用`shutdown immediate`会等待当前活动的事务完成并断开所有连接,而`shutdown abort`是强制关闭,类似于断电,重启后需要恢复,所以优先使用`shutdown immediate`。 另外,引用[2]中提到连接时可能出现密码过期问题(ORA-28001),如果遇到,需要在重启后修改密码。 引用[3]提到关闭命令需要等待一会,所以执行`shutdown immediate`时请耐心等待。 总结步骤(以命令行为例): ```bash # 切换到oracle用户 su - oracle # 关闭数据库 sqlplus / as sysdba <<EOF shutdown immediate; exit; EOF # 如果关闭失败,使用abort # sqlplus / as sysdba <<EOF # shutdown abort; # exit; # EOF # 启动数据库 sqlplus / as sysdba <<EOF startup; exit; EOF # 重启监听器(可选) lsnrctl stop lsnrctl start # 检查监听器状态 lsnrctl status ``` 注意:在实际操作中,请根据数据库的实际情况执行。如果数据库关闭成功,则不需要执行abort。 以上步骤即为重启Oracle数据库的标准步骤。</think>### 如何重启Oracle数据库(Linux环境) #### **完整重启步骤**: 1. **切换到oracle用户** ```bash su - oracle ``` 2. **以sysdba身份连接数据库** ```bash sqlplus / as sysdba ``` 3. **关闭数据库**(优先使用正常关闭) ```sql shutdown immediate; -- 等待事务完成 ``` > 若报错无法关闭,则强制关闭: ```sql shutdown abort; -- 强制终止会话[^1] ``` 4. **启动数据库** ```sql startup; -- 启动实例并打开数据库 ``` 5. **退出SQL*Plus** ```sql quit; ``` 6. **重启监听器**(确保客户端可连接) ```bash lsnrctl stop -- 停止监听 lsnrctl start -- 启动监听[^3] ``` 7. **验证状态** ```bash lsnrctl status -- 检查监听状态 sqlplus / as sysdba SELECT status FROM v$instance; -- 应显示"OPEN" ``` --- #### **关键注意事项**: 1. **权限要求**:必须使用 `oracle` 用户操作,root用户会找不到命令[^1] 2. **关闭顺序**: - 优先 `shutdown immediate`(安全关闭) - 异常时用 `shutdown abort`(强制关闭)[^1] 3. **密码问题**:若遇到 `ORA-28001` 密码过期错误,需先修改密码[^2] ```sql ALTER USER sys IDENTIFIED BY <新密码>; ``` 4. **监听分离**:监听器独立于数据库实例,需单独启停[^3] --- #### **常见问题解决**: | 问题现象 | 解决方案 | |--------------------------|----------------------------------| | `shutdown immediate` 卡住 | 使用 `shutdown abort` 强制关闭 | | 启动时报密码过期 | 用 `ALTER USER` 修改sys密码[^2] | | 监听启动失败 | 检查 `listener.ora` 配置 | | 无法连接数据库 | 确认监听状态:`lsnrctl status`[^3] | > 完整流程耗时约 1-5 分钟,大型数据库可能更久。生产环境建议在维护窗口操作。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值