查询oracle全局数据库名,Oracle基础:数据库名 实例名 ORACLE_SID 服务名 域名 全局数据库名...

Oracle中存在着这些容易混淆的名称:

数据库名实例名ORACLE_SID服务名域名全局数据库名

在oracle7/8/9i/10g中都有数据库名和实例名,在9i和10g中又引进了三个新的数据库标识类参数:数据库域名(db_domain)、全局数据库名(global_dbname)和数据库服务名(service_names)。下面介绍一下这些名称的关系:

1.数据库名

用于区分一个数据库的内部标识,在安装数据库、创建新数据库、创建控制文件、修改数据库结构、利用RMAN备份时都需要使用数据库名。

存在于(但不仅限于)以下地方:

(1)以二进制方式存储在控制文件中。

(2)Pfile/spfile中:db_name

(3)数据库物理结构文件目录中

D:\oracle\oradata\db_name\*.*

D:\oracle\admin\db_name\*.*

查询方法:select name from v$database;

2.实例名

用于和操作系统进行联系。在操作系统中要取得与数据库之间的交互必须使用实例名。例如,要和某一个数据库服务器连接,则必须知道其数据库实例名,知道数据库名是没用的。在安装/创建数据库后,实例名允许修改的。

存在于(但不仅限于)以下地方:

(1)Windows nt/2000注册表中(oracle_sid)

(2)pfile/spfile中:instance_name

(3)数据库参数文件名中:init.ora

查询方法:select instance_name from v$instance;

与数据库名的关系:一般是一一对应的,RAC中除外。

3.

ORACLE_SID

细心的朋友可以发现,2.3中有个问题:2中讲的是instance_name,但2.3存储的却是oracle_sid。

因为从名称上来说,instance_name=oracle_sid。对于数据库实例名的描述,有时使用instance_name,有时使用oracle_sid,这两个都是数据库实例名。但instance_name是oracle数据库参数,而oracle_sid是操作系统环境变量。

Oracle_sid用于和操作系统交互。也就是说,在操作系统中要想得到实例名,必须使用oracle_sid。例如同一服务器上创建了多个数据库,则就有多个对应的实例,可以通过在操作系统中设置oracle_sid指定要登录的数据库:

$oracle_sid=orcl

$export

oracle_sid

C:\>set

oracle_sid=orcl

存在于(但不仅限于)以下地方:

(1)Windows nt/2000注册表中(oracle_sid)

(2)数据库参数文件名中:init.ora

实例名除用于和操作系统联系外,还用于网络连接,即与客户端或其他服务器之间的连接。配置网络连接,就是配置网络连接串。

例如登录某远程数据库:

C:\>sqlplus

xtjb/xtjb@s101

这里的s101就是一个网络连接串。

在oracle的不同版本中,网络连接串的内容是不同的。在网络驱动版本为sql*net或net8时,网络连接串使用数据库实例名构造;网络驱动版本为net8i或net services时,网络连接串使用数据库服务名构造(服务名见后面介绍)。见图3中的填写说明。

4.域名

9i/10g中新引进参数。在数据库名称后面增加域名构成,类似网络中的域名,使数据库的取名在整个网络环境中唯一。

域名主要用于分布式数据库中数据库之间的连接。例如,在一个网络中有两个数据库,数据库名都是orcl,若这连个数据库之间要建立连接,则必须使用不同的域名加以区分。

5.全局数据库名

9i/10g中新引进参数。全局数据库名=数据库名+域名。

6.服务名

9i/10g中新引进参数。服务名=全局数据库名。

当使用网络驱动net8i, net services与oracle9i/10g服务器连接时,不再使用实例名,而使用数据库服务名。

7.补充

当同一网络中两个数据库的global_dbname相同时,可以通过修改域名和服务名的方式进行调整(当然也可以修改数据库名,不过太繁琐)。

修改完毕后,需修改监听中的全局数据库名,并重启监听(见8中例子)。

8.举例

(1)创建一个数据库,全局数据库名为ora.world,SID(实例名)为orasid。见图1。

(2)创建完毕后,使用服务名(全局数据库名)建立网络连接。见图2、图3。

(4)修改全局数据库名(修改域名和服务名)

SQL> alter

system set db_domain='''' scope=spfile;

系统已更改。

SQL>

alter system set service_names=''ora'' scope=spfile;

系统已更改。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库实例名是在Oracle数据库中用于唯一标识一个实例的名称。在早期版本中,使用的是ORACLE_SIDOracle System Identifier)作为实例名。从Oracle8i开始,引入了数据库服务名(SERVICE_NAME)这一概念,用于替代ORACLE_SID实例名是在创建Oracle数据库时指定的,用于在数据库与客户端之间建立连接。 数据库服务名(SERVICE_NAME)在Oracle9i版本之后引入,用于客户端与Oracle建立服务连接时使用。它是一个用于标识数据库服务的参数,尽管在某些情况下可能没有太大的实际用途。 在一般情况下,数据库名和实例名是一对一的关系,即一个数据库对应一个实例。但在Oracle并行服务器架构(Oracle Real Application Clusters)中,数据库名和实例名是一对多的关系,即一个数据库可以有多个实例。这种情况在数据库名和实例名的关系上有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Oracle实例名,服务名等概念区别与联系](https://blog.csdn.net/weixin_30571465/article/details/101443908)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [oracle 数据库名/数据库实例名[SID]/数据库域名/全局数据库名](https://blog.csdn.net/liujinwei2005/article/details/116854672)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值