Oracle分散式系統中的全域性資料庫名
在分散式系統中,每個資料庫都有一個唯一的全域性資料庫名。全域性資料庫名能唯一標識系統中的一個資料庫。在分散式系統中一個主要的任務就是建立與管理全域性資料庫名。
1.全域性資料庫名的組成
一個全域性資料庫名由兩部分組成:一個資料庫名與一個域名。在資料庫建立時資料庫名與域名是由以下引數來決定的。
資料庫名:db_name 小於等於30個字元,例如sales
域名: db_domain 必須遵守標準網際網路規則。域名中的級別必須透過點號進行分隔並且域名的順序是從葉子到根,從左到右。
db_domain引數只是在資料庫建立時被使用的一個很重要的引數,它與db_name引數一起來決定全域性資料庫名。全域性資料庫名是被儲存在資料字典中。必須透過alter database語句來改變全域性資料庫名,不能透過修改引數檔案中的db_domain引數來進行修改。
決定是否強制執行全域性資料庫名
在本地資料庫中建立資料鏈路指定名稱時會根據是否強制執行全域性資料庫名來生成鏈路名。如果本地資料庫強制執行全域性資料庫名,那麼你必須像使用遠端資料庫全域性資料庫名作為資料鏈路名。例如,如果連線到本地資料庫hq,並且想建立一個連線到遠端資料庫的mfg的資料鏈路,並且本地資料庫強制執行全域性資料庫名,那麼必須使用mfg全域性資料庫名作為鏈路名。
在建立資料鏈路時也可以使用服務名作為資料庫鏈路名的一部分。例如,如果使用服務名sn1和sn2來連線資料庫hq.example.com,並且全域性資料庫名被強制執行時,那麼可以對資料庫hq建立以下鏈路名:
hq.example.com@sn1
hq.example.com@sn2
為了判斷資料庫是否啟用了全域性資料庫名,可以檢查資料庫初始化引數檔案或查詢v$parameter檢視。例如,為了檢視對資料庫mfg是否強制執行全域性資料庫名,可以執行以下語句來進行查詢:
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
檢視全域性資料庫名
可以查詢檢視global_name來檢視全域性資料庫名
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JYPDB
修改全域性資料庫名中的域名
可以使用alter database語句來改變全域性資料庫名中的域名。在資料庫建立之後,修改db_domain引數不會影響全域性資料庫名或資料庫鏈路名。下面的例子顯示重新命名全域性資料庫名的語句,database是資料庫名,domain是網路域名:
alter database rename global_name to database.domain;
修改全域性資料庫名的操作如下:
1.判斷當前的全域性資料庫名:
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY
2.執行alter database語句來修改全域性資料庫名
SQL> alter database rename global_name to jy.jydba.net; Database altered.
3.查詢檢視global_name來檢查新的全域性資料庫
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.JYDBA.NET
4.修改全域性資料庫名中的域名
使用alter database語句來修改全避資料庫名中的域名。在資料庫建立之後,修改初始化引數db_domain不會影響全域性資料庫名或對資料庫鏈路名的解析。下面的例子顯示了修改全域性資料庫名的語法,database是資料庫名,domain是網路域名:
alter database rename global_name to database.domain;
使用下面的過程來修改全域性資料庫名中的域名:
1.判斷當前全域性資料庫名。
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.JYDBA.NET
2.使用alter database語句來修改全域性資料庫名
SQL> alter database rename global_name to jy.changde.net; Database altered
3.查詢global_name表來檢查新的全域性資料庫名
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.CHANGDE.NET
下面將介紹修改全域性資料庫名的場景
在這種情況下,可以修改本地資料庫的全域性資料庫名中的域名部分。也可以使用全域性名來建立資料鏈路來測試資料庫是如何解析鏈路名的。
1.連線到jy.jydba.net並查詢global_name資料字典檢視來判斷當前的資料為全域性名:
SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- JY.JYDBA.NET
2.查詢v$parameter檢視來判斷db_domain引數的當前值
SQL> select name, value from v$parameter where name = 'db_domain'; NAME VALUE ------------------------------- ---------------- db_domain
3.建立一個連線到資料庫sjjh的資料鏈路,保指定全域性名的一部分:
SQL> create database link dblink_test using 'sjjh'; Database link created
資料庫會透過將本地資料庫的全域性資料庫名中的域名部分增加到資料鏈路的全域性名中
4.查詢user_db_links來判斷資料鏈路的域名
SQL> select db_link from user_db_links; DB_LINK -------------------------------------------------------------------------------- DBLINK_TEST.JYDBA.NET
查詢結果顯示,本地資料庫的全域性名中的域名jydba.net被用來作為資料鏈路的域名
5.因為要將資料庫jy移到changde.net這個域中,所以執行以下操作
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發現db_domain引數並沒有修改
SQL> select name, value from v$parameter where name = 'db_domain'; NAME VALUE ------------------------------- ---------------- db_domain
這也就說明了db_domain引數是獨立於alter database rename global_name語句的。alter database語句決定了全域性資料庫名中的域名。
7.可以建立另一個資料鏈路來連線資料庫sjjh,並查詢user_db_links來檢視資料鏈路中的域名
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
可以看到新建立的資料鏈路的域名,是使用當前本地資料庫全域性資料庫名中的域名。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2143004/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 二、修改資料庫全域性名稱資料庫
- 資料庫名、例項名、資料庫域名、全域性資料庫名、服務名概念區分資料庫
- 2.6.2 確定全域性資料庫名稱資料庫
- 分散式資料庫系統(DDBS) 概述分散式資料庫
- 【全域性資料庫名、連線描述符】資料庫
- Oracle全域性資料庫名、環境變數和sid的區別Oracle資料庫變數
- 分散式資料倉儲中,全域性和區域性資料倉儲有何區別?分散式
- 分散式資料物件:超級終端的"全域性變數"分散式物件變數
- Oracle資料庫系統的安全性(轉)Oracle資料庫
- 【系統設計】分散式鍵值資料庫分散式資料庫
- “熱搜”中的分散式資料庫分散式資料庫
- [Oracle]分散式系統的資料複製技術(轉)Oracle分散式
- 分散式系統2:分散式系統中的時鐘分散式
- 【大資料】BigTable分散式資料儲存系統分散式資料庫 | 複習筆記大資料分散式資料庫筆記
- 分散式全域性唯一ID分散式
- Oracle資料庫系統中的引數Oracle資料庫
- Oracle資料庫中的系統引數Oracle資料庫
- 聊聊Oracle的分散式資料庫技術Oracle分散式資料庫
- oracle資料庫系統運維的重要性Oracle資料庫運維
- 分散式系統技術:儲存之資料庫分散式資料庫
- 分散式系統中的資料儲存方案實踐分散式
- 什麼是分散式系統中的冪等性分散式
- 資料庫應用系統中的資料庫完整性(上)KP資料庫
- Oracle資料庫系統中的引數(續)Oracle資料庫
- 概述Oracle中的資料庫名---轉載Oracle資料庫
- 分散式全域性ID生成方案分散式
- Oracle 資料庫分散式技術的探討Oracle資料庫分散式
- 分散式架構篇 | 如何在分散式架構下完美實現“全域性資料一致性”?分散式架構
- 破解分散式資料庫全域性死鎖難題 GBase 8c引領資料庫領域變革分散式資料庫
- 詳解 Oracle 分散式系統資料複製技術Oracle分散式
- oracle架構之系統全域性區Oracle架構
- Calvin:分割槽資料庫系統的快速分散式事務資料庫分散式
- MyCat 啟蒙:分散式系統的資料庫架構演變分散式資料庫架構
- 分散式資料庫分散式資料庫
- 圖資料庫中的“分散式”和“切圖”資料庫分散式
- 分散式系統全域性唯一Id(SnowFlake)雪花演算法實現分散式演算法
- 圖資料庫中的“分散式”和“資料切分”(切圖)資料庫分散式
- Zookeeper 如何保證分散式系統資料一致性分散式