資源描述:
《oracle各種變量解析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)據(jù)庫實例、服務(wù)名數(shù)據(jù)庫名、實例名、數(shù)據(jù)庫域名、全局數(shù)據(jù)庫名、服務(wù)名這是幾個令很多初學(xué)者容易混淆的概念。相信很多初學(xué)者都與我一樣被標題上這些個概念搞得一頭霧水。我們現(xiàn)在就來把它們弄個明白。?一、數(shù)據(jù)庫名什么是數(shù)據(jù)庫名?數(shù)據(jù)庫名就是一個數(shù)據(jù)庫的標識,就像人的身份證號一樣。他用參數(shù)DB_NAME表示,如果一臺機器上裝了多全數(shù)據(jù)庫,那么每一個數(shù)據(jù)庫都有一個數(shù)據(jù)庫名。在數(shù)據(jù)庫安裝或創(chuàng)建完成之后,參數(shù)DB_NAME被寫入?yún)?shù)文件之中。格式如下:DB_NAME=myorcl...在創(chuàng)建數(shù)據(jù)庫時就應(yīng)考慮好數(shù)據(jù)庫名,并且在創(chuàng)建完數(shù)據(jù)庫之后,數(shù)據(jù)庫名不宜修改,即使要修改也
2、會很麻煩。因為,數(shù)據(jù)庫名還被寫入控制文件中,控制文件是以二進制型式存儲的,用戶無法修改控制文件的內(nèi)容。假設(shè)用戶修改了參數(shù)文件中的數(shù)據(jù)庫名,即修改DB_NAME的值。但是在Oracle啟動時,由于參數(shù)文件中的DB_NAME與控制文件中的數(shù)據(jù)庫名不一致,導(dǎo)致數(shù)據(jù)庫啟動失敗,將返回ORA-01103錯誤。?數(shù)據(jù)庫名的作用數(shù)據(jù)庫名是在安裝數(shù)據(jù)庫、創(chuàng)建新的數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)庫控制文件、修改數(shù)據(jù)結(jié)構(gòu)、備份與恢復(fù)數(shù)據(jù)庫時都需要使用到的。有很多Oracle安裝文件目錄是與數(shù)據(jù)庫名相關(guān)的,如:winnt:d:/oracle/product/10.1.0/oradata/DB
3、_NAME/...Unix:/home/app/oracle/product/10.1.0/oradata/DB_NAME/...pfile:winnt:d:/oracle/product/10.1.0/admin/DB_NAME/pfile/ini.oraUnix:/home/app/oracle/product/10.1.0/admin/DB_NAME/pfile/init$ORACLE_SID.ora跟蹤文件目錄:winnt:/home/app/oracle/product/10.1.0/admin/DB_NAME/bdump/...另外,在創(chuàng)建數(shù)
4、據(jù)時,careatedatabase命令中的數(shù)據(jù)庫名也要與參數(shù)文件中DB_NAME參數(shù)的值一致,否則將產(chǎn)生錯誤。同樣,修改數(shù)據(jù)庫結(jié)構(gòu)的語句alterdatabase,當然也要指出要修改的數(shù)據(jù)庫的名稱。如果控制文件損壞或丟失,數(shù)據(jù)庫將不能加載,這時要重新創(chuàng)建控制文件,方法是以nomount方式啟動實例,然后以createcontrolfile命令創(chuàng)建控制文件,當然這個命令中也是指指DB_NAME。還有在備份或恢復(fù)數(shù)據(jù)庫時,都需要用到數(shù)據(jù)庫名。總之,數(shù)據(jù)庫名很重要,要準確理解它的作用。?查詢當前數(shù)據(jù)名方法一:selectnamefromv$database;
5、方法二:showparameterdb方法三:查看參數(shù)文件。?修改數(shù)據(jù)庫名前面建議:應(yīng)在創(chuàng)建數(shù)據(jù)庫時就確定好數(shù)據(jù)庫名,數(shù)據(jù)庫名不應(yīng)作修改,因為修改數(shù)據(jù)庫名是一件比較復(fù)雜的事情。那么現(xiàn)在就來說明一下,如何在已創(chuàng)建數(shù)據(jù)之后,修改數(shù)據(jù)庫名。步驟如下:1.關(guān)閉數(shù)據(jù)庫。2.修改數(shù)據(jù)庫參數(shù)文件中的DB_NAME參數(shù)的值為新的數(shù)據(jù)庫名。3.以NOMOUNT方式啟動實例,修建控制文件(有關(guān)創(chuàng)建控制文件的命令語法,請參考oracle文檔)?二、數(shù)據(jù)庫實例名什么是數(shù)據(jù)庫實例名?數(shù)據(jù)庫實例名是用于和操作系統(tǒng)進行聯(lián)系的標識,就是說數(shù)據(jù)庫和操作系統(tǒng)之間的交互用的是數(shù)據(jù)庫實例名。實
6、例名也被寫入?yún)?shù)文件中,該參數(shù)為instance_name,在winnt平臺中,實例名同時也被寫入注冊表。數(shù)據(jù)庫名和實例名可以相同也可以不同。在一般情況下,數(shù)據(jù)庫名和實例名是一對一的關(guān)系,但如果在oracle并行服務(wù)器架構(gòu)(即oracle實時應(yīng)用集群)中,數(shù)據(jù)庫名和實例名是一對多的關(guān)系。這一點在第一篇中已有圖例說明。?查詢當前數(shù)據(jù)庫實例名方法一:selectinstance_namefromv$instance;方法二:showparameterinstance方法三:在參數(shù)文件中查詢。?數(shù)據(jù)庫實例名與ORACLE_SID雖然兩者都表是oracle實例,
7、但兩者是有區(qū)別的。instance_name是oracle數(shù)據(jù)庫參數(shù)。而ORACLE_SID是操作系統(tǒng)的環(huán)境變量。ORACLD_SID用于與操作系統(tǒng)交互,也就是說,從操作系統(tǒng)的角度訪問實例名,必須通過ORACLE_SID。在winnt不臺,ORACLE_SID還需存在于注冊表中。且ORACLE_SID必須與instance_name的值一致,否則,你將會收到一個錯誤,在unix平臺,是“ORACLEnotavailable”,在winnt平臺,是“TNS:協(xié)議適配器錯誤”。數(shù)據(jù)庫實例名與網(wǎng)絡(luò)連接數(shù)據(jù)庫實例名除了與操作系統(tǒng)交互外,還用于網(wǎng)絡(luò)連接的oracl
8、e服務(wù)器標識。當你配置oracle主機連接串的時候,就需要指定實例名。當然8i以