查看oracle是否启动

如何查看Oracle是否启动?

Oracle数据库系统是业界知名的关系型数据库管理系统。它具有高性能、高可靠、高安全等特点。在生产环境中,Oracle数据库是企业级应用的重要组成部分,因此,必须确认Oracle数据库是否启动。下面,我们将详细介绍如何检查Oracle是否启动。

1.使用SQL*Plus工具检查Oracle启动状态

Oracle提供了一个命令行工具SQL*Plus,可以使用它来检查Oracle启动状态。该工具在Oracle的客户端安装包中,可以在命令行中输入以下命令来启动SQL*Plus:

sqlplus / as sysdba

这条命令中,/ 表示以本机认证方式连接数据库,as sysdba 表示以 SYS 连接,以 SYSDBA 角色登录。当然,如果你知道其他用户的用户名和密码,也可以使用其他用户来登录。

如果Oracle已启动,将会出现以下提示:

SQL*Plus: Release 11.2.0.2.0 Production on Wed May 12 14:58:17 2021

Copyright (c) 1982, 2010, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

如果Oracle未启动,将会出现以下提示:

SQL*Plus: Release 11.2.0.2.0 Production on Wed May 12 14:59:09 2021

Copyright (c) 1982, 2010, Oracle. All rights reserved.

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

在提示符下,可以执行各种SQL命令,并查看Oracle数据库的状态。例如,可以查询Oracle实例的状态:

SELECT instance_name, status, database_status FROM v$instance;

执行以上语句,如果Oracle已启动,将会输出类似以下结果:

INSTANCE_NAME STATUS DATABASE_STATUS

---------------- ------------ -----------------

orcl OPEN ACTIVE

其中,INSTANCE_NAME 表示实例名,STATUS 表示实例状态,DATABASE_STATUS 表示数据库状态。

如果Oracle未启动,则会出现以下提示:

SQL> SELECT instance_name, status, database_status FROM v$instance;

SELECT instance_name, status, database_status FROM v$instance

*

ERROR at line 1:

ORA-01034: ORACLE not available

Process ID: 0

Session ID: 0 Serial number: 0

2.查看Oracle后台进程

Oracle在启动时,会启动多个进程。这些进程可以通过操作系统的进程管理器进行查看。例如,在Linux系统下,可以使用 ps 命令查看Oracle进程:

ps -ef | grep ora_

如果Oracle已启动,将会输出一组以 ora_ 开头的进程:

oracle 2652 1 0 16:07 ? 00:00:32 ora_dbw0_orcl

oracle 2654 1 0 16:07 ? 00:00:00 ora_psp0_orcl

oracle 2656 1 0 16:07 ? 00:00:03 ora_lgwr_orcl

oracle 2658 1 0 16:07 ? 00:00:49 ora_ckpt_orcl

oracle 2660 1 0 16:07 ? 00:00:00 ora_smon_orcl

oracle 2662 1 0 16:07 ? 00:00:00 ora_reco_orcl

oracle 2664 1 0 16:07 ? 00:00:02 ora_mmon_orcl

oracle 2666 1 0 16:07 ? 00:00:00 ora_mmnl_orcl

oracle 2668 1 0 16:07 ? 00:00:00 ora_d000_orcl

oracle 2670 1 0 16:07 ? 00:00:00 ora_s000_orcl

oracle 2672 1 0 16:07 ? 00:00:00 ora_s001_orcl

oracle 2674 1 0 16:07 ? 00:00:00 ora_s002_orcl

oracle 2676 1 0 16:07 ? 00:00:00 ora_s003_orcl

oracle 2678 1 0 16:07 ? 00:00:00 ora_s004_orcl

oracle 2680 1 0 16:07 ? 00:00:00 ora_s005_orcl

oracle 2682 1 0 16:07 ? 00:00:00 ora_qmnc_orcl

oracle 2684 1 0 16:07 ? 00:00:01 ora_cjq0_orcl

oracle 2686 1 0 16:07 ? 00:00:00 ora_dbrm_orcl

oracle 2688 1 0 16:07 ? 00:00:00 ora_p000_orcl

oracle 2690 1 0 16:07 ? 00:00:00 ora_p001_orcl

oracle 2692 1 0 16:07 ? 00:00:00 ora_p002_orcl

oracle 2694 1 0 16:07 ? 00:00:00 ora_p003_orcl

oracle 2696 1 0 16:07 ? 00:00:00 ora_p004_orcl

oracle 2698 1 0 16:07 ? 00:00:00 ora_p005_orcl

oracle 2700 1 0 16:07 ? 00:00:00 ora_p006_orcl

oracle 2702 1 0 16:07 ? 00:00:00 ora_p007_orcl

oracle 2704 1 0 16:07 ? 00:00:00 ora_p008_orcl

oracle 2706 1 0 16:07 ? 00:00:00 ora_p009_orcl

oracle 2708 1 0 16:07 ? 00:00:00 ora_p010_orcl

oracle 2710 1 0 16:07 ? 00:00:00 ora_p011_orcl

oracle 2712 1 0 16:07 ? 00:00:00 ora_p012_orcl

oracle 2714 1 0 16:07 ? 00:00:00 ora_p013_orcl

oracle 2716 1 0 16:07 ? 00:00:00 ora_p014_orcl

oracle 2718 1 0 16:07 ? 00:00:00 ora_p015_orcl

oracle 2720 1 0 16:07 ? 00:00:00 ora_p016_orcl

oracle 2722 1 0 16:07 ? 00:00:00 ora_p017_orcl

oracle 2724 1 0 16:07 ? 00:00:00 ora_p018_orcl

oracle 2726 1 0 16:07 ? 00:00:00 ora_p019_orcl

oracle 2728 1 0 16:07 ? 00:00:00 ora_p020_orcl

oracle 2730 1 0 16:07 ? 00:00:00 ora_p021_orcl

oracle 2732 1 0 16:07 ? 00:00:00 ora_p022_orcl

oracle 2734 1 0 16:07 ? 00:00:00 ora_p023_orcl

oracle 2736 1 0 16:07 ? 00:00:00 ora_p024_orcl

oracle 2738 1 0 16:07 ? 00:00:00 ora_p025_orcl

oracle 2740 1 0 16:07 ? 00:00:00 ora_p026_orcl

oracle 2742 1 0 16:07 ? 00:00:00 ora_p027_orcl

oracle 2744 1 0 16:07 ? 00:00:00 ora_p028_orcl

oracle 2746 1 0 16:07 ? 00:00:00 ora_p029_orcl

如果Oracle未启动,则不会输出任何进程。

3.查看Oracle监听器状态

Oracle监听器是一个网络服务,用于管理Oracle客户端和服务器之间的通信。在Oracle未启动时,监听器服务将无法启动。因此,我们可以通过检查监听器状态来了解Oracle是否已启动。可以使用 lsnrctl 工具来管理监听器。以下是一个检查监听器状态的例子:

lsnrctl status

如果Oracle已启动,将会输出以下信息:

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 12-MAY-2021 14:05:29

Copyright (c) 1991, 2010, Oracle. All rights reserved.

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production

Start Date 12-MAY-2021 13:49:37

Uptime 0 days 0 hr. 15 min. 52 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File /u01/app/oracle/diag/tnslsnr/db11g/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

Services Summary...

Service "orcl" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

Service "orclXDB" has 1 instance(s).

Instance "orcl", status READY, has 1 handler(s) for this service...

The command completed successfully

如果Oracle未启动,则会提示无法连接到监听器:

LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 12-MAY-2021 14:22:01

Copyright (c) 1991, 2010, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

TNS-12541: TNS:no listener

TNS-12560: TNS:protocol adapter error

TNS-00511: No listener

Linux Error: 111: Connection refused

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))

TNS-12541: TNS:no listener

TNS-12560: TNS:protocol adapter error

TNS-00511: No listener

Linux Error: 111: Connection refused

总结

通过以上介绍,我们可以了解如何检查Oracle是否启动。可以使用SQL*Plus工具、查看Oracle后台进程、查看Oracle监听器状态等方法来验证Oracle的状态。在实际使用中,我们需要及时检查Oracle的状态,以确保其可以正常工作。

数据库标签