oracle中可以配多个数据库,并只需要开启一个侦听器就可以了,对多个数据库只要配置相应的服务命名就可以连接了。 我用的是oracle 8.1.7 enterprise edition,os是windows 2000 server,我把我的配置过程和情况图解说明一下,和大家共同探讨。 第一步:用net
oracle中可以配多个数据库,并只需要开启一个侦听器就可以了,对多个数据库只要配置相应的服务命名就可以连接了。
我用的是oracle 8.1.7 enterprise edition,os是windows 2000 server,我把我的配置过程和情况图解说明一下,和大家共同探讨。
第一步:用net8 configuration assistant工具配置监听器,一直点下一步,最后完成即可!监听地址一般配成默认的1521就可以了。
也可以用net8 assistant工具来验证或配置监听器,如下图,可以配置主机和端口。
第二步:用net8 assistant工具来配置命名服务,如下图:
注意服务名是数据库名,主机名和端口号一定要和监听器的一样!
测试一下,连接成功,ok!
好,再配第二个库的服务命名,如下图:
注意服务名要对应到第二个数据库名!
再测试一下第二个库的连接,连接成功,ok!
最后有几点注意:
1.对一般如果有多个应用程序用oracle的数据库,一般只需要建立一个数据库就可以了,对不同的应用设立不同的用户(不同的表空间)就可以了。
2.如果多个应用程序的字符集不一样,如既有big5又有gb2312,那一般就需要考虑配置多个服务器,或者建立多个数据库,或者转换到utf-8之类的字符集。
3.如果开发需要装多个版本的oracle,如同时安装oracle9i和oracle8.1.7,则需要配置各自的监听端口,环境变量没有什么需要配置的,不会冲突;注册表都放在hkey_local_machinesoftwareoracle下,但是会分home0~home...不同的key中存放,所以也不会有冲突。
4.配置命名服务和监听器还可以直接编辑如下2个文件:
监听器:$oracle_home$ etworkadminlistener.ora,一般文件如下:
# listener.ora network configuration file: d:databaseoracle81 etworkadminlistener.ora
# generated by oracle configuration tools.
listener =
(description_list =
(description =
(address_list =
(address = (protocol = tcp)(host = harry)(port = 1521))
)
)
)
sid_list_listener =
(sid_list =
(sid_desc =
(sid_name = plsextproc)
(oracle_home = d:databaseoracle81)
(program = extproc)
)
(sid_desc =
(global_dbname = orasun)
(oracle_home = d:databaseoracle81)
(sid_name = orasun)
)
(sid_desc =
(global_dbname = oragce)
(oracle_home = d:databaseoracle81)
(sid_name = oragce)
)
)
服务命名:$oracle_home$ etworkadmin nsnames.ora,一般文件如下:
# tnsnames.ora network configuration file: d:databaseoracle81networkadmin nsnames.ora
# generated by oracle configuration tools.
smest =
(description =
(address_list =
(address = (protocol = tcp)(host = 127.0.0.1)(port = 1521))
)
(connect_data =
(service_name = oragce)
)
)
smedi =
(description =
(address_list =
(address = (protocol = tcp)(host = 127.0.0.1)(port = 1521))
)
(connect_data =
(service_name = orasun)
)
)
inst1_http =
(description =
(address_list =
(address = (protocol = tcp)(host = 127.0.0.1)(port = 1521))
)
(connect_data =
(server = shared)
(service_name = oragce)
(presentation = )
)
)
extproc_connection_data =
(description =
(address_list =
(address = (protocol = ipc)(key = extproc0))
)
(connect_data =
(sid = plsextproc)
(presentation = ro)
)
)
这2个文件在$oracle_home$ etworkadminsample下有相应的范例文件,可以参考。
监听器配置修改后,需要重新启动监听器的服务!!!
再补充一点,配置多个侦听器或者一个侦听器侦听多个数据库的时候,对侦听器注意需要配置数据库服务。
如图,一个侦听器侦听多个数据库,如下配置,数据库名和sid分别是orasun和oragce,同样配多个侦听器侦听一个数据库(分别对内网和外网提供),,如果碰到连接问题,请大家检查一下数据库配置这一项,当然如果直接写文件来配置就很简单了,一下就可以搞定了,大家也可以对照我前面给出的配置文件看一下。