==【靜態註冊】==
靜態註冊可通過圖形化的net manager進行配置。
net manager裡面的配置選項與相關文件的對應關係:
概要文件 <=> sqlnet.ora
服務命名 <=> tnsnames.ora
監聽程序 <=> listener.ora
靜態註冊在伺服器端需要配置【監聽程序(listener.ora)】,包括:
監聽位置(協議、主機、埠);
資料庫服務(全局資料庫名:此處的全局資料庫名對應於客戶機端【服務命名(tnsnames.ora)】的服務名、Oracle主目錄、SID);
其它服務(我測試的時候發現不能留空,不過此處的程序名和SID隨便填一些字元即可);
追加一個監聽程序需要通過netca進行配置,win下netca會創建一個服務。
- listener.ora(伺服器端)
- SID_LIST_SL01 =
- (SID_LIST =
- (SID_DESC =
- (PROGRAM = xx)
- (SID_NAME = xx)
- )
- (SID_DESC =
- (GLOBAL_DBNAME = gdbn01)
- (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
- (SID_NAME = ORCL)
- )
- )
-
- SL01 =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
- )
-
- tnsnames.ora(客戶機端)
- S01 =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = d01)
- )
- )
- ==【動態註冊】==
- 要想PMON能動態註冊非1521的埠,需要先將連接信息(protocal,host,port - 該連接信息須在【監聽程序(listener.ora)】的監聽位置中存在)www.linuxidc.com配置到伺服器端的tnsnames.ora,然後修改local_listener參數指向tnsnames.ora中的配置選項。
- listener.ora(伺服器端,SL01為通過netca新建的監聽程序)
- SL01 =
- (DESCRIPTION =
- (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
- )
-
- tnsnames.ora(伺服器端)
- DL01 = (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
-
- alter system set local_listener='DL01';
- alter system set service_names='d01,d02,d03';
-
- 客戶端只需在tnsnames.ora中填入相應的SERVICE_NAME即可:
- tnsnames.ora(客戶機端)
- S01 =
- (DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = duzz)(PORT = 8899))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = d01)
- )
- )
要想PMON動態註冊默認1521的埠則相對比較簡單,不需要設置local_listener參數,www.linuxidc.com自然也就不需要修改伺服器端的tnsnames.ora文件,其它與動態註冊非1521的埠步驟一樣。
==【驗證註冊】==
- sqlplus /@s01 as sysdba
- select distinct sid from v$mystat;
- select service_name from v$session where sid=:sid;
- 查看當前session的服務名,
- 如果返回的是SYS$USERS則表示當前session通過靜態註冊的服務名連接,
- 否則返回動態註冊的服務名。