oracle实例没有连到监听上6,Oracle10多个实例在没有监听的情况下登录研究测试。...

Oracle10g数据库windows环境下有多个实例时,在没有监听的情况下,如何在本机登录研究测试。

1.运行环境:

操作系统:windows xp sp3

Oracle数据库版本:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0

硬件:笔记本电脑

2.在电脑中,我已经安装了2个实例,snapall和jacky。

其中实例snapall下有建了用户snapall,密码snapall;其它用户的密码都是snapall

实例jacky下建了用户jacky,密码jacky;其它用户的密码都是you12323

3.下面有三种连接用到的命令形式1.sqlplus / as sysdba这是典型的操作系统认证,不需要listener进程2.sqlplus sys/oracle这种连接方式只能连接本机数据库,同样不需要listener进程3.sqlplus这种方式需要listener进程处于可用状态。最普遍的通过网络连接

4.首先两个实例都是运行着的。有如下截图。

然后我进行了如下操作:

4.1我用第3种连接方法来测试一下,看是否属实。

我会先用命令来想网友验证一下监听的状态。

C:/Documents and Settings/jacky>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-3月-2011 13:

2:37

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

正在连接到(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12541: TNS:无监听程序

TNS-12560: TNS:协议适配器错误

TNS-00511:无监听程序

32-bit Windows Error: 61: Unknown error

C:/Documents and Settings/jacky>sqlplus/nolog

SQL*Plus: Release 10.2.0.1.0 - Production on星期五3月18 13:22:45 2011

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

SQL> conn sys/you12323@jacky as sysdba;

ERROR:

ORA-12541: TNS:无监听程序

SQL> conn sys/snapall@snapall as sysdba;

ERROR:

ORA-12541: TNS:无监听程序

结果测试下来真的无法连接。因为没有监听。

4.2接下来我用第1种方法来测试一下,但是我们有个疑问,如果用这种方法,到底是连接到哪个实例了?我们来实际测试一下:

C:/Documents and Settings/jacky>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-3月-2011 13:2

6:44

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

正在连接到(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12541: TNS:无监听程序

TNS-12560: TNS:协议适配器错误

TNS-00511:无监听程序

32-bit Windows Error: 61: Unknown error

C:/Documents and Settings/jacky>sqlplus/nolog

SQL*Plus: Release 10.2.0.1.0 - Production on星期五3月18 13:26:49 2011

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

SQL> conn / as sysdba;

已连接。

SQL> show user;

USER为"SYS"

SQL> select name from v$database;

NAME

---------

JACKY

SQL>

现在我们发现,用这个方式可以登录到数据库,但是产生一个新的问题,为什么连接的是jacky,而不是snapall,在这里我补充个情况,因为我是先安装的实例snapall,然后安装的实例jacky,当然这个到底是什么原因就需要去推敲了。

4.3接下来我们用第2种连接方法来测试一下:

C:/Documents and Settings/jacky>lsnrctl status

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-3月-2011 13:

4:20

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

正在连接到(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

TNS-12541: TNS:无监听程序

TNS-12560: TNS:协议适配器错误

TNS-00511:无监听程序

32-bit Windows Error: 61: Unknown error

C:/Documents and Settings/jacky>sqlplus/nolog

SQL*Plus: Release 10.2.0.1.0 - Production on星期五3月18 13:34:24 2011

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

SQL> conn system/snapall;

ERROR:

ORA-01017: invalid username/password; logon denied

SQL> conn system/you12323;

已连接。

SQL> show user;

USER为"SYSTEM"

SQL> select name from v$database;

NAME

---------

JACKY

SQL> conn jacky/jacky;

已连接。

SQL> show user;

USER为"JACKY"

SQL> select name from v$database;

NAME

---------

JACKY

SQL> conn snapall/snapall;

ERROR:

ORA-01017: invalid username/password; logon denied

警告:您不再连接到ORACLE。

SQL>

通过以上命令,发现此时我们用这些命令连接的还是默认的jacky实例。至于为什么无法连接到snapall实例需要来查原因了。

5.也许你们看了上面的会怀疑我是否做了什么其它操作,或者说怀疑数据库实例根本没有运行。所以我下面要启动并配置监听看是否可以连接到数据库实例。

5.1现在我先贴出listenter.ora的内容

# listener.ora Network Configuration File: E:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora

# Generated by Oracle configuration tools.

LISTENER1 =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = bk-fda996f2e2e9)(PORT = 1522))

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = snapall)

(ORACLE_HOME = E:/oracle/product/10.2.0/db_1)

(SID_NAME = snapall)

)

)

SID_LIST_LISTENER1 =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = jacky)

(ORACLE_HOME = E:/oracle/product/10.2.0/db_1)

(SID_NAME = jacky)

)

)

LISTENER =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = bk-fda996f2e2e9)(PORT = 1521))

)

5.2以下是tnsnames.ora的内容

# tnsnames.ora Network Configuration File: E:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/tnsnames.ora

# Generated by Oracle configuration tools.

SNAPALL =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = bk-fda996f2e2e9)(PORT = 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = snapall)

)

)

JACKY =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = bk-fda996f2e2e9)(PORT = 1522))

)

(CONNECT_DATA =

(SERVICE_NAME = jacky)

)

)

5.3现在我用命令来开始两个监听服务,一个是对数据库实例snapall的监听,另外一个是对实例jacky的监听。端口号也不一样。

C:/Documents and Settings/jacky>lsnrctl start listener

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-3月-2011 13:5

5:53

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

启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production

系统参数文件为E:/oracle/product/10.2.0/db_1/network/admin/listener.ora

写入E:/oracle/product/10.2.0/db_1/network/log/listener.log的日志信息

监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bk-fda996f2e2e9)(PORT=1521)))

正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=bk-fda996f2e2e9)(PORT=1521)

))

LISTENER的STATUS

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

别名listener

版本TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ

ction

启动日期18-3月-2011 13:55:54

正常运行时间0天0小时0分1秒

跟踪级别off

安全性ON: Local OS Authentication

SNMPOFF

监听程序参数文件E:/oracle/product/10.2.0/db_1/network/admin/listener.o

ra

监听程序日志文件E:/oracle/product/10.2.0/db_1/network/log/listener.log

监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bk-fda996f2e2e9)(PORT=1521)))

服务摘要..

服务"snapall"包含1个例程。

例程"snapall",状态UNKNOWN,包含此服务的1个处理程序...

命令执行成功

C:/Documents and Settings/jacky>lsnrctl start listener1

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 18-3月-2011 13:5

5:59

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

启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production

系统参数文件为E:/oracle/product/10.2.0/db_1/network/admin/listener.ora

写入E:/oracle/product/10.2.0/db_1/network/log/listener1.log的日志信息

监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bk-fda996f2e2e9)(PORT=1522)))

正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=bk-fda996f2e2e9)(PORT=1522)

))

LISTENER的STATUS

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

别名listener1

版本TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ

ction

启动日期18-3月-2011 13:56:00

正常运行时间0天0小时0分1秒

跟踪级别off

安全性ON: Local OS Authentication

SNMPOFF

监听程序参数文件E:/oracle/product/10.2.0/db_1/network/admin/listener.o

ra

监听程序日志文件E:/oracle/product/10.2.0/db_1/network/log/listener1.lo

g

监听端点概要...

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bk-fda996f2e2e9)(PORT=1522)))

服务摘要..

服务"jacky"包含1个例程。

例程"jacky",状态UNKNOWN,包含此服务的1个处理程序...

命令执行成功

C:/Documents and Settings/jacky>

5.4现在我再用命令来登录到数据库,看是否可以登录,特别是数据库实例snapall。

C:/Documents and Settings/jacky>sqlplus/nolog

SQL*Plus: Release 10.2.0.1.0 - Production on星期五3月18 13:58:54 2011

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

SQL> conn sys/snapall@snapall as sysdba;

已连接。

SQL> select name from v$database;

NAME

---------

SNAPALL

SQL> conn system/snapall@snapall;

已连接。

SQL> select name from v$database;

NAME

---------

SNAPALL

SQL> conn snapall/snapall@snapall as sysdba;

已连接。

SQL> select name from v$database;

NAME

---------

SNAPALL

SQL> conn sys/you12323@jacky as sysdba;

已连接。

SQL> select name from v$database;

NAME

---------

JACKY

SQL> conn system/you12323@jacky;

已连接。

SQL> select name from v$database;

NAME

---------

JACKY

SQL> conn jacky/jacky@jacky;

已连接。

SQL> select name from v$database;

NAME

---------

JACKY

SQL>

6.总结

从上面的情况来看,其实数据库实例snapall和jacky都是运行的,而且可以连接的。但是如果都要可以从数据库服务器本机连接,应该要通过设置监听才可以。否则只能连接到系统默认的一个实例中去。当然还有一种办法,就是关闭掉其它实例,只剩下一个实例,当然如果只是剩下一个实例,就没有必要去讨论目前的这个问题了。呵呵

如果有高手知道怎么在windows系统数据库服务器中不设置监听,又可以连接多个实例。可以将知识与大家共享,谢谢!

--首先跟大家说句对不起,小弟由于知识有限,这篇文章有限误导大家。刚刚发现在windows环境下,如果安装多个实例的话

如果没有监听,可以设置oracle_sid环境变量,这样就可以连接各个实例了,但是同时只能连接一个。

在命令行下面输入:set oracle_sid

如果环境变量没有设置,可以set oracle_sid=实例名,

这样你那个实例就可以连接了。呵呵,大家去试试吧!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值