如何利用配置的网络服务名连接到数据库:

来源:互联网 发布:sql语句怎么修改列名 编辑:程序博客网 时间:2024/05/16 11:39

如何利用配置的网络服务名连接到数据库:
用sqlplus程序通过test网络服务名进行测试,如sqlplus system/manager@test。如果不能连接到数据库,则在tnsname.ora文件中的test网络服务名(net service)后面加上Oracle数据库的DB_Domain参数值,通过用sqlplus> show parameter db_domain命令察看。此处db_domain参数值为testserver.com,将其加到网络服务名后面,修改后的tnsname.ora中关于该网络服务名的内容为:
test.testserver.com =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com)
)
)
用sqlplus程序通过test.testserver.com网络服务名测试,如sqlplus system/manager@test.testserver.com。
 
关于为什们在网络服务名后面加db_domain参数,需要了解sql*plus连接数据库的原理,解决12154常见故障中有详细的说明。

 

 

摘自genispan答 “客户端网络服务名配置”的回帖。

其中红色字体就是本贴目标对象

 

本段内容中:

 

网络服务名test

域名(db_domain):testserver.com

SERVICE_NAME:orcl.testserver.com

 

网络服务名+域名后的完整内容为:

test.testserver.com =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com)
)
)

 

 

**************************数据库名与数据库实例名*****************************

 数据库名是用于区分数据库的一个内部标识,是以二进制方式存储在数据库控制文件中的参数。数据库创建之后不能再修改这个参数。数据库创建后,它被写入数据库参数文件pfile或Spfile中。格式如下:

 

...

db_name="orcl"

db_domain=dbcenter.toys.com

 

数据库实例名是操作数据库的实体,用户通过实例与数据库交互。实例名用来标识这个数据库实例。数据库创建后,实例名可以被修改。也在数据库参数文件pfile或Spfile中。格式如下:

...

instance_name=orcl

service_names=orcl.dbcenter.toys.com

 

数据库名与实例名可以相同。一个数据库对应一个实例的情况下设置成相同的便于标识数据库。但是在8i,9i的并行服务器中,数据库与实例不存在一一对应关系,而是一对多关系,一个数据库对应多个实例。不过一个用户只能与一个实例相连。