本文分享了自己在使用oracle資料庫時,遇到連線問題的排查方法。
最基本的,要想連線,資料庫本身得是正常執行著的。
linux需要先執行,windows直接開啟cmd
su - oracle。以dba角色登入本地資料庫。連這個都連不上,說明資料庫沒啟動好。
要排查資料庫本身的問題。
sqlplus / as sysdba。連線以後查詢資料庫狀態
select open_mode from v$database;。這裡一般有以下狀態
mount:載入profile啟動模式如果是nomountnomount:未載入profile啟動模式
read/write:正常
alter database mount;如果是mount
alter database open;oracle監聽就是oracle服務的耳朵,資料庫服務可以直接通過sqlplus連線,但對網路客戶端的訪問,就要靠它來完成。
監聽狀態檢視
lsnrctl status監聽啟動
lsnrctl start監聽停止
lsnrctl stop監聽狀態異常,當然是要重啟的,上面幾個命令執行就ok。
監聽啟動出錯,檢視listener.ora是否配置錯誤
$oracle_home\network\admin監聽狀態正常但是啟動時特別慢,就要檢視監聽的日誌是否過大,讀寫緩慢。
這個現象重點提一下:客戶端、第三方軟體訪問時特別慢,但服務端直接sqlplus訪問卻很快日誌檔案位置查詢。
adrci檢視警告日誌
show alert檢視跟蹤日誌
show tracefile刪了它們就可以了。當然,最好先備份一下再刪更好。
linux命令:
rm要想連線,網路一定要通。
客戶端測試連線,以下例子中192.168.x.x為服務端ip
網路連線ping
ping 192.168.x.x跟蹤路由跳轉
tracert 192.168.x.x埠測試
telnet 192.168.x.x網路不通,要檢查網路線路是否通暢,服務端防火牆設定。
windows防火牆
控制面板–系統安全–windows防火牆-開啟或關閉防火牆linux防火牆
iptables命令只是分享一下思路,命令的使用只是新手,見笑了。具體問題還要具體分析。
資料庫鎖問題排查
oracle awr sql執行等資訊 alert 報錯資訊 trance日誌 1 檢視哪些會話鎖了哪些表 select l.session id,o.owner,o.object name from v locked object l,dba objects o where l.object id...
連線Oracle資料庫
先將system.data.oralceclient.dll檔案拷貝專案目錄的bin目錄下,通常位於c windows microsoft.net franmework v.1.1.4322目錄中.連線字串 string oracle connstr data source oracle9i int...
連線Oracle資料庫
先將system.data.oralceclient.dll檔案拷貝專案目錄的bin目錄下,通常位於c windows microsoft.net franmework v.1.1.4322目錄中.連線字串 string oracle connstr data source oracle9i int...