您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(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è)資訊頻道,感謝大家的支持。
免責(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)容。