其实这是一个不难的问题,由于有同事问到这个问题,我就把这个问题的方法写下来好了,必竟有一个人来问,说不定还有第二个人不会,希望对还不会的或是刚入行的朋友有所帮助吧。
linux/unix平台如何查看OS上存在多少个数据库,查询方法主要有三种,下面分别进行介绍
1、 通过lsnrctl status命令查看
通过该方法,可以查看已经注册到listener中的数据库实例,在一定程度可以说明OS上存在有命令结果中所列出来的数据库实例,当然未启动的和未注册进来的除外
命令:#su – Oracle
$lsnrctl status
[oracle@oraclelinux ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 04-AUG-2013 06:03:29
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.171.100)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 04-AUG-2013 05:57:12
Uptime 0 days 0 hr. 6 min. 17 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /dba/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File /dba/oracle/diag/tnslsnr/oraclelinux/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.171.100)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "litest" has 1 instance(s).
Instance "litest", status READY, has 1 handler(s) for this service...
Service "litestXDB" has 1 instance(s).
Instance "litest", status READY, has 1 handler(s) for this service...
The command completed successfully
从上面表格结果集中,可以看到有一个 “litest”的数据库实例注册到了listener中来了,说明该OS上最少有一个名叫litest的数据库实例存在
2、通过cat /etc/oratab方式查看
创建数据库或实例时,会在/etc/oratab文件中增加一行记录,哪怕是数据库实例没有启动,用此方法也可以查看得到。如下所示:
命令:#cat /etc/oratab
[root@oraclelinux ~]# cat /etc/oratab
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.
# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME::
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
# Multiple entries with the same $ORACLE_SID are not allowed.
#
litest:/dba/oracle/product/11.2.0/db_1:N
从上面表格中最后一行结果中,可以看出该OS上存在有一个叫litest的数据库(包括实例)
3、通过ps –ef |grep ora_pmon方式查看
如果数据库或实例已经启动至nomount模式,就会产生pmon进程,所以我们可以通过查看OS是否存在pmon进程的方式来查看有几个数据库实例存在,每一个实例都会有一个pmon进程,如果查到存在有多个pmon进程,就意味着OS上存在着多个数据库实例
命令:# ps -ef |grep pmon
[root@oraclelinux ~]# ps -ef |grep pmon
oracle 3491 1 0 06:10 ? 00:00:00 ora_pmon_litest
root 3528 3459 0 06:11 pts/1 00:00:00 grep pmon
从上面表格中的结果中可以看到,OS上运行着一个名叫“litest”的数据库实例