兩個資料訪問受限的問題
最近幾天實在忙得厲害,處理了各種資料需求,有種顧及不來,而其中有一部分問題是和資料訪問相關的,問題的原因很簡單,但是分析問題的過程就需要很多的經驗,推導,比如下面的兩個案例。
第一個是開發同學反饋,連線資料庫的時候報出了下面的錯誤。
第一個錯誤是:
ORA-12154: TNS:could not resolve the connect identifier specified
第二個錯誤是:
ORA-12170: TNS:Connect timeout occurred連線10.129.xx..51
如果直接看這個錯誤,可能沒有思路,第一個錯誤明顯是網路配置的問題,但是我檢視了網路的配置,本機的網路服務都是正常的,另外需要說明一下,這是一套遷移的環境。
第二個問題看起來是網路超時,可能是網路情況不好,或者訪問網路的許可權限制。
同時我檢視了防火牆的配置,該有的IP資訊都有了。
到底是哪裡出了問題呢,和開發的同學聊,他的回答讓我有些詫異,
訪問資料的時候就報這個
這個連線串沒問題
查詢請求可以執行
但是insert 的時候就報錯了
看到這裡,我腦海裡就有了大概的思路了,這很可能是DB link的問題,而上面的兩個錯誤很可能就是訪問的兩個DB link,是訪問失敗的兩個問題,一個是目標環境的監聽服務有問題,另外一個是防火牆的許可權問題。明白了問題修復起來分分鐘就能搞定,但是分析排查還是花了些時間。
第二個是一個資料訪問報錯,業務同學反饋,一臺搬遷的伺服器修改了IP之後,他們連線應用的時候丟擲了下面的錯誤,
[show] java.sql.SQLException: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
看到這個錯誤,很明顯是資料庫例項出了問題,要麼就是連線的資料庫資訊有誤。
和業務同學反饋確認,他們的反饋是IP資訊沒有問題,我這邊的許可權資訊也沒有問題,經過了多方排查,還是沒有進展,這時候我們就換一個角度來看,因為涉及到的系統是一個整體,可能包含很多子系統,所以不能完全依賴於已得到的資訊,但是他們稍後反饋另一個業務出現了問題,帶著疑問檢視了他們的資料服務,發現這臺資料庫已經當機了,錯誤日誌如下:
PMON (ospid: 4354): terminating the instance due to error 471
System state dump requested by (instance=1, osid=4354 (PMON)), summary=[abnormal instance termination].
System State dumped to trace file /U01/app/oracle/diag/rdbms/csdb/csdb/trace/csdb_diag_4364.trc
Instance terminated by PMON, pid = 4354
可以看到是pmon終止了例項,而00471的錯誤是DBWR終止,
$ oerr ora 00471
00471, 00000, "DBWR process terminated with error"
// *Cause: The database writer process died
到了這裡,可以基本得到一個結論,這是一個異常當機,而不是計劃中的維護。我沒有著急把資料庫先啟動,而是啟動到了nomount狀態,嘗試看看有什麼資訊,錯誤的原因其實很簡單,就是系統資源設定不足導致,比如memlock,可以透過啟動的錯誤日誌看出。
Starting ORACLE instance (normal)
Memlock limit too small: 65536 to accommodate segment size: 402653184
明白了問題之後,調整起來修很輕鬆了,這方面的資訊也可以透過/proc/xxx/limits來檢視
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2142418/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL訪問受限的問題分析MySql
- jboss訪問資料庫的問題資料庫
- 封裝ADO訪問資料庫的兩個類 (轉)封裝資料庫
- oracle實驗記錄 (oracle的兩種受限制登陸訪問)Oracle
- github訪問受限解決辦法Github
- 使用Visual Basic訪問資料庫幾個注意的問題 (轉)資料庫
- 如何使用手機代理軟體來解決網路訪問受限的問題?
- 求助:資料庫併發訪問問題資料庫
- JAVA訪問雲資料mysql出現問題JavaMySql
- 函式訪問引數受限的處理方法函式
- [javascript]搞清this的指向只需問兩個問題JavaScript
- Ubuntu共享資料夾訪問許可權問題Ubuntu訪問許可權
- JDBC用ResultSet訪問大量資料時會遇到的問題JDBC
- Python訪問Oracle的兩種資料獲取方式PythonOracle
- js資源跨域訪問的問題JS跨域
- 兩個小問題深入淺出List的效能問題
- 資料庫出現兩個Listener問題的官方處理方法資料庫
- 今天解決的兩個問題
- 用JDBC訪問一個資料庫JDBC資料庫
- 解決兩相同資料庫資料同步的問題 (轉)資料庫
- 資料訪問層
- 一臺主機,兩個WEB應用服務之間的連結訪問的問題Web
- 新手大資料必問十個問題大資料
- Spring框架訪問資料庫的兩種方式的小案例Spring框架資料庫
- 兩個資料庫的問題(r11筆記第4天)資料庫筆記
- WebService 訪問問題Web
- 學java就兩個問題Java
- 解決資料庫高併發訪問瓶頸問題資料庫
- 多個資料來源的問題
- 寫一個通用資料訪問元件 (轉)元件
- 禁止某個IP訪問Oracle資料庫Oracle資料庫
- 用JDBC訪問一個資料庫(轉)JDBC資料庫
- 兩個Oracle配置問題的記錄Oracle
- 域名訪問和ip訪問引起的http 403問題HTTP
- 影響代理IP訪問速度的兩個關鍵
- 另外一個類/變數動態訪問的問題變數
- 一個SMMU記憶體訪問異常的問題記憶體
- 多個人訪問實體Bean,這個Bean訪問幾次資料庫啊?Bean資料庫