datastage 重启 续
在重啟DS時,不少人肯定會說,一定要在重啟之前確認沒有人連接DS了。但有時會忘的。雖然說,等一些時間,系統可能會釋放死進程,但也有可能,不會。而重啟服務器,對于生產系統,可不是那么容易,想重啟就能重啟的。
于下,就是我通宵一晚的成果。
1,確認dsrpcd不能啟動的原因:
bin/dsrpcd-d9>/tmp/dsrpcd.log2>&1&
日志信息如下:
RPCPID=1601624-03:34:16-uvrpc_debugflag=9(Debugginglevel)
RPCPID=1601624-03:34:16-Inrpc_init()
RPCPID=1601624-03:34:16-bindbombederrno=67
RPCPID=1601624-03:34:16-listenfailed
聯系之前知識,如在用戶沒有登陸時,就重啟ds,會導致dsrpcd無法啟動。于是確認是因為某一端口被占用。
2,找出無反應的網絡連接
$netstat-Aa|grepdsr
f10002000204d398tcp400*.dsrpc*.*LISTEN
f1000200001e9398tcp400blade25.dsrpc10.207.42.24.tlisrESTABLISHED
f100020001f74398tcp400blade25.dsrpc10.207.42.24.oraclESTABLISHED
如狀態為close_wait,則表示此為死進程對應的網絡連接
3,確認對應進程(rmsock需要root權限):
rmsockf1000d0005b4b390tcpcb
output:Thesocketf1000d0005b4b390isbeingheldbyproccess332008(inetd).
4,kill進程
kill-9332008
總結:此方法可以省去重啟這一步驟。但rmsock需要有root權限,生產環境我們不見得能有的。
--add------------------------------------------------------------------------------------------------------------------------------------------------
今天在測試環境,執行了uv-admin-start無法啟動dsrpcd,
之后,執行了下uv-admin-stop,再uvregen,再uv-admin-start
dsrpcd就啟動好了,也不知道是不是真的就是這個步驟搞好的,,,下次生產有問題,這樣試下吧。
------------------------------------------------------------------------------------------------------------------------------2011-11-18---------
--add------------------------------------------------------------------------------------------------------------------------------------------------
今天發現,如果DS服務器長時間沒有重啟,會殘留很多死進程,會導致“Projectislocked",
可如下執行,而對不用重啟DS。
ps-ef|grepdsapi|awk'{print"kill"$2}'|sh
------------------------------------------------------------------------------------------------------------------------------2011-11-19---------
轉載于:https://blog.51cto.com/jackwxh/1318680
總結
以上是生活随笔為你收集整理的datastage 重启 续的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将openstack的Token认证信息
- 下一篇: 南下事业篇——深圳 深圳(回顾)