搭建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动态注册监听

 

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

 

GLOBAL_DATABASE_NAME:

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

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

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


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

©著作权归作者所有:来自51CTO博客作者小麦苗DB宝的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. DAY02-html表格和表单的实例应用(课程排期表和用户注册信息表)
  2. input输入框相关事件整理
  3. 宝塔面板非https站点使用https访问跳转其他网站内容的处理办法
  4. 亚马逊品牌注册需要多少钱?
  5. 开发技巧 | mPaaS 小程序自定义事件,如何取消注册?
  6. Python 爬虫进阶必备 | 某k12注册加密参数分析
  7. html5+css3制作的课程表和注册表单
  8. Nacos注册中心 配置启动
  9. springcloud Alibaba 阿里组件 nacos注册中心 gateway网关 flowa

随机推荐

  1. 纳税服务系统总结
  2. array must be initialized with a brace
  3. 冒泡排序就这么简单
  4. Springboot实现文件上传下载
  5. 每日学习-ansible firewalld模块
  6. 整理了一套Servlet面试题
  7. 选择排序就这么简单
  8. MyBatis之properties配置
  9. SpringMVC入门就这么简单
  10. PG认证