工作临时碰到这种奇葩的需求,所以写了个shell脚本实现了这个功能。本着开源共享的精神,把干货分享给大家。希望能够帮助大家解决工作中碰到的这个问题。
1、需要建立2个脚本,分别开关触发器
##这个是关闭脚本
#!/bin/bash
source /home/oracle/.profile
PWD_SYS="/"
sqlplus yxtx${PWD_SYS}123456 <<!
ALTER TRIGGER JIANKONG_ORDERDETAILED DISABLE;
ALTER TRIGGER JIANKONG_ORDERDETAILED_HIS DISABLE;
ALTER TRIGGER JIANKONG_ORDERDETAILED_OHIS DISABLE;
ALTER TRIGGER JIANKONG_ORDERTICKETS DISABLE;
ALTER TRIGGER JIANKONG_ORDERTICKETS_HIS DISABLE;
ALTER TRIGGER JIANKONG_ORDERTICKETS_OHIS DISABLE;
!
##这个是开启的shell脚本
#!/bin/bash
source /home/oracle/.profile
PWD_SYS="/"
sqlplus yxtx${PWD_SYS}123456 <<!
ALTER TRIGGER JIANKONG_ORDERDETAILED enable;
ALTER TRIGGER JIANKONG_ORDERDETAILED_HIS enable;
ALTER TRIGGER JIANKONG_ORDERDETAILED_OHIS enable;
ALTER TRIGGER JIANKONG_ORDERTICKETS enable;
ALTER TRIGGER JIANKONG_ORDERTICKETS_HIS enable;
ALTER TRIGGER JIANKONG_ORDERTICKETS_OHIS enable;
!
2、建立linux系统计划任务
50 23 * * * /home/oracle/jiankong_close.sh > /home/oracle/jiankong_close.log 2>&1
* 7 * * * /home/oracle/jiankong_open.sh > /home/oracle/jiankong_open.log 2>&1
这样就可以在每天早上7点自动开启触发器,每天晚上11点50分自动关闭触发器。