其實,現在有了Instant Client,可能真的沒有必要去嘗試制作Oracle客戶端。這裏,我想說說自己的理由:
1. Instant Client的bug遠多於Oracle客戶端package,這個是經過很多實踐發現的。
2. 愛好技術的人都想看看一個client包,到底如何提取,即算有些冗余,也沒多大關系。
3. 當你制作出一份客戶端出來以後,只需要這一次制作,不用再重新安裝客戶端,解壓即可使用。
我們先來看看Oracle9i,從它開始:
這裏作一個假定,就是Client要安裝在D盤d:\oracle\ora92下邊,把d:\oracle作為所有Oracle版本的根目錄ORACLE_BASE,這樣就容易處理一些。而ora92子目錄只是作為ORACLE_HOME。
然後開始抽取一些有用的子目錄。假設你在別的機器上已經有一份已經安裝好的Oracle9i 服務器,它位於c:\oracle\ora92,我推薦提取以下子目錄:
assistants
bin
database
dbs
network
oci
ocommon
ODBC
oledb
oracore
otrace
plsql
rdbms
slax
sqlplus
bin中其實有很多可以不用的可執行程序,可以直接刪掉,我們可以自行決定。oci子目錄便於開發基於OCI的應用程序。ODBC用於ODBC驅動,oledb用於OLEDB。其它子目錄都是必須的。
上邊是基本的文件抽取。將這些文件復制到d:\oracle\ora92目錄當中。然後,需要一個註冊表文件來註冊它,這個非常關健,以前常有人問我為何不起作用,大多註冊表中的內容不正確,或者沒有註冊。
註冊表的內容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"inst_loc"="C:\\Program Files\\Oracle\\Inventory"
"ORACLE_HOME"="D:\\oracle\\ora92"
"ORACLE_HOME_NAME"="OraHome92"
"API"="D:\\oracle\\ora92\\dbs"
"ORACLE_GROUP_NAME"="Oracle - OraHome92"
"NLS_LANG"="NA"
"VOBHOME2.0"="D:\\oracle\\ora92"
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES]
"HOME_COUNTER"="1"
"DEFAULT_HOME"="OraHome92"
"LAST_HOME"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
"NAME"="OraHome92"
"PATH"="D:\\oracle\\ora92"
"NLS_LANG"="NA"
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]
"ID"="0"
"ORACLE_GROUP_NAME"="Oracle - OraHome92"
"ORACLE_HOME_NAME"="OraHome92"
"ORACLE_HOME"="D:\\oracle\\ora92"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
"ORACLE_HOME_KEY"="Software\\ORACLE\\HOME0"
"SQLPATH"="D:\\oracle\\ora92\\dbs"
"ORACLE_BASE"="D:\\oracle"
"MSHELP_TOOLS"="D:\\oracle\\ora92\\MSHELP"
"RDBMS_CONTROL"="D:\\oracle\\ora92\\DATABASE"
"RDBMS_ARCHIVE"="D:\\oracle\\ora92\\DATABASE\\ARCHIVE"
將這個文件註冊到註冊表。
並把d:\oracle\ora92\bin添加到你的PATH環境變量當中,然後運行: sqlplus,看看有沒有錯。在d:\oracle\ora92\network\admin\tnsadmin.ora文件中添加一些Oracle服務主機信息,就可以使用了。
最後,作為建議,我推薦把當前用戶加到組"ORA_DBA"當中。
在用戶管理當中,新建組"ORA_DBA",然後添加當前用戶到該組。
基本上就這些步驟。抽取幹凈,總共也就200兆,去掉不相幹的,可以壓縮成一個壓縮文件大概只有20來兆。想想原始的oracle9i安裝完,大概要占2G多的樣子,差別太明顯了。
至於10g,相信如果上述步驟能順利走過,10g應該不成問題。
如果有興趣,還可以試試自己提取文件,做成Oracle Server的綠色版,無需安裝,只需要幾個命令即可。
曾經試過Oracle9i和Oracle10g的提取和免安裝。自己動手做這些,有助於加深對Oracle的了解。