>  기사  >  데이터 베이스  >  Oracle DB_UNIQUE_NAME和DB_NAME的理解

Oracle DB_UNIQUE_NAME和DB_NAME的理解

WBOY
WBOY원래의
2016-06-07 17:04:331721검색

DB_UNIQUE_NAME这在另一个HA的应用,Dataguard会经常提及的,和DB_NAME不一样的作用,在DG里,要求物理DG,主从库都有一样的DB_N

DB_UNIQUE_NAME
DB_NAME

在一般的数据库里我们看到倒是没有什么特殊的差异的,不过在多实例多数据系统里,这两个倒是经常被提及。不小心就把两个看成一个东东了。其实不然。

这里个人吧对其的理解归纳如下。

DB_NAME 数据库名称,也就是数据库的名字标示。这里,数据库里可能有多个实例,比如RAC里的多节点,这多个节点是不同的实例,但是却有相同的名字,他们的 DB_NAME是相同的但是Instance_name是不同的。DB_NAME会保持在数据文件头里,所以更改DB_NAME不能仅仅修改parameter,还需要用nid 来进行更改,并且更改后还需要手工做些工作,是其生效。

DB_UNIQUE_NAME这在另一个HA的应用,Dataguard会经常提及的,和DB_NAME不一样的作用,在DG里,要求物理DG,主从库都有一样的DB_NAME,虽然他们和RAC不一样,并不是同一个库。这里是数据库的唯一名字。但是他们的DB_UNIQUE_NAME是不一样的,用以进行不同的标示。DB_UNQUIE_NAME的会影响到Service_names,也会影响到动态监听的时候的service_name

比如如下片段
Service "zxdbdg1" has 1 instance(s).
Instance "zxdb", status BLOCKED, has 1 handler(s) for this service...
Service "zxdbdg1_XPT" has 1 instance(s).
Instance "zxdb", status BLOCKED, has 1 handler(s) for this service...
The command completed successfully

这里的zxdbdg1就是dg中的从库。从库的db_name和主库保持一样为zxdb,DB_UNIQUE_NAME不同。在动态监听后,注册为
zxdbdg1的service,启动的instance_name还是zxdb

Instance_name简单讲就是Oracle_SID,oracle里通过ORSCLE_SID来管理不同的数据库实例。

另,上面的动态监听信息里出现了Instance "zxdb", status BLOCKED

这里是因为我的从库数据库不是open状态。

NinGoo :db_unique_name 一般是在同一台机器上有两个数据库的db_name一样的时候需要设置,比较典型的情况是单机上做Data Guard的时候。

linux

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.