❶ oracle中全局資料庫與sid有什麼區別 另外實例與實體有什麼區別 講得明白就好!
下面是我的理解:
全局資料庫名是服務名,而sid可以理解為是為一個服務名取的別名,一般情況下二者是相同的,
sid可以在tnsname.ora總隨便改,不過格式得正確哈!
實例:一個資料庫上可以建很多實例,每個實例就是一個服務,一般都這樣說,在那個伺服器上的某某實例即指對應的這個服務。
實體:一般是在建模的時候才有這個概念,它是個抽象的,實體進一步實現就變成我們所為的表
❷ oracle中的全局資料庫名稱和sid的區別
oracle中的全局資料庫名稱和sid的區別
資料庫實例名是用於和操作系統進行聯系的標識,就是說資料庫和操作系統之間的交互用的是資料庫實例名。實例名也被寫入參數文件中,該參數為instance_name,在winnt平台中,實例名同時也被寫入注冊表。
資料庫名和實例名可以相同也可以不同。
在一般情況下,資料庫名和實例名是一對一的關系,但如果在oracle並行伺服器架構(即oracle實時應用集群)中,資料庫名和實例名是一對多的關系。
❸ 為什麼我總是區分不了oracle資料庫的幾個名詞,誰能詳細幫我解釋下。全局資料庫名,SID,以及服務名。
全局資料庫名是安裝的時候生成的 在用dblink的時候能用到
SID是全局參數 用來唯一標示資料庫 ,默認是orcl,同一個伺服器安裝多個oracle伺服器就是用這個區分
服務名是指機器名 就是IP
❹ oracle資料庫中sid是什麼意思
SID是System IDentifier的縮寫,而ORACLE_SID就是Oracle System Identifier的縮寫,在Oracle系統中,ORACLE_SID以環境變數的形式出現,在特定版本的Oracle軟體安裝(也就是ORACLE_HOME)下,當Oracle實例啟動時,操作系統上fork的進程必須通過這個SID將實例與其他實例區分開來,這就是SID的作用。
Oracle的sid在不同的系統環境下,查看方式不相同,方法分別如下:
1、windows 下查看注冊表
開始 輸入regedit 查看
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1\ORACLE_SID就是
2、linux或者unix下可以
echo $ORACLE_SID
注意:ORACLE_SID要大寫
3、在sql命令下可以查看
連接後查詢:
SQL> select instance_name from v$instance;
❺ oracle資料庫中SID到底什麼意思怎麼用
SID的意思是oracle資料庫的唯一標識符是你在建立一個資料庫時系統自動賦予的一個初始ID。
SID主要用於在一些DBA操作以及與操作系統交互,從操作系統的角度訪問實例名,必須通過ORACLE SID,且它在注冊表中也是存在的。
❻ Oracle資料庫中什麼是全局資料庫名什麼是SID 。。有沒有好的解釋
資料庫名、實例名、資料庫域名、全局資料庫名、服務名 ,
這是幾個令很多初學者容易混淆的概念。相信很多初學者都與我一樣被標題上這些個概念搞得一頭霧水。我們現在就來把它們弄個明白。
一、資料庫名
什麼是資料庫名?
資料庫名就是一個資料庫的標識,就像人的身份證號一樣。他用參數DB_NAME表示,如果一台機器上裝了多全資料庫,那麼每一個資料庫都有一個資料庫名。在資料庫安裝或創建完成之後,參數DB_NAME被寫入參數文件之中。格式如下:
DB_NAME=myorcl
...
在創建資料庫時就應考慮好資料庫名,並且在創建完資料庫之後,資料庫名不宜修改,即使要修改也會很麻煩。因為,資料庫名還被寫入控制文件中,控制文件是以二進制型式存儲的,用戶無法修改控制文件的內容。假設用戶修改了參數文件中的資料庫名,即修改DB_NAME的值。但是在Oracle啟動時,由於參數文件中的DB_NAME與控制文件中的資料庫名不一致,導致資料庫啟動失敗,將返回ORA-01103錯誤。
資料庫名的作用
資料庫名是在安裝資料庫、創建新的資料庫、創建資料庫控制文件、修改數據結構、備份與恢復資料庫時都需要使用到的。
有很多Oracle安裝文件目錄是與資料庫名相關的,如:
winnt: d:\oracle\proct\10.1.0\oradata\DB_NAME\...
Unix: /home/app/oracle/proct/10.1.0/oradata/DB_NAME/...
pfile:
winnt: d:\oracle\proct\10.1.0\admin\DB_NAME\pfile\ini.ora
Unix: /home/app/oracle/proct/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora
跟蹤文件目錄:
winnt: /home/app/oracle/proct/10.1.0/admin/DB_NAME/bmp/...
另外,在創建數據時,careate database命令中的資料庫名也要與參數文件中DB_NAME參數的值一致,否則將產生錯誤。
同樣,修改資料庫結構的語句alter database, 當然也要指出要修改的資料庫的名稱。
如果控制文件損壞或丟失,資料庫將不能載入,這時要重新創建控制文件,方法是以nomount方式啟動實例,然後以create controlfile命令創建控制文件,當然這個命令中也是指指DB_NAME。
還有在備份或恢復資料庫時,都需要用到資料庫名。
總之,資料庫名很重要,要准確理解它的作用。
查詢當前數據名
方法一:select name from v$database;
方法二:show parameter db
方法三:查看參數文件。
修改資料庫名
前面建議:應在創建資料庫時就確定好資料庫名,資料庫名不應作修改,因為修改資料庫名是一件比較復雜的事情。那麼現在就來說明一下,如何在已創建數據之後,修改資料庫名。步驟如下:
1.關閉資料庫。
2.修改資料庫參數文件中的DB_NAME參數的值為新的資料庫名。
3.以NOMOUNT方式啟動實例,修建控制文件(有關創建控制文件的命令語法,請參考oracle文檔)
二、資料庫實例名
什麼是資料庫實例名?
資料庫實例名是用於和操作系統進行聯系的標識,就是說資料庫和操作系統之間的交互用的是資料庫實例名。實例名也被寫入參數文件中,該參數為instance_name,在winnt平台中,實例名同時也被寫入注冊表。
資料庫名和實例名可以相同也可以不同。
在一般情況下,資料庫名和實例名是一對一的關系,但如果在oracle並行伺服器架構(即oracle實時應用集群)中,資料庫名和實例名是一對多的關系。這一點在第一篇中已有圖例說明。
查詢當前資料庫實例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在參數文件中查詢。
資料庫實例名與ORACLE_SID
雖然兩者都表是oracle實例,但兩者是有區別的。instance_name是oracle資料庫參數。而ORACLE_SID是操作系統的環境變數。 ORACLD_SID用於與操作系統交互,也就是說,從操作系統的角度訪問實例名,必須通過ORACLE_SID。在winnt不台, ORACLE_SID還需存在於注冊表中。
且ORACLE_SID必須與instance_name的值一致,否則,你將會收到一個錯誤,在unix平台,是「ORACLE not available」,在winnt平台,是「TNS:協議適配器錯誤」。
資料庫實例名與網路連接
資料庫實例名除了與操作系統交互外,還用於網路連接的oracle伺服器標識。當你配置oracle主機連接串的時候,就需要指定實例名。當然8i以後版本的網路組件要求使用的是服務名SERVICE_NAME。這個概念接下來說明 。
三、資料庫域名
什麼是資料庫域名?
在分布工資料庫系統中,不同版本的資料庫伺服器之間,不論運行的操作系統是unix或是windows,各伺服器之間都可以通過資料庫鏈路進行遠程復制,資料庫域名主要用於oracle分布式環境中的復制。舉例說明如:
全國交通運政系統的分布式資料庫,其中:
福建節點: fj.jtyz
福建廈門節點: xm.fj.jtyz
江西: jx.jtyz
江西上饒:sr.jx.jtyz
這就是資料庫域名。
資料庫域名在存在於參數文件中,他的參數是db_domain.
查詢資料庫域名
方法一:select value from v$parameter where name = 'db_domain';
方法二:show parameter domain
方法三:在參數文件中查詢。
全局資料庫名
全局資料庫名=資料庫名+資料庫域名,如前述福建節點的全局資料庫名是:oradb.fj.jtyz
四、資料庫服務名
什麼是資料庫服務名?
從oracle9i版本開始,引入了一個新的參數,即資料庫服務名。參數名是SERVICE_NAME。
如果資料庫有域名,則資料庫服務名就是全局資料庫名;否則,資料庫服務名與資料庫名相同。
查詢資料庫服務名
方法一:select value from v$parameter where name = 'service_name';
方法二:show parameter service_name
方法三:在參數文件中查詢。
資料庫服務名與網路連接
從oracle8i開如的oracle網路組件,資料庫與客戶端的連接主機串使用資料庫服務名。之前用的是ORACLE_SID,即資料庫實例名
創建Oracle資料庫(以Oracle10g為例)
有兩種創建資料庫的方式,一種是以命令行腳本方式,即手動方式創建;另一種是利用Oracle提供的資料庫配置向導來創建。本篇主要介紹在Unix和Windows下以命令行腳本方式創建Oracle資料庫。
一個完整的資料庫系統,應包括一個物理結構、一個邏輯結構、一個內存結構和一個進程結構,如果要創建一個新的資料庫,則這些結構都必須完整的建立起來
❼ oracle中全局資料庫名和SID的區別
全局資料庫名:是將資料庫與任何其他資料庫唯一標識出來的資料庫全稱。全局資料庫名的格式為<database_name>.<database_domain>。例如,student.cs.hubu是一個典型的全局資料庫名。資料庫名部分(如student)是資料庫的簡單名稱,資料庫域部分(如cs.hubu)指定資料庫所在的域,它通常和企業內的網路域相同。全局資料庫名的資料庫名部分不能超過8個字元,並且只能包含字母、數字字元和句點(.)字元。
SID(System Identifier,系統標識符):用來標識Oracle資料庫的特定常式。對於任何一個資料庫,都至少有一個引用資料庫的常式。SID可以是未被此計算機上其他常式使用的任何名稱。SID是Oracle資料庫常式的唯一標識符,最多隻能有8個字母、數字字元。每個資料庫常式對應一個SID和一系列資料庫文件。例如,當創建SID為XXX的資料庫時,將同時創建資料庫常式及其資料庫文件(初始化參數文件、控制文件、重做日誌文件和數據文件)。
❽ linux oracle 中的global database和sid的區別
全局資料庫名(global_name):資料庫的另一個名稱。由global_name視圖所顯示。典型格式是資料庫名+域名。但這里要注意的是這個名字是獨立的。並不依賴於其它參數。另外要注意的一點是,當global_names參數設置為true的時候(默認是true),資料庫通過庫鏈(database link)引用其它資料庫時,database的選項中必須填入對方資料庫的全局資料庫名.
實例名(SID):實例名指的是用於響應某個資料庫操作的資料庫管理系統的名稱。它同時也叫sid。實例名是由初始化參數文件的參數instance_name決定的。如果這個參數不被指定(即instance_name沒有被指定為任何值),那麼實例的名字由該用戶的環境變數ORACLE_SID(注意這里是大寫)決定。在windows平台下,則是注冊表中oracle_sid值決定。