Oracle監聽配置(ora-12514錯誤)
1、客戶端連線資料庫流程:監聽只在連線時候起到轉發作用
①客戶端→監聽轉發→資料庫
②資料庫→監聽轉發→客戶端
③客戶端→資料庫
2、監聽配置:用netca命令
lsnrctl stop/start/status #監聽停止、啟動、檢視狀態命令
①服務端要配置兩個檔案:listener、tnsnames
listener檔案:
LISTENER= #監聽名字
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.111)(PORT = 1521)) #伺服器本地IP地址
)
)
tnsnames檔案:
linuxorcl= #連線時@後面的字串,如sqlplus scott/tiger@linuxorcl
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.111)(PORT = 1521)) #伺服器本地IP地址
)
(CONNECT_DATA =
(SERVICE_NAME =orcl) #伺服器上資料庫例項名字
)
)
②客戶端要配置一個檔案:tnsnames
tnsnames檔案:
linuxorcl= #連線時@後面的字串,如sqlplus scott/tiger@linuxorcl
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.111)(PORT = 1521))#伺服器IP地址
)
(CONNECT_DATA =
(SERVICE_NAME =orcl) #伺服器上資料庫例項名字
)
)
3、監聽註冊有兩種方式:靜態註冊和動態註冊
①如何查詢某服務是靜態監聽註冊還是動態監聽註冊可以使用命令lsnrctl status來檢視服務,例項狀態為UNKNOWN值時表明此服務是靜態註冊的設定。
②靜態註冊
所謂靜態配置,就是在配置監聽器時,就明確的告訴監聽器某個資料庫的資訊,監聽器在啟動過程中就會載入這一部分資訊。這個資訊同樣是記錄在監聽器的配置檔案LISTENER.ORA中,下面就是使用靜態配置LISTENER.ORA檔案,注意其中SID_LIST_LISTENER部分就是靜態配置內容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_NAME = orcl) #GLOBAL_NAME資料服務名
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(SID_NAME = orcl) #SID_NAME資料庫例項名字
)
)
這個例子就是說,名字叫做LISTENER的監聽器需要負責SID=ORCL的資料庫的連線請求,靜態配置的最大問題就是監聽器無法知道資料庫的真正狀態。
③動態註冊
動態註冊是在instance啟動的時候PMON程式根據init.ora中的INSTANCE_NAME,SERVICE_NAMES兩個引數將例項和服務動態註冊到listener中。要想使用動態註冊功能,首先需要在資料庫的初始化SERVICE_NAME和INSTANCE_NAME。如果沒有定義SERVER_NAME引數,資料庫會使用DB_NAME和DB_DOMAIN組成的一個全域性資料庫名稱(Global Database Name)註冊到監聽器中。INSTANCE_NAME是例項名稱,通常和SID值一樣。只要資料庫處於執行狀態,PMON程式就會自動、定期的地向監聽程式註冊、更新資訊,DBA也可以使用下面命令強制PMON立即向監聽器註冊:SQL>alert system register;
我在linux系統下就發生過ora-12514錯誤,檢查了半天后來發現時系統裡面的/etc/hosts裡面的ip地址沒有配成本地ip而是用127.0.0.1來代替
⑤監聽解析一個登入命令流程如sqlplus scott/tiger@linuxorcl
首先監聽會先去找tnsnames檔案,解析裡面是否有以linuxorcl開頭的段如:
linuxorcl = #連線時@後面的字串,如sqlplus scott/tiger@linuxorcl
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521)) #伺服器本地IP地址
)
(CONNECT_DATA =
(SERVICE_NAME = orcl) #伺服器上資料庫例項名字
)
)
然後根據段裡面的Host和service_name去解析資料庫例項
最後把資料庫例項註冊到監聽上(動態的或靜態的)
資料庫名:show parameter db_name;
資料庫服務名:show parameter service_name;
資料庫例項名:show parameter instance_name;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29489498/viewspace-1120439/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20180509]配置靜態監聽服務與ORA-12514
- oracle 11g rac配置em dbconsole ORA-12514Oracle
- oracle靜態監聽Oracle
- JMS監聽Oracle AQOracle
- ORACLE 錯誤Oracle
- Oracle dblink監聽問題Oracle
- 6、oracle網路(監聽)Oracle
- oracle netca建立監聽報錯/u01/oracle/bin/netca: line 178: 11819 AbortedOracle
- deleted事件監聽報錯delete事件
- Oracle 11g/12c 監聽器白名單的配置Oracle
- Oracle 監聽異常處理Oracle
- Oracle啟動兩個監聽Oracle
- Oracle 建立非1521埠監聽Oracle
- Oracle 監聽投毒COST解決Oracle
- iis7.5錯誤 配置錯誤
- 2.5.2. 監聽程式(listener)配置——2.5.2.3. 手工編輯監聽器配置檔案
- oracle rac scan監聽更改埠號Oracle
- oracle監聽不到例項服務Oracle
- 【監聽配置】Oracle如何靜默執行NETCA,使用netca.rsp檔案Oracle
- 記錄一次一次監聽無法連線的錯誤
- 模型deleted事件監聽報錯解析模型delete事件
- Oracle 11g RAC 監聽日常管理Oracle
- oracle 最全的監聽、tnsnames.ora格式Oracle
- oracle之 單例項監聽修改埠Oracle單例
- Oracle 修改預設監聽埠故障分析Oracle
- 11g rac監聽配置解析
- 配置資料庫監聽白名單資料庫
- Spring框架(一):配置&注入&監聽器Spring框架
- oracle 報大小寫錯誤Oracle
- Oracle nvarchar2錯誤Oracle
- 聊聊前端監控——錯誤監控篇前端
- 做個前端錯誤監控前端
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- 監聽 watch props物件屬性監聽 或深度監聽物件
- Mabatis配置錯誤日誌BAT
- ORACLE rac資料庫監聽與應用TNS連線串配置與ORA12519Oracle資料庫
- oracle rac的scan監聽狀態Not All Endpoints RegisteredOracle
- 【LISTENER】Oracle通過監聽連線緩慢分析Oracle