溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

如何理解Oracle分布式系統(tǒng)中的全局?jǐn)?shù)據(jù)庫(kù)名

發(fā)布時(shí)間:2021-11-12 15:21:25 來(lái)源:億速云 閱讀:316 作者:柒染 欄目:關(guān)系型數(shù)據(jù)庫(kù)

今天就跟大家聊聊有關(guān)如何理解Oracle分布式系統(tǒng)中的全局?jǐn)?shù)據(jù)庫(kù)名,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

在分布式系統(tǒng)中,每個(gè)數(shù)據(jù)庫(kù)都有一個(gè)唯一的全局?jǐn)?shù)據(jù)庫(kù)名。全局?jǐn)?shù)據(jù)庫(kù)名能唯一標(biāo)識(shí)系統(tǒng)中的一個(gè)數(shù)據(jù)庫(kù)。在分布式系統(tǒng)中一個(gè)主要的任務(wù)就是創(chuàng)建與管理全局?jǐn)?shù)據(jù)庫(kù)名。

1.全局?jǐn)?shù)據(jù)庫(kù)名的組成
一個(gè)全局?jǐn)?shù)據(jù)庫(kù)名由兩部分組成:一個(gè)數(shù)據(jù)庫(kù)名與一個(gè)域名。在數(shù)據(jù)庫(kù)創(chuàng)建時(shí)數(shù)據(jù)庫(kù)名與域名是由以下參數(shù)來(lái)決定的。
數(shù)據(jù)庫(kù)名:db_name 小于等于30個(gè)字符,例如sales
域名: db_domain 必須遵守標(biāo)準(zhǔn)互聯(lián)網(wǎng)規(guī)則。域名中的級(jí)別必須通過(guò)點(diǎn)號(hào)進(jìn)行分隔并且域名的順序是從葉子到根,從左到右。

db_domain參數(shù)只是在數(shù)據(jù)庫(kù)創(chuàng)建時(shí)被使用的一個(gè)很重要的參數(shù),它與db_name參數(shù)一起來(lái)決定全局?jǐn)?shù)據(jù)庫(kù)名。全局?jǐn)?shù)據(jù)庫(kù)名是被存儲(chǔ)在數(shù)據(jù)字典中。必須通過(guò)alter database語(yǔ)句來(lái)改變?nèi)謹(jǐn)?shù)據(jù)庫(kù)名,不能通過(guò)修改參數(shù)文件中的db_domain參數(shù)來(lái)進(jìn)行修改。

決定是否強(qiáng)制執(zhí)行全局?jǐn)?shù)據(jù)庫(kù)名
在本地?cái)?shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)鏈路指定名稱(chēng)時(shí)會(huì)根據(jù)是否強(qiáng)制執(zhí)行全局?jǐn)?shù)據(jù)庫(kù)名來(lái)生成鏈路名。如果本地?cái)?shù)據(jù)庫(kù)強(qiáng)制執(zhí)行全局?jǐn)?shù)據(jù)庫(kù)名,那么你必須像使用遠(yuǎn)程數(shù)據(jù)庫(kù)全局?jǐn)?shù)據(jù)庫(kù)名作為數(shù)據(jù)鏈路名。例如,如果連接到本地?cái)?shù)據(jù)庫(kù)hq,并且想創(chuàng)建一個(gè)連接到遠(yuǎn)程數(shù)據(jù)庫(kù)的mfg的數(shù)據(jù)鏈路,并且本地?cái)?shù)據(jù)庫(kù)強(qiáng)制執(zhí)行全局?jǐn)?shù)據(jù)庫(kù)名,那么必須使用mfg全局?jǐn)?shù)據(jù)庫(kù)名作為鏈路名。

在創(chuàng)建數(shù)據(jù)鏈路時(shí)也可以使用服務(wù)名作為數(shù)據(jù)庫(kù)鏈路名的一部分。例如,如果使用服務(wù)名sn1和sn2來(lái)連接數(shù)據(jù)庫(kù)hq.example.com,并且全局?jǐn)?shù)據(jù)庫(kù)名被強(qiáng)制執(zhí)行時(shí),那么可以對(duì)數(shù)據(jù)庫(kù)hq創(chuàng)建以下鏈路名:
hq.example.com@sn1
hq.example.com@sn2

為了判斷數(shù)據(jù)庫(kù)是否啟用了全局?jǐn)?shù)據(jù)庫(kù)名,可以檢查數(shù)據(jù)庫(kù)初始化參數(shù)文件或查詢(xún)v$parameter視圖。例如,為了查看對(duì)數(shù)據(jù)庫(kù)mfg是否強(qiáng)制執(zhí)行全局?jǐn)?shù)據(jù)庫(kù)名,可以執(zhí)行以下語(yǔ)句來(lái)進(jìn)行查詢(xún):

SQL> col name format a12
SQL> col value format a6
SQL> select name, value from v$parameter  where name = 'global_names'
  2  /

NAME         VALUE
------------ ------
global_names FALSE

查看全局?jǐn)?shù)據(jù)庫(kù)名
可以查詢(xún)視圖global_name來(lái)查看全局?jǐn)?shù)據(jù)庫(kù)名

SQL> select * from global_name;

GLOBAL_NAME
--------------------------------------------------------------------------------
JYPDB

修改全局?jǐn)?shù)據(jù)庫(kù)名中的域名
可以使用alter database語(yǔ)句來(lái)改變?nèi)謹(jǐn)?shù)據(jù)庫(kù)名中的域名。在數(shù)據(jù)庫(kù)創(chuàng)建之后,修改db_domain參數(shù)不會(huì)影響全局?jǐn)?shù)據(jù)庫(kù)名或數(shù)據(jù)庫(kù)鏈路名。下面的例子顯示重命名全局?jǐn)?shù)據(jù)庫(kù)名的語(yǔ)句,database是數(shù)據(jù)庫(kù)名,domain是網(wǎng)絡(luò)域名:

alter database rename global_name to database.domain;

修改全局?jǐn)?shù)據(jù)庫(kù)名的操作如下:
1.判斷當(dāng)前的全局?jǐn)?shù)據(jù)庫(kù)名:

SQL> select * from global_name;

GLOBAL_NAME
--------------------------------------------------------------------------------
JY

2.執(zhí)行alter database語(yǔ)句來(lái)修改全局?jǐn)?shù)據(jù)庫(kù)名

SQL> alter database rename global_name to jy.jydba.net;

Database altered.

3.查詢(xún)視圖global_name來(lái)檢查新的全局?jǐn)?shù)據(jù)庫(kù)

SQL> select * from global_name;

GLOBAL_NAME
--------------------------------------------------------------------------------
JY.JYDBA.NET

4.修改全局?jǐn)?shù)據(jù)庫(kù)名中的域名
使用alter database語(yǔ)句來(lái)修改全避數(shù)據(jù)庫(kù)名中的域名。在數(shù)據(jù)庫(kù)創(chuàng)建之后,修改初始化參數(shù)db_domain不會(huì)影響全局?jǐn)?shù)據(jù)庫(kù)名或?qū)?shù)據(jù)庫(kù)鏈路名的解析。下面的例子顯示了修改全局?jǐn)?shù)據(jù)庫(kù)名的語(yǔ)法,database是數(shù)據(jù)庫(kù)名,domain是網(wǎng)絡(luò)域名:

alter database rename global_name to database.domain;

使用下面的過(guò)程來(lái)修改全局?jǐn)?shù)據(jù)庫(kù)名中的域名:
1.判斷當(dāng)前全局?jǐn)?shù)據(jù)庫(kù)名。

SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
JY.JYDBA.NET

2.使用alter database語(yǔ)句來(lái)修改全局?jǐn)?shù)據(jù)庫(kù)名

SQL> alter database rename global_name to jy.changde.net;
Database altered

3.查詢(xún)global_name表來(lái)檢查新的全局?jǐn)?shù)據(jù)庫(kù)名

SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
JY.CHANGDE.NET

下面將介紹修改全局?jǐn)?shù)據(jù)庫(kù)名的場(chǎng)景
在這種情況下,可以修改本地?cái)?shù)據(jù)庫(kù)的全局?jǐn)?shù)據(jù)庫(kù)名中的域名部分。也可以使用全局名來(lái)創(chuàng)建數(shù)據(jù)鏈路來(lái)測(cè)試數(shù)據(jù)庫(kù)是如何解析鏈路名的。

1.連接到j(luò)y.jydba.net并查詢(xún)global_name數(shù)據(jù)字典視圖來(lái)判斷當(dāng)前的數(shù)據(jù)為全局名:

SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
JY.JYDBA.NET

2.查詢(xún)v$parameter視圖來(lái)判斷db_domain參數(shù)的當(dāng)前值

SQL> select name, value from v$parameter where name = 'db_domain';
NAME                            VALUE
------------------------------- ----------------
db_domain

3.創(chuàng)建一個(gè)連接到數(shù)據(jù)庫(kù)sjjh的數(shù)據(jù)鏈路,保指定全局名的一部分:

SQL> create database link dblink_test using 'sjjh';
Database link created

數(shù)據(jù)庫(kù)會(huì)通過(guò)將本地?cái)?shù)據(jù)庫(kù)的全局?jǐn)?shù)據(jù)庫(kù)名中的域名部分增加到數(shù)據(jù)鏈路的全局名中

4.查詢(xún)user_db_links來(lái)判斷數(shù)據(jù)鏈路的域名

SQL> select db_link from user_db_links;
DB_LINK
--------------------------------------------------------------------------------
DBLINK_TEST.JYDBA.NET

查詢(xún)結(jié)果顯示,本地?cái)?shù)據(jù)庫(kù)的全局名中的域名jydba.net被用來(lái)作為數(shù)據(jù)鏈路的域名

5.因?yàn)橐獙?shù)據(jù)庫(kù)jy移到changde.net這個(gè)域中,所以執(zhí)行以下操作

SQL> alter database rename global_name to jy.changde.net;
Database altered

SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
JY.CHANGDE.NET

6.查詢(xún)v$parameter發(fā)現(xiàn)db_domain參數(shù)并沒(méi)有修改

SQL> select name, value from v$parameter where name = 'db_domain';
NAME                            VALUE
------------------------------- ----------------
db_domain

這也就說(shuō)明了db_domain參數(shù)是獨(dú)立于alter database rename global_name語(yǔ)句的。alter database語(yǔ)句決定了全局?jǐn)?shù)據(jù)庫(kù)名中的域名。

7.可以創(chuàng)建另一個(gè)數(shù)據(jù)鏈路來(lái)連接數(shù)據(jù)庫(kù)sjjh,并查詢(xún)user_db_links來(lái)查看數(shù)據(jù)鏈路中的域名

SQL> create database link dblink_cs using 'sjjh';
Database link created

SQL> select db_link from user_db_links;
DB_LINK
--------------------------------------------------------------------------------
DBLINK_CS.CHANGDE.NET
DBLINK_TEST.JYDBA.NET

可以看到新創(chuàng)建的數(shù)據(jù)鏈路的域名,是使用當(dāng)前本地?cái)?shù)據(jù)庫(kù)全局?jǐn)?shù)據(jù)庫(kù)名中的域名。

看完上述內(nèi)容,你們對(duì)如何理解Oracle分布式系統(tǒng)中的全局?jǐn)?shù)據(jù)庫(kù)名有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI