oracle数据库成果展示,Oracle 数据库的众多 “NAME”

Oracle 有众多名字,很多人容易弄混,下面会通过各个层面的展示,从视觉、流程角度去了解,而并非单一通过概念去认识他们,这样会更容易认识他们,了解他们之间的区别

DB_NAME

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

这部分可以通过 bbed 来查看存储方式,我们拿 system01.dbf 数据文件举例。

027490826c2d41f25f5be2a20c6d9a92.png

此处我们看到,数据文件头只有八个字符的位置存储 Oracle 的数据库名,这也是我们为什么说,长度不能超过 8个字符,dump可以看到如下内容:

0bb393cace71c1755005815bfbc4f747.png

从第 32 位字符开始,就是存储的数据文件,给位置根据第一幅图 O 所反馈的 @32 可知,也可以由以下语句进行验证

2efc6fa2158e8dc3d159dad32b8233c4.png

DBID

DBID 是在数据库创建的时候用DB_NAME结合算法计算出来的,由一串数字组成

它存在于 datafile 和 control file 中,用来表示数据文件的归属,所以DBID是唯一的,对于不同的数据库,DB_NAME可以是相同的,但是DBID一定是唯一的

我们还是以上图的 system01.dbf 为例,它是以倒序的形式存储在数据文件头部的

737c61486b20c09afc10fc152ccd6cca.png

我们依然可以用to_char命令进行验证

45786d123fa6a1cfe937fe7b238f9d1e.png

DB_UNIQUE_NAME

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

SID & INSTANCE_NAME

在操作系统中要想得到实例名,就必须使用ORACLE_SID。initSID.ora 和 orapwSID 文件要与 ORACLE_SID 保持一致。

7f196b172488596d4010581f7cddd717.png

数据库根据 ORACLE_SID 来查找 spfile,然后以 ORACLE_SID 作为 INSTANCE_NAME 来启动实例,所以其相关的进程名,亦为 ORACLE_SID 的名称。

ffda3200c65b49e6e24dfe85047ab282.png

此名称可以和数据库名称一致,也可以不一致,为了便于区分,一般差别不大。

手动建库时,会读取参数文件中 DB_NAME,然后在创建过程中写入控制文件、数据文件和重做日志文件,所以数据库名和实例名可以不一致。

SERVICE_NAME

数据库和客户端相连是使用的服务名,默认与 DB_UNIQUE_NAME 一致,也可以添加多个 SERVICE_NAME 用于服务。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值