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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle11g 配置監聽ora-12514 解決方案Oracle
- oracle 監聽器配置Oracle
- Oracle 監聽配置詳解Oracle
- Oracle 動態監聽配置Oracle
- oracle 監聽配置多個埠Oracle
- Oracle監聽日誌2g-監聽啟動報錯Oracle
- ORACLE FOR WINDOWS 監聽配置之 ORA-12514 TNS能ping通不能登陸資料庫OracleWindows資料庫
- Oracle ASM 配置錯誤OracleASM
- Oracle 監聽器日誌配置與管理Oracle
- oracle 11g tns和監聽配置Oracle
- CUUG《Oracle 監聽和TNS配置》- 筆記Oracle筆記
- oracle ora-12514的錯誤的解決辦法Oracle
- Oracle 監聽Oracle
- oracle 雙監聽器啟動時報tns-01106錯誤Oracle
- ORA-12514:TNS監聽程式不能解析在連線描述符中給出的 SERVICE_NAME 錯誤
- [Oracle]startup mount時報ORA-12514錯誤的解決方法Oracle
- linux 111 錯誤 監聽起不來Linux
- oracle 11.2.0.3.6升級故障---監聽報錯Oracle
- 【DBA】Windows 下Oracle 監聽配置注意事項WindowsOracle
- 監聽配置詳解
- oracle dataguard 配置錯誤彙總Oracle
- Oracle監聽(1)Oracle
- ORACLE動態監聽與靜態監聽Oracle
- oracle靜態監聽和動態監聽Oracle
- 【oracle】動態監聽與靜態監聽Oracle
- Oracle11G監聽報錯Connection refusedOracle
- Oracle 10g RAC客戶端配置監聽Oracle 10g客戶端
- 同時配置動態監聽與靜態監聽
- oracle 10g rac當監聽程式監聽對方vip時啟動監聽報錯TNS-12545Oracle 10g
- 【Oracle】修改oracle監聽埠Oracle
- oracle 10.2.0.4 的emca配置錯誤Oracle
- deleted事件監聽報錯delete事件
- oracle靜態監聽Oracle
- JMS監聽Oracle AQOracle
- Oracle監聽的作用Oracle
- ORACLE監聽簡介Oracle
- oracle 監聽重啟Oracle
- ORA-12514: 錯誤解決一例