4/15:设置biweekly crontab执行gather table stats命令

???? 2021-4-16 6391

  1. https://cron.help/every-2-weeks

  2. https://crontab.guru/examples.html

  • 在crontab -e 下:

  • 0 0 Fri [ $(expr $(date +%W) % 2) -eq 1 ] && /home/oracle/gather_stats_table.sh > /home/oracle/gather_stats.log

  • 在/oracle/home 下 vi gather_stats_table.sh

  • 输入‘#!/bin/bash

  • export ORACLE_SID=cdbname

  • export ORACLE_BASE=/u01/app/oracle/product/11.2.0.4/dbhome_1

  • export ORACLE_HOME=/u01/app/oracle

  • export PATH=$ORACLE_HOME/bin:$PATH e```sql export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

sqlplus / as sysdba <<EOF

alter session set container=xxxx

EXEC DBMS_STATS.gather_table_stats('SCOTT', 'EMP');

EOF

if ["$?" -ne 0 ] then echo "sqlplus error!" exit 2 else ecjp "gather stats success!" exit 0 fi



然后在Oracle home下:

chmod u+x gather_stats_table.sh
`
最后于 2021-4-20 被????编辑 ,原因:
最新回复 (4)
  • Vince 2021-4-16
    引用 2

    你文中写的/oracle/home/是指ORACLE_HOME还是/home/oracle/? 这两个是不一样的。

  • ???? 2021-4-19
    引用 3
    是/home/oracle/。 已修改????
  • 于小川 2021-4-19
    引用 4
    对,最后的Oracle home应该也是/home/oracle/,不然逻辑不通吧
  • Vince 2021-5-1
    引用 5
    我认为这个每两周的cron设置还有个小问题需要避免,设置cron任务肯定是想从当前时间开始生效,如果当前周数是偶数,那么这个cron任务第一周便不执行,而是从第二周开始执行;只有当前周数是奇数,那么cron才能从第一周开始执行
返回
发新帖