满意答案
Connectedtoanidleinstance
证明你实例未启动,先:
在cmd中输入netstart|find"Ora"
一般有下面的两行:
OracleOraDb10g_home1TNSListener监听器
OracleServiceORCL数据库服务
如果没有的话,在运行里面输入
services.msc找到相关实例服务,启动之
然后在sqlplus/assysdba;
执行启动startupnomount;
alterdatabasemount;
alterdatabaseopen;
如果上面的三条语句顺利执行,数据库就能打开了,不行的话,查看alert_sid.ora文件中的错误信息。
然后Thelistenersupportsnoservices,这个信息显示,你的监听器还未配置服务,如果要添加服务可以在listener.ora这个文件中输入下面信息:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=test)服务名
(ORACLE_HOME=E:oracleproduct10.2.0db_1)db_home
(SID_NAME=ORCL)##这个是你要添加的服务
)
(SID_DESC=
(PROGRAM=extproc)
(SID_NAME=PLSExtProc)
(ORACLE_HOME=E:oracleproduct10.2.0db_1)##这个服务保证你可以使用外部过程,如C程序
)
)
然后再配置tnsnames.ora文件,加入下面的内容:
ZHANGYU=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=test)与上面的服务名对应
)
)
在连接时你就可以这样测试下:
tnspingzhangyu;
最后几行出现下面类似的文本信息就表明服务配置成功:
UsedTNSNAMESadaptertoresolvethealias
Attemptingtocontact(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=test)))
OK(110msec)
还有监听器的动态注册特征,感兴趣的可以参见一些资料,由于篇幅有限,就介绍这么多。
以上都是自己写的,绝无CTL+c,ctl+v.
监听器的配置跟所用平台无关,主要问题是这两个脚本文件;unix我没用过,不过linux我倒是用过的。
00分享举报