返回顶部
首页 > 资讯 > 数据库 >Oracle数据库名,实例名,服务名的区别
  • 618
分享到

Oracle数据库名,实例名,服务名的区别

2024-04-02 19:04:59 618人浏览 独家记忆
摘要

DB_NAME: ①是数据库名,长度不能超过8个字符,记录在datafile、redolog和control file中 ②在DataGuard环境中DB_NAME相同而DB_UNIQUE_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

您可能感兴趣的文档:

--结束END--

本文标题: Oracle数据库名,实例名,服务名的区别

本文链接: https://lsjlt.com/news/37620.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作