Oracle中可以配多個資料庫,並只需要開啟一個接聽程式就可以了,對多個資料庫只要配置相應的服務命名就可以串連了。
我用的是Oracle 8.1.7 Enterprise Edition,OS是Windows 2000 Server,我把我的配置過程和情況圖解說明一下,和大家共同探討。
第一步:用Net8 Configuration Assistant工具配置監聽器,一直點下一步,最後完成即可!監聽地址一般配成預設的1521就可以了。
也可以用Net8 Assistant工具來驗證或配置監聽器,如下圖,可以配置主機和連接埠。
第二步:用Net8 Assistant工具來配置命名服務,如下圖:
注意服務名是資料庫名,主機名稱和連接埠號碼一定要和監聽器的一樣!
測試一下,串連成功,OK!
好,再配第二個庫的服務命名,如下圖:
注意服務名要對應到第二個資料庫名!
再測試一下第二個庫的串連,串連成功,OK!
最後有幾點注意:
1.對一般如果有多個應用程式用Oracle的資料庫,一般只需要建立一個資料庫就可以了,對不同的應用設立不同的使用者(不同的資料表空間)就可以了。
2.如果多個應用程式的字元集不一樣,如既有BIG5又有GB2312,那一般就需要考慮配置多個伺服器,或者建立多個資料庫,或者轉換到UTF-8之類的字元集。
3.如果開發需要裝多個版本的Oracle,如同時安裝Oracle9i和Oracle8.1.7,則需要配置各自的監聽連接埠,環境變數沒有什麼需要配置的,不會衝突;註冊表都放在HKEY_LOCAL_MACHINESOFTWAREORACLE下,但是會分HOME0~HOME...不同的Key中存放,所以也不會有衝突。
4.配置命名服務和監聽器還可以直接編輯如下2個檔案:
監聽器:$ORACLE_HOME$ etworkADMINlistener.ora,一般檔案如下:
# LISTENER.ORA Network Configuration File: D:DATABASEOracle81 etworkadminlistener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = HARRY)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:DATABASEOracle81)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORASUN)
(ORACLE_HOME = D:DATABASEOracle81)
(SID_NAME = ORASUN)
)
(SID_DESC =
(GLOBAL_DBNAME = ORAGCE)
(ORACLE_HOME = D:DATABASEOracle81)
(SID_NAME = ORAGCE)
)
)
服務命名:$ORACLE_HOME$ etworkADMIN nsnames.ora,一般檔案如下:
# TNSNAMES.ORA Network Configuration File: D:DATABASEOracle81NETWORKADMIN nsnames.ora
# Generated by Oracle configuration tools.
SMEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORAGCE)
)
)
SMEDI =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORASUN)
)
)
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = ORAGCE)
(PRESENTATION = http://admin)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
這2個檔案在$ORACLE_HOME$ etworkADMINSAMPLE下有相應的範例檔案,可以參考。
監聽器配置修改後,需要重新啟動監聽器的服務!!!
再補充一點,配置多個接聽程式或者一個接聽程式偵聽多個資料庫的時候,對接聽程式注意需要設定資料庫服務。
如圖,一個接聽程式偵聽多個資料庫,如下配置,資料庫名和SID分別是ORASUN和ORAGCE,同樣配多個接聽程式偵聽一個資料庫(分別對內網和外網提供),如果碰到串連問題,請大家檢查一下資料庫配置這一項,當然如果直接寫檔案來配置就很簡單了,一下就可以搞定了,大家也可以對照我前面給出的設定檔看一下。