中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Oracle分布式系統中的全局數據庫名

發布時間:2021-11-12 15:21:25 來源:億速云 閱讀:316 作者:柒染 欄目:關系型數據庫

今天就跟大家聊聊有關如何理解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

可以看到新創建的數據鏈路的域名,是使用當前本地數據庫全局數據庫名中的域名。

看完上述內容,你們對如何理解Oracle分布式系統中的全局數據庫名有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

晋江市| 基隆市| 和田县| 江陵县| 荔波县| 保康县| 深州市| 抚宁县| 廉江市| 绿春县| 东阳市| 盐边县| 沁水县| 辰溪县| 榆社县| 本溪市| 石门县| 广河县| 郧西县| 茂名市| 屏山县| 大城县| 罗定市| 邓州市| 林西县| 特克斯县| 云霄县| 开化县| 江城| 开原市| 庆城县| 大港区| 黑河市| 南平市| 芦溪县| 太谷县| 石门县| 昂仁县| 馆陶县| 浦北县| 靖西县|