oracle创建数据库后的疑问~

用oracle创建数据库后的发现还是有很多小细节没清楚,希望各位大神帮忙解答一下!
本人安装的是oracle 11g,安装完会创建了一个叫orcl的数据库,这个orcl也就是我们的数据库实例名称,之后我又创建一个数据库,想用来存放另外一些数据!我是直接用oracle自带的Database Configuration Assistant 创建数据库,在创建完成之际,弹出了以下的框

Enterprise Manager配置失败。。。。巴拉巴拉一堆文字,大概说没有注册监听程序
之后,我去看了下系统的服务,多了一些服务!
假设我新创建的数据库实例名为'hao123'

Oracle hao123 VSS Writer Service
OracleJobSchedulerHAO123
OracleServiceHAO123

其中OracleServiceHAO123已经启动了,当然orcl的相关服务也在启动状态,因为我看见安装完oracle,默认启动服务里面有个OracleOraDb11g_homeTNSListener的服务,所以我觉得新创建的数据库是不是也要配置这样一个Listener呢?是不是没有对应的Listener就不能进入数据库呢?
带着疑问,我打开sqlplus,输入sys as sysdba登录数据库,用select name from v$database;查看当前登录的是什么数据库,打印出来是HAO123,咦~~我不是没配置它的Listener么?怎么能登录呢?之后我又试了sys@orcl as sysdba方式登陆,也能进入orcl~~~

问题:
1、是不是新创建的数据库是不是一定要配置Listener的?如果不配置,是不是都共用OracleOraDb11g_homeTNSListener这个Listener?因为上面的情况,我觉得是共用Listener,那是不是单独配置Listener比共用好呢?或者说两者有什么分别?

2、新创建的数据库是不是一定会在系统服务里面产生对应的服务?要能使用对应的数据库,是不是只要保证OracleServiceXXXX 这个服务启动就行?

3、为什么我连接数据库不加@数据库名,就会自动登录HAO123数据库呢?是不是共用同一个Listener以最后一个创建的数据库实例为默认登录数据库呢?还是可以设置什么的?

希望各位回答的时候,注明问题题号,另可能我说的某些专业名词可能有误,或者词不达意,也希望各位指正一下~~~小弟不胜感激

    listener 这个监听,只需要配置一个应该就可以了,一个IP地址一般对应一个,是可以公用的,监听只是接受客户端的请求,然后就给请求转发给oracle的服务进程了。就类似于一个桥梁,给连接起来了,要多了也没有用。

    会在系统服务里面产生一个相对应的服务,OracleServicexxx这个服务启动,在启动一个listener 就可以了.其他的服务都不需要。OracleServicexxx这个服务消耗资源很大,自己的电脑如果默认开机启动,开机时间妥妥2分钟以上。还是用到数据库的时候,手动启动的好。

    如果连接数据库的时候不加@这个,只能连接自己机器本地的数据库,相当于更本没有走listener,你给listener服务关掉,不加@应该也是可以登陆上的。但是如果你只有一个客户端想连接服务器上的,是不行的。

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

    上面这些也都是我个人的理解,仅仅是参考一下吧。

追问

嗯,我有点理解了!~~现在假设我安装数据库的机子是192.168.1.123,另一台机子要连这个数据库,该怎么连?我在192.168.1.123用localhost:1521能连上,但在另一台机子用192.168.1.123:1521就连不上,是不是在192.168.1.123机子上面还要设置什么才能对外开放数据访问?

追答

要给listener 和OracleServicexxx这2个服务启动了,然后在你另一台机器上要配置192.168.1.123 的属性,
SHAO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.160)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = so)
)
)
就是这个了,配置好以后,就可以去cmd命令下 sqlplus试一试,或者使用工具pl/sql developer 就可以链接上了

追问

你说的在另一台机器配置,是要装oralce的某个软件,再在对应文件夹的文件配置么?

追答

192.168.1.123 这个是你的服务器,192.168.1.124 假设是客户端,那你要在服务器开启服务,在124客户端安装一个oracle 客户端,下面会有一个tnsname.ora的文件,在这个文件里面 配置上服务器就是123那个机器的参数,就是上面发的那个,然后就可以在 124这个客户端,去访问123这个服务器的数据库了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-15

我来回答你的问题吧,问题太多了,看来这位童鞋是在思考问题的:

 

    新创建的数据库是一定要有监听到的,而且一个数据库实例可以有多个监听,一般地,新建的数据库会自加入到原来的监听中去。单独配置不一定比共用好,这个要看体的应用了。

     

    新创建的数据库一定会在系统服务里面产生对应的服务。要能使用对应的数据库,只要保证OracleServiceXXXX 这个服务启动就行,这是相当于一个数据库实例,任何一个数据库运行都要先启动它的实例。

     

    就会自动登录HAO123数据库,这个是因为环境变量默认就是它,所以才自动登录它。你可以重新设置。听监听没有关系。export ORACLE_SID=xxx即可设置一个新的实例名。在window下用set命令。

     

追问

嗯,我有点理解了!~~现在假设我安装数据库的机子是192.168.1.123,另一台机子要连这个数据库,该怎么连?我在192.168.1.123用localhost:1521能连上,但在另一台机子用192.168.1.123:1521就连不上,是不是在192.168.1.123机子上面还要设置什么才能对外开放数据访问?

第2个回答  2013-08-15
它只是警告而已(警告是可以往下运行的),并非错误(而错误是不会再往下运行的)。
你可以进入控制面板==》管理工具==》服务,把新实例启动。
相似回答