Oracle连接服务名和数据库名
Oracle连接服务名和数据库名
在Oracle数据库中,"服务名"和"数据库名"是两个不同的概念,但它们经常被混淆使用。
数据库名(DB_NAME)
这是数据库的内部标识,它在数据库创建的时候就被指定,并且在整个数据库中是唯一的。数据库名通常在创建数据库时使用CREATE DATABASE语句指定,并存储在数据库的数据字典中。
服务名(SERVICE_NAMES)
在Oracle Net Services中,服务名用来标识一个或多个实例(或者数据库)提供的网络服务。服务名可以在listener.ora文件中定义,并且可以与数据库名不同。
在Oracle 11g及更高版本中,服务名通常是必需的,因为Oracle引入了"分布式服务名"的概念,允许客户端通过网络连接到远程数据库,而不需要知道数据库名。
TNSnames.ora 连接字符串
# TNSnames.ora 文件中的一个条目
C# 全选
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = myserver.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
在这个例子中,ORCL是一个别名,myserver.example.com是数据库服务器的主机名,1521是监听器的端口号,SERVICE_NAME是orcl,这是客户端将用来连接数据库的服务名。
如果你想通过SQL*Plus或其他客户端工具连接到数据库,你需要知道服务名(SERVICE_NAME),因为这是网络服务的标识。如果你想从服务器本机连接到数据库实例,你可以使用数据库名,因为在这种情况下,服务名通常默认与数据库名相同。
ConnectionString 连接字符串
C# 全选
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.254)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=CSFrameworkV6_Normal)));User Id=user01;Password=123;
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网