Linux下kill掉所有的Oracle遠程連接進程

有些時候產線DB進行保養,限制的時間比較短,而通常這個時候又有大量用戶遠程連接的情況下,通過shutdown immediate來關閉數據庫,需要的時間比較長,雖然通過shutdown abort來關閉數據庫比較快速,但是容易出現數據庫起不來的情況,所以要快速關閉oracle數據庫,就需要人工kill掉遠程連接,從網上查資料得到這個方法比較方便快速,那就是可以用一條命令Kill掉它們。
所有含有關鍵字“LOCAL=NO”的進程,這是Oracle數據庫中遠程連接進程的共同特點,因此通過以下命令可以kill掉所有的進程

ps -ef |grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作爲管道符右邊命令的輸入。下面說說用管道符聯接起來的幾個命令:

ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

管道符“|”用來隔開兩個命令,管道符左邊命令的輸出會作爲管道符右邊命令的輸入。下面說說用管道符聯接起來的幾個命令:

“ps -ef”是Red Hat 裏查看所有進程的命令。這時檢索出的進程將作爲下一條命令“grep LOCAL=NO”的輸入。

“grep LOCAL=NO”的輸出結果是,所有含有關鍵字“LOCAL=NO”的進程,這是Oracle數據庫中遠程連接進程的共同特點。

“grep -v grep”是在列出的進程中去除含有關鍵字“grep”的進程。

“cut -c 9-15”是截取輸入行的第9個字符到第15個字符,而這正好是進程號PID。

“xargs kill -9”中的xargs命令是用來把前面命令的輸出結果(PID)作爲“kill -9”命令的參數,並執行該命令。“kill -9”會強行殺掉指定進程,這樣就成功清除了oracle的所有遠程連接進程。其它類似的任務,只需要修改“grep LOCAL=NO”中的關鍵字部分就可以了。

 

 

轉自: http://dbabc.net/archives/2010/02/08/linux_kill_all_oracle_process.shtml

發佈了17 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章