注冊就是将資料庫作為一個服務注冊到監聽程式。用戶端不需要知道資料庫名和執行個體名,隻需要知道該資料庫對外提供的服務名就可以申請連接配接到資料庫。這個服務名可能與執行個體名一樣,也有可能不一樣。
注冊分:
1. 靜态注冊
2. 動态注冊
靜态注冊
為了靜态注冊一個執行個體,我們需要在 listener.ora中添加相應監聽器條目。
這裡我們建立了兩個LISTENER(LISTENER — 預設的,LISTENER1 - 自己建立的),服務名(全局資料庫名)分别為test,test1。
下面是我的listener.ora檔案的内容。位置: C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Tough)(PORT = 1521))
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = ora11g)
)
)
LISTENER1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Tough)(PORT = 1522))
)
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = test1)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = ora11g)
)
)
C:\>lsnrctl
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 07-4月 -2014 12:56:43
Copyright (c) 1991, 2005, Oracle. All rights reserved.
歡迎來到LSNRCTL, 請鍵入"help"以獲得資訊。
//可以檢視lsnrctl下可以執行的指令,常用到的是start, stop, status, reload, services
LSNRCTL> help
以下操作可用
星号 (*) 表示修改符或擴充指令:
start stop status
services version reload
save_config trace change_password
quit exit set*
show*
//如果隻輸入start,則啟動預設監聽器 LISTENER
LSNRCTL> start LISTENER
啟動tnslsnr: 請稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系統參數檔案為c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
寫入c:\oracle\product\10.2.0\db_1\network\log\listener.log的日志資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1521)))
正在連接配接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Tough)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
啟動日期 07-4月 -2014 12:56:49
正常運作時間 0 天 0 小時 0 分 1 秒
跟蹤級别 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式參數檔案 c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
監聽程式日志檔案 c:\oracle\product\10.2.0\db_1\network\log\listener.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1521)))
服務摘要..
服務 "test" 包含 1 個例程。
例程 "ora11g", 狀态 UNKNOWN, 包含此服務的 1 個處理程式...
指令執行成功
//如果隻輸入status,則檢視預設監聽器 LISTENER狀态
LSNRCTL> status LISTENER
正在連接配接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Tough)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
啟動日期 07-4月 -2014 12:56:49
正常運作時間 0 天 0 小時 1 分 9 秒
跟蹤級别 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式參數檔案 c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
監聽程式日志檔案 c:\oracle\product\10.2.0\db_1\network\log\listener.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1521)))
服務摘要..
服務 "ora11g" 包含 1 個例程。
例程 "ora11g", 狀态 READY, 包含此服務的 1 個處理程式...
服務 "ora11gXDB" 包含 1 個例程。
例程 "ora11g", 狀态 READY, 包含此服務的 1 個處理程式...
服務 "ora11g_XPT" 包含 1 個例程。
例程 "ora11g", 狀态 READY, 包含此服務的 1 個處理程式...
服務 "test" 包含 1 個例程。
例程 "ora11g", 狀态 UNKNOWN, 包含此服務的 1 個處理程式...
指令執行成功
藍色部分是動态注冊的監聽器的狀态。紅色部分是我們靜态注冊的監聽器的狀态。
//若不是啟動預設監聽器 LISTENER,則需要指定啟動的監聽器
LSNRCTL> start LISTENER1
啟動tnslsnr: 請稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系統參數檔案為c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
寫入c:\oracle\product\10.2.0\db_1\network\log\listener1.log的日志資訊
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1522)))
正在連接配接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Tough)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名 LISTENER1
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
啟動日期 07-4月 -2014 12:57:07
正常運作時間 0 天 0 小時 0 分 1 秒
跟蹤級别 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式參數檔案 c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
監聽程式日志檔案 c:\oracle\product\10.2.0\db_1\network\log\listener1.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1522)))
服務摘要..
服務 "test1" 包含 1 個例程。
例程 "ora11g", 狀态 UNKNOWN, 包含此服務的 1 個處理程式...
指令執行成功
LSNRCTL> status LISTENER1
正在連接配接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Tough)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名 LISTENER1
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
啟動日期 07-4月 -2014 12:57:07
正常運作時間 0 天 0 小時 1 分 13 秒
跟蹤級别 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式參數檔案 c:\oracle\product\10.2.0\db_1\network\admin\listener.ora
監聽程式日志檔案 c:\oracle\product\10.2.0\db_1\network\log\listener1.log
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Tough)(PORT=1522)))
服務摘要..
服務 "test1" 包含 1 個例程。
例程 "ora11g", 狀态 UNKNOWN, 包含此服務的 1 個處理程式...
指令執行成功
建立好監聽器後,我們還需要在用戶端機器上的tnsnames.ora設定相關條目。位置:C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
A =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = tough)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test)
)
)
A1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = tough)(PORT = 1522))
)
(CONNECT_DATA =
(SERVICE_NAME = test1)
)
)
測試靜态注冊的監聽器:
C:\>sqlplus /@a as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 4月 7 13:11:37 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接配接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
C:\>sqlplus /@a1 as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 4月 7 13:11:54 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接配接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
連接配接成功!
轉載于:https://www.cnblogs.com/toughhou/p/3778818.html