重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3102|回复: 0
打印 上一主题 下一主题

[参考文档] DB_NAME、DB_UNIQUE_NAME、SERVICE_NAME和INSTANCE_NAME的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2018-4-27 14:33:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jiawang 于 2018-4-27 14:38 编辑

搭建DG时,oracle里面有为数众多的name,它们到底在什么时候使用呢。以下是概念整理:
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动态注册监听
SQL> show parameter db_name;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      orcl

SQL> show parameter db_un        
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      orcl
db_unrecoverable_scn_tracking        boolean     TRUE

SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      orcl

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会影响进程的名称
[oracle@localhost ~]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ll
总用量 9540
-rw-rw---- 1 oracle oinstall    1544 4月   4 10:55 hc_orcl.dat
-rw-r--r-- 1 oracle oinstall    2851 5月  15 2009 init.ora
-rw-r----- 1 oracle oinstall      24 4月   4 10:24 lkORCL
-rw-r----- 1 oracle oinstall    1536 4月   4 10:26 orapworcl
-rw-r----- 1 oracle oinstall 9748480 4月  12 17:01 snapcf_orcl.f
-rw-r----- 1 oracle oinstall    3584 4月  11 16:06 spfileorcl.ora
SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      orcl

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的值

GLOBAL_DATABASE_NAME:
①GLOBAL_DATABASE_NAME 是listener配置的对外网络连接名称,可以是任意值
②在客户端配置监听的tnsnames.ora 文件中的service_name 与这个GLOBAL_DBNAME 保持一致就可以了
③配置静态监听时,需要输入SID和GLOBAL_NAME




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-4-30 15:04 , Processed in 0.096613 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表