前期准备:
示例的linux版本为:linux 9
宿主机重启后,如果之前挂载的oracle home路径及环境变量未生效,需要先重新设置:
export ORACLE_SID=FREE
export ORAENV_ASK=NO
. /opt/oracle/product/23ai/dbhomeFree/bin/oraenv
前往home路径下的bin文件夹下进行操作:
cd $ORACLE_HOME/bin
————
- 步骤一:检查监听器状态
注意: 如果你登录Linux时用的时root的账户,需要先执行命令切换到oracle账号:
su oracle
检查Oracle监听器是否正在运行:
lsnrctl status
如果监听器没有运行,启动它:
lsnrctl start
- 步骤二:确认数据库状态
首先,以sysdba身份登录SQL*Plus来检查数据库的状态:
登录Oracle:
./sqlplus / as sysdba
在SQL*Plus中执行以下命令:
SELECT status FROM v$instance;
返回报错:
ERROR at line 1:
ORA-01034: The Oracle instance is not available for use. Start the instance.
Process ID: 0
Session ID: 0 Serial number: 0
Help: https://docs.oracle.com/error-help/db/ora-01034/
- 步骤三:尝试正常启动数据库
如果数据库是关闭的,尝试正常启动它:
STARTUP;
数据库启动log
SQL> STARTUP
ORACLE instance started.
Total System Global Area 1603726344 bytes
Fixed Size 5360648 bytes
Variable Size 989855744 bytes
Database Buffers 603979776 bytes
Redo Buffers 4530176 bytes
Database mounted.
Database opened.
如果数据库挂载了但未打开,执行:
ALTER DATABASE OPEN;
-
步骤 4: 检查数据库和监听器配置
确保listener.ora和tnsnames.ora文件配置正确,并且与数据库实例名和服务名匹配。 -
步骤 5: 检查系统资源
检查系统资源(如内存、CPU、磁盘空间)是否充足,以支持数据库的运行。 -
步骤 6: 查看日志文件
检查数据库和监听器的日志文件,以确定关闭的原因和任何错误消息:
数据库日志文件通常位于$ORACLE_HOME/diag/rdbms/
监听器日志文件通常位于$ORACLE_HOME/network/log/目录下。
- 步骤 7: 数据库恢复
如果数据库在关闭时处于不一致状态,可能需要进行介质恢复:
STARTUP MOUNT;
ALTER DATABASE RECOVER;
ALTER DATABASE OPEN;
如果需要重置日志(通常在备份后恢复到某个时间点时使用),则使用:
ALTER DATABASE OPEN RESETLOGS;
- 步骤 8: 重启相关服务
如果数据库是作为集群的一部分运行的,可能需要重启集群服务:
crsctl start crs
标签:步骤,虚拟机,宿主机,DB,bytes,oracle,监听器,Oracle,数据库
From: https://www.cnblogs.com/rinya09/p/18386879