十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
今天就跟大家聊聊有關如何理解Oracle分布式系統(tǒng)中的全局數(shù)據(jù)庫名,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比阿巴嘎網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式阿巴嘎網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋阿巴嘎地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。
在分布式系統(tǒng)中,每個數(shù)據(jù)庫都有一個唯一的全局數(shù)據(jù)庫名。全局數(shù)據(jù)庫名能唯一標識系統(tǒng)中的一個數(shù)據(jù)庫。在分布式系統(tǒng)中一個主要的任務就是創(chuàng)建與管理全局數(shù)據(jù)庫名。
1.全局數(shù)據(jù)庫名的組成
一個全局數(shù)據(jù)庫名由兩部分組成:一個數(shù)據(jù)庫名與一個域名。在數(shù)據(jù)庫創(chuàng)建時數(shù)據(jù)庫名與域名是由以下參數(shù)來決定的。
數(shù)據(jù)庫名:db_name 小于等于30個字符,例如sales
域名: db_domain 必須遵守標準互聯(lián)網(wǎng)規(guī)則。域名中的級別必須通過點號進行分隔并且域名的順序是從葉子到根,從左到右。
db_domain參數(shù)只是在數(shù)據(jù)庫創(chuàng)建時被使用的一個很重要的參數(shù),它與db_name參數(shù)一起來決定全局數(shù)據(jù)庫名。全局數(shù)據(jù)庫名是被存儲在數(shù)據(jù)字典中。必須通過alter database語句來改變全局數(shù)據(jù)庫名,不能通過修改參數(shù)文件中的db_domain參數(shù)來進行修改。
決定是否強制執(zhí)行全局數(shù)據(jù)庫名
在本地數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)鏈路指定名稱時會根據(jù)是否強制執(zhí)行全局數(shù)據(jù)庫名來生成鏈路名。如果本地數(shù)據(jù)庫強制執(zhí)行全局數(shù)據(jù)庫名,那么你必須像使用遠程數(shù)據(jù)庫全局數(shù)據(jù)庫名作為數(shù)據(jù)鏈路名。例如,如果連接到本地數(shù)據(jù)庫hq,并且想創(chuàng)建一個連接到遠程數(shù)據(jù)庫的mfg的數(shù)據(jù)鏈路,并且本地數(shù)據(jù)庫強制執(zhí)行全局數(shù)據(jù)庫名,那么必須使用mfg全局數(shù)據(jù)庫名作為鏈路名。
在創(chuàng)建數(shù)據(jù)鏈路時也可以使用服務名作為數(shù)據(jù)庫鏈路名的一部分。例如,如果使用服務名sn1和sn2來連接數(shù)據(jù)庫hq.example.com,并且全局數(shù)據(jù)庫名被強制執(zhí)行時,那么可以對數(shù)據(jù)庫hq創(chuàng)建以下鏈路名:
hq.example.com@sn1
hq.example.com@sn2
為了判斷數(shù)據(jù)庫是否啟用了全局數(shù)據(jù)庫名,可以檢查數(shù)據(jù)庫初始化參數(shù)文件或查詢v$parameter視圖。例如,為了查看對數(shù)據(jù)庫mfg是否強制執(zhí)行全局數(shù)據(jù)庫名,可以執(zhí)行以下語句來進行查詢:
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
查看全局數(shù)據(jù)庫名
可以查詢視圖global_name來查看全局數(shù)據(jù)庫名
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JYPDB
修改全局數(shù)據(jù)庫名中的域名
可以使用alter database語句來改變全局數(shù)據(jù)庫名中的域名。在數(shù)據(jù)庫創(chuàng)建之后,修改db_domain參數(shù)不會影響全局數(shù)據(jù)庫名或數(shù)據(jù)庫鏈路名。下面的例子顯示重命名全局數(shù)據(jù)庫名的語句,database是數(shù)據(jù)庫名,domain是網(wǎng)絡域名:
alter database rename global_name to database.domain;
修改全局數(shù)據(jù)庫名的操作如下:
1.判斷當前的全局數(shù)據(jù)庫名:
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY
2.執(zhí)行alter database語句來修改全局數(shù)據(jù)庫名
SQL> alter database rename global_name to jy.jydba.net; Database altered.
3.查詢視圖global_name來檢查新的全局數(shù)據(jù)庫
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.JYDBA.NET
4.修改全局數(shù)據(jù)庫名中的域名
使用alter database語句來修改全避數(shù)據(jù)庫名中的域名。在數(shù)據(jù)庫創(chuàng)建之后,修改初始化參數(shù)db_domain不會影響全局數(shù)據(jù)庫名或對數(shù)據(jù)庫鏈路名的解析。下面的例子顯示了修改全局數(shù)據(jù)庫名的語法,database是數(shù)據(jù)庫名,domain是網(wǎng)絡域名:
alter database rename global_name to database.domain;
使用下面的過程來修改全局數(shù)據(jù)庫名中的域名:
1.判斷當前全局數(shù)據(jù)庫名。
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.JYDBA.NET
2.使用alter database語句來修改全局數(shù)據(jù)庫名
SQL> alter database rename global_name to jy.changde.net; Database altered
3.查詢global_name表來檢查新的全局數(shù)據(jù)庫名
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.CHANGDE.NET
下面將介紹修改全局數(shù)據(jù)庫名的場景
在這種情況下,可以修改本地數(shù)據(jù)庫的全局數(shù)據(jù)庫名中的域名部分。也可以使用全局名來創(chuàng)建數(shù)據(jù)鏈路來測試數(shù)據(jù)庫是如何解析鏈路名的。
1.連接到jy.jydba.net并查詢global_name數(shù)據(jù)字典視圖來判斷當前的數(shù)據(jù)為全局名:
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.JYDBA.NET
2.查詢v$parameter視圖來判斷db_domain參數(shù)的當前值
SQL> select name, value from v$parameter where name = 'db_domain'; NAME VALUE ------------------------------- ---------------- db_domain
3.創(chuàng)建一個連接到數(shù)據(jù)庫sjjh的數(shù)據(jù)鏈路,保指定全局名的一部分:
SQL> create database link dblink_test using 'sjjh'; Database link created
數(shù)據(jù)庫會通過將本地數(shù)據(jù)庫的全局數(shù)據(jù)庫名中的域名部分增加到數(shù)據(jù)鏈路的全局名中
4.查詢user_db_links來判斷數(shù)據(jù)鏈路的域名
SQL> select db_link from user_db_links; DB_LINK -------------------------------------------------------------------------------- DBLINK_TEST.JYDBA.NET
查詢結果顯示,本地數(shù)據(jù)庫的全局名中的域名jydba.net被用來作為數(shù)據(jù)鏈路的域名
5.因為要將數(shù)據(jù)庫jy移到changde.net這個域中,所以執(zhí)行以下操作
SQL> alter database rename global_name to jy.changde.net; Database altered SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.CHANGDE.NET
6.查詢v$parameter發(fā)現(xiàn)db_domain參數(shù)并沒有修改
SQL> select name, value from v$parameter where name = 'db_domain'; NAME VALUE ------------------------------- ---------------- db_domain
這也就說明了db_domain參數(shù)是獨立于alter database rename global_name語句的。alter database語句決定了全局數(shù)據(jù)庫名中的域名。
7.可以創(chuàng)建另一個數(shù)據(jù)鏈路來連接數(shù)據(jù)庫sjjh,并查詢user_db_links來查看數(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ù)鏈路的域名,是使用當前本地數(shù)據(jù)庫全局數(shù)據(jù)庫名中的域名。
看完上述內容,你們對如何理解Oracle分布式系統(tǒng)中的全局數(shù)據(jù)庫名有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。