我试图找到在RedHat7中启动关机/重新启动之前如何运行脚本的解决方案。当我关闭或重新启动服务器时,我需要正确关闭SAP数据库。
SAP关机的脚本需要3-4分钟,但是系统的关闭非常快,-it意味着RedHat杀死了所有进程。
我的
systemd sap.service是:
[Unit]
Description=Shutdown SAP
Before=shutdown.target reboot.target halt.target
[Service]
ExecStart=/bin/true
ExecStop=/usr/sap/stopsap
RemainAfterExit=true
KillMode=none
[Install]
WantedBy=multi-user.target正如我在关机日志数据库中所看到的,没有正确关闭日志数据库:
Checking ADA Database
-------------------------------------------
setTrace: false
J2EE Database is not available你能帮帮我吗?
谢谢
伊沃
编辑21.10.2015:
我转到了下一步--它运行得更好了,但仍然不正确:
[Unit] Description=SAP sluzba After=network.target sshd.target Wants=network.target sshd.service [Service] Type=simple RemainAfterExit=true Environment="SAPSYSTEMNAME=RH7" "HOST=cz-brn1-rh7" "HOME=/home/rh7adm" "PATH=/sapdb/clients/RH7/bin:/sapdb/programs/bin:/usr/lib64/qt-.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/sap/RH7/SYS/exe/uc/linuxx86_64:/usr/sap/RH7/SYS/exe/run:/home/rh7adm:." "DIR_LIBRARY=/usr/sap/RH7/SYS/exe/run" "LD_LIBRARY_PATH=/usr/sap/RH7/SYS/exe/run:/usr/sap/RH7/SYS/exe/uc/linuxx86_64:/sapdb/clients/RH7/lib" "RSEC_SSFS_DATAPATH=/usr/sap/RH7/SYS/global/security/rsecssfs/data" "RSEC_SSFS_KEYPATH=/usr/sap/RH7/SYS/global/security/rsecssfs/key" KillMode=none SendSIGKILL=no TimeoutSec=5min TimeoutStopSec=5min User=rh7adm Group=sapsys ExecStart=/usr/sap/startsap ExecStop=/usr/sap/stopsap
`[Install] WantedBy=graphical.target`下面是秒针脚本:
#!/bin/bash date >> /usr/sap/stopsap.log; /usr/sap/RH7/SYS/exe/uc/linuxx86_64/stopsap >> /usr/sap/stopsap.log 2>&1; whoami >> /usr/sap/stopsap.log;
J2EE Database is running See logfile /home/rh7adm/JdbcCon.log stopping the SAP instance J28 Shutdown-Log is written to /home/rh7adm/stopsap_J28.log /usr/sap/RH7/J28/exe/sapcontrol -prot NI_HTTP -nr 28 -function Stop Instance on host cz-brn1-rh7 stopped Waiting for cleanup of resources..................................................................................................................................................
它在这里停留了5分钟。关机脚本永远不会完成:
我能追踪到我的树液是如何关闭的吗?服务?
谢谢。。
发布于 2015-10-08 15:02:07
尝试更改单元文件中的TimeoutStopSec值。缺省值由/etc/systemd/system.conf在DefaultTimeoutStopSec条目中设置(我的系统将其设置为90)。您可以将TimeoutStopSec=0设置为完全禁用超时(如果脚本不终止,则可能挂起关机),或者传递一个更大的值,允许停止脚本完全完成。
发布于 2015-10-21 14:15:08
好的问题是环境问题:
sap.service的正确定义是:
[Unit] Description=SAP sluzba After=network.target sshd.target Wants=network.target sshd.service [Service] Type=simple RemainAfterExit=true Environment="HOSTNAME=cz-brn1-rh7" "SAPSYSTEMNAME=RH7" "HOST=cz-brn1-rh7" HOME=/home/rh7adm" PATH=/sapdb/clients/RH7/bin:/sapdb/programs/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/sap/RH7/SYS/exe/uc/linuxx86_64:/usr/sap/RH7/SYS/exe/run:/home/rh7adm:." "DIR_LIBRARY=/usr/sap/RH7/SYS/exe/run" "LD_LIBRARY_PATH=/usr/sap/RH7/SYS/exe/run:/usr/sap/RH7/SYS/exe/uc/linuxx86_64:/sapdb/clients/RH7/lib" "RSEC_SSFS_DATAPATH=/usr/sap/RH7/SYS/global/security/rsecssfs/data" "RSEC_SSFS_KEYPATH=/usr/sap/RH7/SYS/global/security/rsecssfs/key" KillMode=none SendSIGKILL=no TimeoutSec=5min TimeoutStopSec=5min User=rh7adm Group=sapsys ExecStart=/usr/sap/startsap ExecStop=/usr/sap/stopsap [Install] WantedBy=graphical.target
发布于 2021-05-03 13:34:48
在我的Oracle DB被关闭之前,我有类似的执行脚本的需求,我想我应该在这里分享我的发现,以防其他人在同一篇文章上寻找解决方案。
在我看来,oracle的oracle-ohasd.service似乎从未彻底关闭过数据库。但是不管oracle db是否干净地关闭,我希望我的脚本在执行oracle-ohasd.service之前执行这个节点的DG切换和OEM断电。所以我就是这么做的。
我申报了两项服务。
WDOracle-快门服务-这处理执行我的关闭前脚本。要让它正常工作,关键是在我的WDOracle-快门服务中添加“and =WDOracle-快门. provided”到oracle提供"oracle-ohsasd.service“,并在我的WDOracle-provided.服务中添加"After=oracle-ohasd.service”。在我的WDOracle-快门服务中可能也需要“were、Requires和RequiresMountsFor”,但在oracle中添加“were=WDOracle-快门下降.Requires”是我为使其正常工作所做的最后一步。
WDOracle--db.service--是在服务器和数据库启动后删除我的OEM中断的服务。它还检查OEM中的生命周期状态,并根据DB_ROLE是主备用还是物理备用来调整它。
以下是我对所涉及的3项服务的设置。
cat /usr/lib/systemd/system/WDOracle-shutdown.service
[Unit]
Description=Oracle Blackout Creation
Before=shutdown.target reboot.target halt.target
After=oracle-ohasd.service
Requires=network-online.target network.target multi-user.target oracle-ohasd.service
RequiresMountsFor=/opt/apps/oem /opt/apps/oracle /opt/apps/grid
[Service]
KillMode=none
ExecStart=/bin/true
ExecStop=/opt/apps/oracle/scripts/WDOracle-db.sh stop
RemainAfterExit=yes
Type=oneshot
[Install]
WantedBy=multi-user.targetcat /etc/systemd/system/WDOracle-db.service
[Unit]
Description=WD Oracle Non-Prod DB service
After=network-online.target remote-fs.target autofs.service oracle-ohasd.service
[Service]
User=root
Type=forking
ExecStart=/opt/apps/oracle/scripts/WDOracle-db.sh start
TimeoutSec=0
RemainAfterExit=true
[Install]
WantedBy=multi-user.targetcat /etc/system/system/oracle-ohasd.service
[Unit]
Description=Oracle High Availability Services
After=network-online.target remote-fs.target autofs.service
Before=WDOracle-shutdown.service
Wants=network-online.target remote-fs.target
[Service]
ExecStart=/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null
ExecStop=/etc/init.d/init.ohasd stop >/dev/null 2>&1 </dev/null
TimeoutStopSec=60min
Type=simple
Restart=always
KillMode=process
SendSIGKILL=yes
StartLimitBurst=0
[Install]
WantedBy=multi-user.target graphical.targethttps://unix.stackexchange.com/questions/234786
复制相似问题