ITPub博客

首页 > 数据库 > Oracle > oracle数据库名、实例名、服务名等区分

oracle数据库名、实例名、服务名等区分

原创 Oracle 作者:a960549548 时间:2024-03-18 09:15:27 0 删除 编辑

DB_NAME :

① 是数据库名,长度不能超过 8 个字符,记录在 datafile 、 redolog 和 control file 中

② 在 DataGuard 环境中 DB_NAME 相同而 DB_UNIQUE_NAME 不同

③ 在 RAC 环境中,各个节点的 DB_NAME 都相同,但是 INSTANCE_NAME 不同

④DB_NAME 还在动态注册监听的时候起作用,无论是否定义了 SERVICE_NAME,PMON 进程都会使用 DB_NAME 动态注册监听

 

 

DBID :

①DBID 可以看做是 DB_NAME 在数据库内部的表示,它是在数据库创建的时候用 DB_NAME 结合算法计算出来的

② 它存在于 datafile 和 control file 中,用来表示数据文件的归属,所以 DBID 是仅有的,对于不同的数据库, DB_NAME 可以是相同的,但是 DBID 一定是仅有一个的,例如在 DataGuard 中,主备库的 DB_NAME 相同,但是 DBID 一定不同(看过一个很形象的例子,就是可以有同名的人,但是身份证号码一定不同)

 

 

DB_UNIQUE_NAME :

① 在 DataGuard 中,主备库拥有相同的 DB_NAME ,为了区别,就必须有不同的 DB_UNIQUE_NAME

②DB_UNIQUE_NAME 在 DG 中会影响动态注册的 SERVICE_NAME ,即如果采用的是动态注册,则注册的 SERVICE_NAME 为 DB_UNIQUE_NAME ,但是实例还是 INSTANCE_NAME ,即 SID

 

INSTANCE_NAME :

① 数据库实例的名称, INSTANCE_NAME 默认值是 SID ,一般情况下和数据库名称( DB_NAME) 相同,也可不同

②initSID.ora 和 orapwSID 文件要与 INSTANCE_NAME 保持一致

③INSTANCE_NAME 会影响进程的名称

 

 

SID :

① 是操作系统中的环境变量,和 ORACLE_HOME,ORACLE_BASE 用法相同

② 在操作系统中要想得到实例名,就必须使用 ORACLE_SID 。且 ORACLE_SID 必须与 INSTANCE_NAME 的值一致

 

 

SERVICE_NAME :

① 数据库和客户端相连是使用的服务名

② 在 DataGuard 中,如果采用动态注册,建议在主备库使用相同的 service_names

③ 在 DataGuard 中,如果采用静态注册,建议在主备库上的 listener 中输入相同的服务名 (service_name)

④ 如果采监听采用了静态注册,那么 SERVICE_NAME 就等于 Listener.ora 文件中的 GLOBAL_DATABASE_NAME 的值

 

SERVICE  Properw  Parameter type  Syntax  Default value  Modifiable  Range of values  Basic  Real Application Clusters  NAMES  Description  String  SERVICE  nan± ,  sysm•l  db service nams  if defined  Any ASCII string or comma-separated list of string names  No  Do not set the parameter for Real Application Clusters (RAC). Instead, define  services using Database Configuration Assistant (DBCA) and manage services using Server  Control (SRVCTL) utilit„

 

 

GLOBAL_DATABASE_NAME :

①GLOBAL_DATABASE_NAME 是 listener 配置的对外网络连接名称,可以是任意值

② 在客户端配置监听的 tnsnames.ora 文件中的 service_name 与这个 GLOBAL_DBNAME 保持一致就可以了

③ 配置静态监听注册时,需要输入 SID 和 GLOBAL_NAME

 

 

GLOBAL_NAMES

select * from global_name;

show parameter global_names

当 GLOBAL_NAMES 参数设置为 TRUE 时,使用 DATABASE LINK 时, DATABASE LINK 的名称必须与被连接库的 GLOBAL_NAME 一致。

 

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3009215/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: oracle回收站管理
请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171520