通过ssh使用bash关闭远程Oracle数据库



我正试图编写一个启动|停止脚本来远程停止不同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块中,我调用一个位于远程服务器上的脚本,该脚本会停止所有操作。就是这样。

相关内容

  • 没有找到相关文章