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,同樣配多個偵聽器偵聽一個數據庫(分別對內網和外網提供),如果碰到連接問題,請大家檢查一下數據庫配置這一項,當然如果直接寫文件來配置就很簡單了,一下就可以搞定了,大家也可以對照我前面給出的配置文件看一下。