Oracle定期清理10日分区数据

10 02 10 * * /bin/sh /home/oracle/truncate_table_partion.sh &> /dev/null

[oracle@test1 ~]$ cat /home/oracle/truncate_table_partion.sh
#!/bin/bash
source /home/oracle/.bash_profile
SDATE=$(date -d "-3 month" +%Y%m)
SPNAME="P"${SDATE}
SPNAME11=${SPNAME}"11"
SPNAME21=${SPNAME}"21"
TDATE=$(date -d "-2 month" +%Y%m)
TPNAME="P"${TDATE}
TPNAME01=${TPNAME}"01"
exec >> /home/oracle/truncate_table_partion.log
sqlplus -s / as sysdba << EOF
set feedback off heading off term off
spool on /home/oracle/truncate_table_partion.txt
ALTER TABLE pro.p_trade TRUNCATE PARTITION $SPNAME11;
ALTER TABLE pro.p_trade TRUNCATE PARTITION $SPNAME21;
ALTER TABLE pro.p_trade TRUNCATE PARTITION $TPNAME01;
spool off
exit;
EOF
date
[oracle@test1 ~]$


[oracle@test1 ~]$ SDATE=$(date -d "-3 month" +%Y%m)
[oracle@test1 ~]$ SPNAME="P"${SDATE}
[oracle@test1 ~]$ SPNAME11=${SPNAME}"11"
[oracle@test1 ~]$ SPNAME21=${SPNAME}"21"
[oracle@test1 ~]$
[oracle@test1 ~]$ echo $SPNAME11
P20200811
[oracle@test1 ~]$ echo $SPNAME21
P20200821
[oracle@test1 ~]$
[oracle@test1 ~]$ TDATE=$(date -d "-2 month" +%Y%m)
[oracle@test1 ~]$ TPNAME="P"${TDATE}
[oracle@test1 ~]$ TPNAME01=${TPNAME}"01"
[oracle@test1 ~]$
[oracle@test1 ~]$ echo $TPNAME01
P20200901
[oracle@test1 ~]$

posted @   钱若梨花落  阅读(245)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示