通过global_dbname和dbname访问数据库的不同
2014-06-19 17:01
267 查看
两者的主要区别是:
全局数据库名访问 用于客户端和服务端在2个不同的域之间
数据库名(实例名)访问 用于客户端和服务端在同一个域内
数据库名访问举例:
只需要在客户端的tnsname.ora文件中配置如下信息:
ORA11G_243 = // ORA11G_243 可随便定义
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = xxxx)) //服务端IP地址和端口根据实际情况填写
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xxxx) //服务名填写服务端数据库实例名,即SID
)
)
全局数据库名访问举例:
首先在服务端修改监听文件listener.ora,配置如下信息:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora11g)
(ORACLE_HOME = /oracle/app/product/11g/db)
(SID_NAME = ora11g)
)
(SID_DESC =
(GLOBAL_DBNAME = ora11g.home1) // 这里就是全局数据库名,通常格式为 db_name.db_domain
(ORACLE_HOME = /oracle/app/product/11g/db)
(SID_NAME = ora11g) //服务端数据库实例名,即SID
)
)
然后重启监听
再修改客户端的tnsname.ora文件,配置如下:
ORA11G_243 = // ORA11G_243 可随便定义
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = xxxx)) //服务端IP地址和端口根据实际情况填写
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xxxx) //服务名填写服务端所配置的global_name,即全局数据库名 )
)
当客户端有连接请求过来时,服务端监听器会拿listener.ora中的GLOBAL_NAME同连接请求的SERVICE_NAME对比,如果连接请求中是SID(oracle9i之前常用)而不是SERVICE_NAME,则不检查GLOBAL_NAME,而是对监听器设置的SID_NAME进行匹配
全局数据库名访问 用于客户端和服务端在2个不同的域之间
数据库名(实例名)访问 用于客户端和服务端在同一个域内
数据库名访问举例:
只需要在客户端的tnsname.ora文件中配置如下信息:
ORA11G_243 = // ORA11G_243 可随便定义
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = xxxx)) //服务端IP地址和端口根据实际情况填写
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xxxx) //服务名填写服务端数据库实例名,即SID
)
)
全局数据库名访问举例:
首先在服务端修改监听文件listener.ora,配置如下信息:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora11g)
(ORACLE_HOME = /oracle/app/product/11g/db)
(SID_NAME = ora11g)
)
(SID_DESC =
(GLOBAL_DBNAME = ora11g.home1) // 这里就是全局数据库名,通常格式为 db_name.db_domain
(ORACLE_HOME = /oracle/app/product/11g/db)
(SID_NAME = ora11g) //服务端数据库实例名,即SID
)
)
然后重启监听
再修改客户端的tnsname.ora文件,配置如下:
ORA11G_243 = // ORA11G_243 可随便定义
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = xxxx)) //服务端IP地址和端口根据实际情况填写
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xxxx) //服务名填写服务端所配置的global_name,即全局数据库名 )
)
当客户端有连接请求过来时,服务端监听器会拿listener.ora中的GLOBAL_NAME同连接请求的SERVICE_NAME对比,如果连接请求中是SID(oracle9i之前常用)而不是SERVICE_NAME,则不检查GLOBAL_NAME,而是对监听器设置的SID_NAME进行匹配
相关文章推荐
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法(转载)
- 通过一条sql语句访问不同数据库的方法
- 通过Android-sharedUserId访问不同apk的资源文件(资源和数据库)
- 通过一条sql语句访问不同服务器中的数据库对象的方法
- [转]SQLSERVER存储过程调用不同数据库的数据_存储过程中通过链接服务器访问远程服务器
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法
- 通过一条sql语句访问不同数据库服务器中的数据库对象的方法
- .net 提供不通过反射访问不同数据库吗?
- 通过Sql 2005 management Studio 访问WSS3的默认数据库引擎:MICROSOFT##SSEE,注意问题
- oracle通过透明网关(Oracle Transparent Geteways),访问ms sql server和其他数据库
- 通过“访问多种数据库”的代码来学习多态!(.net2.0版)
- 通过Forms身份验证设置不同页面的访问权限
- 在ASP中通过SQL访问ACESS数据库的方法
- 请问谁知道有什么办法可以--检测是否是同一台电脑通过不同的代理访问某个网站吗?
- 直接通过 ODBC API 访问 SQL 数据库
- 如何通过不同的域名访问发布到Apache上不同的Appeon Web应用?
- JSP下通过socket访问数据库
- 在weblogic环境中,通过连接池访问数据库
- [原创] 通过网络访问服务器上非默认数据库实例的解决方案
- 关于Oracle中访问不同用户数据库对象