手動(dòng)制作Oracle9i/10g客戶(hù)端的實(shí)用方法
其實(shí),現(xiàn)在有了Instant Client,可能真的沒(méi)有必要去嘗試制作Oracle客戶(hù)端。這里,我想說(shuō)說(shuō)自己的理由:
1. Instant Client的bug遠(yuǎn)多于Oracle客戶(hù)端package,這個(gè)是經(jīng)過(guò)很多實(shí)踐發(fā)現(xiàn)的。
2. 愛(ài)好技術(shù)的人都想看看一個(gè)client包,到底如何提取,即算有些冗余,也沒(méi)多大關(guān)系。
3. 當(dāng)你制作出一份客戶(hù)端出來(lái)以后,只需要這一次制作,不用再重新安裝客戶(hù)端,解壓即可使用。
我們先來(lái)看看Oracle9i,從它開(kāi)始:
這里作一個(gè)假定,就是Client要安裝在D盤(pán)d:oracleora92下邊,把d:oracle作為所有Oracle版本的根目錄ORACLE_BASE,這樣就容易處理一些。而ora92子目錄只是作為ORACLE_HOME。
然后開(kāi)始抽取一些有用的子目錄。假設(shè)你在別的機(jī)器上已經(jīng)有一份已經(jīng)安裝好的Oracle9i 服務(wù)器,它位于c:oracleora92,我推薦提取以下子目錄:
assistants
bin
database
dbs
network
oci
ocommon
ODBC
oledb
oracore
otrace
plsql
rdbms
slax
sqlplus
bin中其實(shí)有很多可以不用的可執(zhí)行程序,可以直接刪掉,我們可以自行決定。oci子目錄便于開(kāi)發(fā)基于OCI的應(yīng)用程序。ODBC用于ODBC驅(qū)動(dòng),oledb用于OLEDB。其它子目錄都是必須的。
上邊是基本的文件抽取。將這些文件復(fù)制到d:oracleora92目錄當(dāng)中。然后,需要一個(gè)注冊(cè)表文件來(lái)注冊(cè)它,這個(gè)非常關(guān)健,以前常有人問(wèn)我為何不起作用,大多注冊(cè)表中的內(nèi)容不正確,或者沒(méi)有注冊(cè)。
注冊(cè)表的內(nèi)容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESOFTWAREORACLE]
'inst_loc'='C:Program FilesOracleInventory'
'ORACLE_HOME'='D:oracleora92'
'ORACLE_HOME_NAME'='OraHome92'
'API'='D:oracleora92dbs'
'ORACLE_GROUP_NAME'='Oracle - OraHome92'
'NLS_LANG'='NA'
'VOBHOME2.0'='D:oracleora92'
[HKEY_LOCAL_MACHINESOFTWAREORACLEALL_HOMES]
'HOME_COUNTER'='1'
'DEFAULT_HOME'='OraHome92'
'LAST_HOME'='0'
[HKEY_LOCAL_MACHINESOFTWAREORACLEALL_HOMESID0]
'NAME'='OraHome92'
'PATH'='D:oracleora92'
'NLS_LANG'='NA'
[HKEY_LOCAL_MACHINESOFTWAREORACLEHOME0]
'ID'='0'
'ORACLE_GROUP_NAME'='Oracle - OraHome92'
'ORACLE_HOME_NAME'='OraHome92'
'ORACLE_HOME'='D:oracleora92'
'NLS_LANG'='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
'ORACLE_HOME_KEY'='SoftwareORACLEHOME0'
'SQLPATH'='D:oracleora92dbs'
'ORACLE_BASE'='D:oracle'
'MSHELP_TOOLS'='D:oracleora92MSHELP'
'RDBMS_CONTROL'='D:oracleora92DATABASE'
'RDBMS_ARCHIVE'='D:oracleora92DATABASEARCHIVE'
將這個(gè)文件注冊(cè)到注冊(cè)表。
并把d:oracleora92bin添加到你的PATH環(huán)境變量當(dāng)中,然后運(yùn)行: sqlplus,看看有沒(méi)有錯(cuò)。在d:oracleora92networkadmintnsadmin.ora文件中添加一些Oracle服務(wù)主機(jī)信息,就可以使用了。
最后,作為建議,我推薦把當(dāng)前用戶(hù)加到組'ORA_DBA'當(dāng)中。
在用戶(hù)管理當(dāng)中,新建組'ORA_DBA',然后添加當(dāng)前用戶(hù)到該組。
基本上就這些步驟。抽取干凈,總共也就200兆,去掉不相干的,可以壓縮成一個(gè)壓縮文件大概只有20來(lái)兆。想想原始的oracle9i安裝完,大概要占2G多的樣子,差別太明顯了。
至于10g,相信如果上述步驟能順利走過(guò),10g應(yīng)該不成問(wèn)題。
如果有興趣,還可以試試自己提取文件,做成Oracle Server的綠色版,無(wú)需安裝,只需要幾個(gè)命令即可。
曾經(jīng)試過(guò)Oracle9i和Oracle10g的提取和免安裝。自己動(dòng)手做這些,有助于加深對(duì)Oracle的了解。
