成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Oracle全局?jǐn)?shù)據(jù)庫(kù)名、環(huán)境變量和sid的區(qū)別

瀏覽:27日期:2023-11-23 14:18:18

一、數(shù)據(jù)庫(kù)名

什么是數(shù)據(jù)庫(kù)名

數(shù)據(jù)庫(kù)名就是一個(gè)數(shù)據(jù)庫(kù)的標(biāo)識(shí),就像人的身份證號(hào)一樣。他用參數(shù)DB_NAME表示,如果一臺(tái)機(jī)器上裝了多全數(shù)據(jù)庫(kù),那么每一個(gè)數(shù)據(jù)庫(kù)都有一個(gè)數(shù)據(jù)庫(kù)名。在數(shù)據(jù)庫(kù)安裝或創(chuàng)建完成之后,參數(shù)DB_NAME被寫入?yún)?shù)文件之中。格式如下:

DB_NAME=myorcl

...

在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)就應(yīng)考慮好數(shù)據(jù)庫(kù)名,并且在創(chuàng)建完數(shù)據(jù)庫(kù)之后,數(shù)據(jù)庫(kù)名不宜修改,即使要修改也會(huì)很麻煩。因?yàn)椋瑪?shù)據(jù)庫(kù)名還被寫入控制文件中,控制文件是以二進(jìn)制型式存儲(chǔ)的,用戶無(wú)法修改控制文件的內(nèi)容。假設(shè)用戶修改了參數(shù)文件中的數(shù)據(jù)庫(kù)名,即修改DB_NAME的值。但是在Oracle啟動(dòng)時(shí),由于參數(shù)文件中的DB_NAME與控制文件中的數(shù)據(jù)庫(kù)名不一致,導(dǎo)致數(shù)據(jù)庫(kù)啟動(dòng)失敗,將返回ORA-01103錯(cuò)誤。數(shù)據(jù)庫(kù)名的作用

數(shù)據(jù)庫(kù)名是在安裝數(shù)據(jù)庫(kù)、創(chuàng)建新的數(shù)據(jù)庫(kù)、創(chuàng)建數(shù)據(jù)庫(kù)控制文件、修改數(shù)據(jù)結(jié)構(gòu)、備份與恢復(fù)數(shù)據(jù)庫(kù)時(shí)都需要使用到的。

有很多Oracle安裝文件目錄是與數(shù)據(jù)庫(kù)名相關(guān)的,如:

winnt: d:oracleproduct10.1.0oradataDB_NAME...

Unix: /home/app/oracle/product/10.1.0/oradata/DB_NAME/...

pfile:

winnt: d:oracleproduct10.1.0adminDB_NAMEpfileini.ora

Unix: /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ù)據(jù)時(shí),careate database命令中的數(shù)據(jù)庫(kù)名也要與參數(shù)文件中DB_NAME參數(shù)的值一致,否則將產(chǎn)生錯(cuò)誤。

同樣,修改數(shù)據(jù)庫(kù)結(jié)構(gòu)的語(yǔ)句alter database,當(dāng)然也要指出要修改的數(shù)據(jù)庫(kù)的名稱。

如果控制文件損壞或丟失,數(shù)據(jù)庫(kù)將不能加載,這時(shí)要重新創(chuàng)建控制文件,方法是以nomount方式啟動(dòng)實(shí)例,然后以create controlfile命令創(chuàng)建控制文件,當(dāng)然這個(gè)命令中也是指指DB_NAME。

還有在備份或恢復(fù)數(shù)據(jù)庫(kù)時(shí),都需要用到數(shù)據(jù)庫(kù)名。

總之,數(shù)據(jù)庫(kù)名很重要,要準(zhǔn)確理解它的作用。查詢當(dāng)前數(shù)據(jù)名

方法一:select name from v$database;

方法二:show parameter db

方法三:查看參數(shù)文件。修改數(shù)據(jù)庫(kù)名

前面建議:應(yīng)在創(chuàng)建數(shù)據(jù)庫(kù)時(shí)就確定好數(shù)據(jù)庫(kù)名,數(shù)據(jù)庫(kù)名不應(yīng)作修改,因?yàn)樾薷臄?shù)據(jù)庫(kù)名是一件比較復(fù)雜的事情。那么現(xiàn)在就來(lái)說(shuō)明一下,如何在已創(chuàng)建數(shù)據(jù)之后,修改數(shù)據(jù)庫(kù)名。步驟如下:

1.關(guān)閉數(shù)據(jù)庫(kù)。

2.修改數(shù)據(jù)庫(kù)參數(shù)文件中的DB_NAME參數(shù)的值為新的數(shù)據(jù)庫(kù)名。

3.以NOMOUNT方式啟動(dòng)實(shí)例,修建控制文件(有關(guān)創(chuàng)建控制文件的命令語(yǔ)法,請(qǐng)參考o(jì)racle文檔)二、數(shù)據(jù)庫(kù)實(shí)例名

什么是數(shù)據(jù)庫(kù)實(shí)例名?

數(shù)據(jù)庫(kù)實(shí)例名是用于和操作系統(tǒng)進(jìn)行聯(lián)系的標(biāo)識(shí),就是說(shuō)數(shù)據(jù)庫(kù)和操作系統(tǒng)之間的交互用的是數(shù)據(jù)庫(kù)實(shí)例名。實(shí)例名也被寫入?yún)?shù)文件中,該參數(shù)為instance_name,在winnt平臺(tái)中,實(shí)例名同時(shí)也被寫入注冊(cè)表。

數(shù)據(jù)庫(kù)名和實(shí)例名可以相同也可以不同。

在一般情況下,數(shù)據(jù)庫(kù)名和實(shí)例名是一對(duì)一的關(guān)系,但如果在oracle并行服務(wù)器架構(gòu)(即oracle實(shí)時(shí)應(yīng)用集群)中,數(shù)據(jù)庫(kù)名和實(shí)例名是一對(duì)多的關(guān)系。這一點(diǎn)在第一篇中已有圖例說(shuō)明。查詢當(dāng)前數(shù)據(jù)庫(kù)實(shí)例名

方法一:select instance_name from v$instance;

方法二:show parameter instance

方法三:在參數(shù)文件中查詢。數(shù)據(jù)庫(kù)實(shí)例名與ORACLE_SID

雖然兩者都表是oracle實(shí)例,但兩者是有區(qū)別的。instance_name是oracle數(shù)據(jù)庫(kù)參數(shù)。而ORACLE_SID是操作系統(tǒng)的環(huán)境變量。ORACLD_SID用于與操作系統(tǒng)交互,也就是說(shuō),從操作系統(tǒng)的角度訪問實(shí)例名,必須通過ORACLE_SID。在winnt不臺(tái),ORACLE_SID還需存在于注冊(cè)表中。

且ORACLE_SID必須與instance_name的值一致,否則,你將會(huì)收到一個(gè)錯(cuò)誤,在unix平臺(tái),是“ORACLE not available”,在winnt平臺(tái),是“TNS:協(xié)議適配器錯(cuò)誤”。數(shù)據(jù)庫(kù)實(shí)例名與網(wǎng)絡(luò)連接

數(shù)據(jù)庫(kù)實(shí)例名除了與操作系統(tǒng)交互外,還用于網(wǎng)絡(luò)連接的oracle服務(wù)器標(biāo)識(shí)。當(dāng)你配置oracle主機(jī)連接串的時(shí)候,就需要指定實(shí)例名。當(dāng)然8i以后版本的網(wǎng)絡(luò)組件要求使用的是服務(wù)名SERVICE_NAME。這個(gè)概念接下來(lái)說(shuō)明。

三、數(shù)據(jù)庫(kù)域名

什么是數(shù)據(jù)庫(kù)域名?

在分布工數(shù)據(jù)庫(kù)系統(tǒng)中,不同版本的數(shù)據(jù)庫(kù)服務(wù)器之間,不論運(yùn)行的操作系統(tǒng)是unix或是windows,各服務(wù)器之間都可以通過數(shù)據(jù)庫(kù)鏈路進(jìn)行遠(yuǎn)程復(fù)制,數(shù)據(jù)庫(kù)域名主要用于oracle分布式環(huán)境中的復(fù)制。舉例說(shuō)明如:

全國(guó)交通運(yùn)政系統(tǒng)的分布式數(shù)據(jù)庫(kù),其中:

福建節(jié)點(diǎn): fj.jtyz

福建廈門節(jié)點(diǎn): xm.fj.jtyz

江西: jx.jtyz

江西上饒:sr.jx.jtyz

這就是數(shù)據(jù)庫(kù)域名。

數(shù)據(jù)庫(kù)域名在存在于參數(shù)文件中,他的參數(shù)是db_domain.查詢數(shù)據(jù)庫(kù)域名

方法一:select value from v$parameter where name = 'db_domain';

方法二:show parameter domain

方法三:在參數(shù)文件中查詢。全局?jǐn)?shù)據(jù)庫(kù)名

全局?jǐn)?shù)據(jù)庫(kù)名=數(shù)據(jù)庫(kù)名+數(shù)據(jù)庫(kù)域名,如前述福建節(jié)點(diǎn)的全局?jǐn)?shù)據(jù)庫(kù)名是:oradb.fj.jtyz四、數(shù)據(jù)庫(kù)服務(wù)名

什么是數(shù)據(jù)庫(kù)服務(wù)名?

從oracle9i版本開始,引入了一個(gè)新的參數(shù),即數(shù)據(jù)庫(kù)服務(wù)名。參數(shù)名是SERVICE_NAME。

如果數(shù)據(jù)庫(kù)有域名,則數(shù)據(jù)庫(kù)服務(wù)名就是全局?jǐn)?shù)據(jù)庫(kù)名;否則,數(shù)據(jù)庫(kù)服務(wù)名與數(shù)據(jù)庫(kù)名相同。查詢數(shù)據(jù)庫(kù)服務(wù)名

方法一:select value from v$parameter where name = 'service_name';

方法二:show parameter service_name

方法三:在參數(shù)文件中查詢。數(shù)據(jù)庫(kù)服務(wù)名與網(wǎng)絡(luò)連接

從oracle8i開如的oracle網(wǎng)絡(luò)組件,數(shù)據(jù)庫(kù)與客戶端的連接主機(jī)串使用數(shù)據(jù)庫(kù)服務(wù)名。之前用的是ORACLE_SID,即數(shù)據(jù)庫(kù)實(shí)例名。