如何检查 Oracle 数据库是否已启动?

Eug*_*ene 17 oracle

对于我们的应用程序,我们有一个用于连接到 Oracle 数据库的配置文件(URL、用户名、密码)。

应用程序需要 2-5 分钟才能启动。如果数据库有问题,我会在日志中看到这一点,但我必须等待 2-5 分钟。这是很多时间。

所以我想快速简单地找出一种方法来确定数据库一切正常并在线。

你知道我该怎么做吗?

小智 21

如果您运行以下查询:

SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE;
Run Code Online (Sandbox Code Playgroud)

它应该返回:

INSTANCE_NAME    STATUS       DATABASE_STATUS
---------------- ------------ -----------------
YOUR_DBASE       OPEN         ACTIVE
Run Code Online (Sandbox Code Playgroud)


ibr*_*041 12

ps -ef | grep pmon

PMON(进程监视器)?进程检查所有其他后台进程。然后您必须检查警报日志以进行进一步调查。


小智 6

第一件事:您需要知道用户名和密码才能连接到第 2 步的数据库

  1. 检查 oracle 进程运行:

    在 Un*x 上:

    ps -ef|grep pmon
    
    Run Code Online (Sandbox Code Playgroud)

    在 Windows 上:

    tasklist|findstr /i oracle
    
    Run Code Online (Sandbox Code Playgroud)

    如果命令在任何情况下都返回输出,即如果 pmon/oracle 进程在您的环境中运行,则数据库正在运行。

  2. 转到ORACLE_HOME/bin并运行:

     ./sqlplus /nolog
    
    Run Code Online (Sandbox Code Playgroud)

    如果登录后出现错误,则数据库不会运行:

    SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 31 21:61:61 2014
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    Enter user-name: oracle
    Enter password: 
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux-x86_64 Error: 2: No such file or directory
    Process ID: 0
    Session ID: 0 Serial number: 0
    
    Run Code Online (Sandbox Code Playgroud)


Mar*_*ian 3

您应该使用/编写一个脚本来连接到服务器并查看您的数据库是否在线。Oracle 人员将在这里提供帮助。只需从批处理/shell 脚本执行它(请参阅从 SQL 命令行运行脚本)并查看它的输出。如果一切顺利,那么你就有了答案。

或者尝试使用 SQL*Plus 客户端。