[英]Turn off remote Oracle database with bash through ssh
我正在嘗試編寫一個啟動|停止腳本來遠程停止不同 linux 服務器上的數據庫。 我有一台服務器,帶有所有目標服務器的 root 和 ssh 密鑰。 通常我需要:以 root 身份運行腳本,ssh 到另一台服務器,su - oracle,運行 sqlplus 並關閉數據庫。
這就是我現在要停止數據庫的方法。 遠程服務器:
stop(){
A=`ssh root@10.10.10.110 ps -ef | grep smon_D | wc -l`
echo $A
if [[ $A -gt 0 ]]
then
echo "Found SMON process is alive, stopping the DB"
ssh root@10.10.10.110 su - oradaily -c "/oracle_general/start_stop/stop_db.sh"
else
echo "Found SMON process is down, DB has already been stopped"
fi
}
與第一個腳本相同的服務器:
cat /oracle_general/start_stop/stop_db.sh
sudo su - oradaily -c /oracle_general/start_stop/stop_DB.sh
帶有數據庫的服務器:
cat /oracle_general/start_stop/stop_DB.sh
sqlplus -prelim "/as sysdba" <<EOF
shutdown immediate;
exit
EOF
我嘗試過這種不同的方式,但遇到了不同的錯誤。 請指教。
好吧,我只需要在第一個中調用停止腳本。 第一個腳本應該從外部節點運行,第二個腳本本地放置在帶有 db 的節點上。 文件共享將大有幫助。
摘要:在 if 塊中,我調用位於遠程服務器上的腳本來停止所有操作。 就是這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.