亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 數據庫 > 
  • ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname

發布時間:2020-07-30 14:39:01 來源:網絡 閱讀:947 作者:hbxztc 欄目:數據庫

Oracle中有很多與名字相關的參數,有時會讓人覺得迷惑,這個參數都有什么作用,它們之間的區別又是什么呢?

下面我們先來看一看都有哪些參數與名字相關

  • 參數文件中有db_name,instance_name,service_names,db_unique_name

  • 環境變量中有oracle_sid

  • 在listener.ora中有sid_name,global_dbname(靜態注冊的情況下)

  • 在tnsnames.ora中有service_name,sid

它們各有什么含義呢,我們來一一介紹:

db_name:

       對一個數據庫(Oracle database)的唯一標識,這種表示對于單個數據庫時足夠的,但是對于分布

式數據庫,可能存在各個數據庫的名字可能一樣,db_domian也就是為了解決這一問題,這樣數據庫的 標識是由db_name和db_domain兩個參數共同決定。類似于互聯網上的機器名管理,用db_name.db_domain來表示一個數據庫,并將該數據庫的名稱稱為global_name。db_name只能由字母/數字,'_','#','$'組成,而且最多8個字符。

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname

DB_UNIQUE_NAME:

和db_name不一樣的作用,用于指定數據庫的全局唯一名,比如DG中的物理備庫與主庫有相同的db_name和db_domain。需要用db_unique_name來進行區別。可以設置30個字符,大小寫不敏感,由字母/數字,'_','#','$'組成。DB_UNQUIE_NAME的會影響到Service_names,也會影響到動態監聽的時候的service_name。

instance_name:

實例唯一標識符,如RAC環境,存在多實例情況下,用instance_name區別每個實例。用來設置在動態監聽中注冊的instance_name,對應的如果在tnsnames.ora中使用SID連接時,需要與之做對應。

未修改instance參數前,如下圖所示

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname修改instance_name參數后:

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname兩張圖對比可以知道,instance_name在注冊監聽時起到指定名字的作用。

此外一些包含instance_name或inst_name列的動態性能視圖是從環境變量ORACLE_SID(而不是這個參數)來推斷的。

service_names:

用于設置在監聽中注冊的服務名。對應的做tnsnames.ora中如果使用SERVICE_NAME連接時需要與之對應。

修改service_names之前,service_names與監聽中的service一致:

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname修改service_names后,監聽中多出了設置的service名:

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname使用新設置的服務名也可以連接到數據庫:

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname

oracle_sid:

實例標識符,以環境變量形式存在,同時用于對應共享內存段.Oracle實例是由SGA和一組后臺進程組成的,實例的創建和啟動需要一個參數文件,而參數文件的名稱就是由ORACLE_SID決定的。對于init文件,缺省的文件名稱是init<ORACLE_SID>.ora,對于spfile文件,缺省的文件名稱是spfile<ORACLE_SID>.ora。設置不同的ORACLE_SID值,就可以默認使用不同的參數文件啟動不同的數據庫實例。

也就是說ORACLE_SID決定本地啟動的數據庫實例的實例名,只要有對應的init<ORACLE_SID>.ora或spfile<ORACLE_SID>.ora就可以啟動,也可以在startup中指定pfile啟動都是可以的,只要參數文件中設置的其他參數可以啟動一個數據庫就行。

正常情況下ORACLE_SID=test,啟動數據庫如下圖,生成的進程以test標識。

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname關閉數據庫,修改ORACLE_SID=mydb,同樣可以啟動數據庫,不過需要手動指定參數文件,生成的進程以mydb標識。

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname即使進程都是與mydb相關,但數據庫名字和監聽的配置仍然為test

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname

對應動態性能視圖里的instance_name和inst_name也發生了變化:

ORACLE中的db_name,service_names,instance_name,oracle_sid,global_dbname

tnsnames.ora中的service_name和sid:

tnsnames.ora中的service_name和sid分別要連接的遠程數據庫在監聽中注冊的service和instance相對應。

test =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.2)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = test)
    )
  )
  
test =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.2)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
  )

listener.ora中的sid_name和global_dbname:

這兩個參數用于使用靜態注冊監聽時識別為哪個實例靜態注冊。

SID_LIST_LISTENER=
  (SID_LIST=
    (SID_DESC=
      (GLOBAL_DBNAME=orcl)
      (ORACLE_HOME=/u02/app/oracle/product/11.2.4/db1)
      (SID_NAME=orcl)))

以上內容為我自己的整理與總結,有不對的地方還請大神指點。


參考:http://blog.sina.com.cn/s/blog_616b428f0100iwro.html


向AI問一下細節

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

AI

平山县| 洛南县| 顺义区| 平陆县| 阳信县| 东宁县| 新干县| 从江县| 城口县| 岚皋县| 黄龙县| 绵竹市| 永丰县| 荃湾区| 化德县| 探索| 合川市| 宜都市| 浦城县| 桃园县| 高雄县| 磴口县| 驻马店市| 安庆市| 攀枝花市| 康平县| 霍州市| 宁明县| 绵竹市| 东源县| 深泽县| 辽源市| 玛纳斯县| 呼玛县| 荥阳市| 定安县| 正蓝旗| 靖江市| 霞浦县| 夏河县| 新密市|