怎么知道一台服务器有多少实例

[复制链接]
查看11 | 回复9 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
在unix服务器上,如果装了很多个oracle实例,那么我怎么才能确定到底是已安装哪些实例呢?
假设,不知道这些实例有没有startup。最好不要通过察看listener文件等方法,因未我希望能通过运行脚本,自动得出结果,知道到底安装了哪些实例。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
if instances != startup {
$ cat /etc/oratab//open your oratab file, an easiest way
}
else //instance == startup {
$ ps -ef | grep pmon | wc -l
}
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 tt_tan 发布
[B]在unix服务器上,如果装了很多个oracle实例,那么我怎么才能确定到底是已安装哪些实例呢?
假设,不知道这些实例有没有startup。最好不要通过察看listener文件等方法,因未我希望能通过运行脚本,自动得出结果,知道到底安装了哪些实例。 [/B]

UNIX上的实例,只要有相应的文件就可以启动,并不一定要早/etc/oratab文件中进行注册。而且,这些文件可以存放在任何位置。在通常情况下,pfile和spfile存放在$ORACLE_HOME/dbs目录下,但也可以存放在其他位置。
因此,如果一个实例既没有启动,也没有在/etc/oratab中注册,是很难找到的。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
看看有几个smon 进程就可以了
ps -edf|grep smon
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
楼上的方法可行:
ps aux|grep smon
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
如果不启动的话,很难查到的。
除了楼上所说的oratab文件那里有注册的。
如果启动了,就简单了,查查看进程就可以了。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
实例就是 SGA+Backgroud process!!(一块内存区和一些后台进程)
因此,如果实力没有启动,那么根本就没有这个实例,更无从谈起如何查找的问题
如果实例启动了,那么类似ps -ef|grep smon的方法都是可以的。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
呵呵,没注意楼主说的没启动的情况
除非扫描整个磁盘,看有哪些文件,然后分析一下是不是一个新的实例,呵呵
基本上可行性不大。
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
ps -ef|grep pmon
不知道楼主的要求有什么实际用途?
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
最初由 aoruaicou1 发布
[B]if instances != startup {
$ cat /etc/oratab//open your oratab file, an easiest way
}
else //instance == startup {
$ ps -ef | grep pmon | wc -l
} [/B]

“ps -ef | grep pmon | wc -l”要减1吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行