簡體   English   中英

用bash到ssh關閉遠程Oracle數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM