Oracle Databse 11g 监听器配置服务的名称自解

来源:互联网 发布:js修改confirm的是否 编辑:程序博客网 时间:2024/06/10 07:28

Oracle 数据库 单库单实例服务中有好几个名称,

1. dbca 建库时需指定 GOLBAL_NAMESID,GOLBAL_NAME 指定数据库文件存放的目录名,SID 则指定的数据库实例的名字,SID关联数据库初始化参数文件、密码文件等;

2. 监听器服务端配置文件Listener.ora中静态监听部分设定的GOLBAL_NAMESID_NAME

3. 监听器客户端配置文件Tnsname.ora中连接服务设定的TNSname别名SEVICE_NAME

4. sql*plus连接服务引用名 (即 username/password@host:port/TNSname别名 );

5. 数据库实例建立后向监听器动态注册的 SERVICE_NAMESSID_NAME

6. 用户环境变量 ORACLE_SID

一共有 10 个名称,但它们的相关性并不强,配置时只需记得 让sqlplus连接到数据库实例 就行了,也就是(sqlplus)ORACLE_SID -->  (数据库)SID_NAME,这样就可以完成操作数据库了。


sqlplus 连接:

情况1:在本机通过用户环境变量连接数据库实例

这时sqlplus连接过程中通过用户环境变量ORACLE_SID指定要连接的数据库实例名,当然我们也可以用 sqlplus user/password@SID来指定要连接的数据库实例;

这时是进程之间的访问;

情况2:在远端/本机通过监听器连接数据库实例

这时sqlplus连接过程中通过监听器服务端的“服务名GOLBAL_NAME”指向数据库的实例名,再转向数据据库实例;

当然还有Tnsname.ora要说一下,当我们用sqlplus引用Tnsname.ora内的别名时,通过这个别名指向了监听器服务端的服务名GLOBAL_NAME,然后 接上一句;

监听器 服务进程:

静态注册:由Listener.ora文件配置部分的GOLBAL_NAME指定监听服务service(name)供客户端连接,SID_NAME指向数据库实例;

动态注册:由数据库实例服务名SERVICE_NAMES指定监听服务service(name)供客户端连接,数据库SID_NAME配置给临界听服务名指向的SID_NAME;

注:数据库实例服务名 SERVICE_NAMES 并不与 静态监听的 GOLBAL_NAME 相关,静态监听的 GLOBAL_NAME 与 Tnsname 的 SERVICE_NAME 相关;

注: sqlplus 连接时指定的Tns别名指向的服务名是监听器服务名,所以Tns别名可以任意指定;

最后,数据库SERVICE_NAMES:

该名由数据库自动根据数据库的DB_UNIQUE_NAME和DOMAIN_NAME拼接成,可以任意指定,也可以设为多个;