DSM设置时间服务器导致根据文件创建时间删除出现问题

今天在做oracle的rman定时备份时,出现一个问题。oracle服务器挂在了一个NFS网络存储,oracle的定时任务刚把数据文件备份到网络存储,就被删除了(脚本中依据文件夹创建时间清理rman备份文件夹)

rman定时备份脚本:

#!/bin/bash
#----------------------------------------------------------------------------------------------#
#                                                                                              #
#                                  *********** rman备份数据库*********                         #
#                                                                                              #
#                 备份路径:opt/oracle/backup                                                  #
#                                                                                              #
#                 备份路径挂载了网络存储                                                       #
#                                                                                              #
#                 备份集都有一个单独的文件夹,每日一次                                         #
#                                                                                              #
#                 每次备份后会删除指定天数前的备份文件夹                                       #
#                                                                                              #
#                 作者:mtb                                                                    #
#                                                                                              #
#                 时间:2018.7.17                                                              #
#                                                                                              #
#                                                                                              #
#----------------------------------------------------------------------------------------------#
#备份文件夹的名称$RMAN_BASE/date_today格式
#如/opt/oracle/backup/2018-03-23
#备份文件夹的根目录,每个备份集存储格式$RMAN_BASE/date
RMAN_BASE='/opt/oracle/backup'
#引入oracle的环境变量
source /home/oracle/.bash_profile
#date格式为xxxx-xx-xx-xx:xx:xx
#date_today=$(date +"%Y-%m-%d")   #获取系统当前日期时间
date_today=$(date +"%Y-%m-%d-%H:%M:%S")
#当前备份存放路径为$RMAN_BASE/$date_today
BACKUP_DIR=$RMAN_BASE/$date_today
#设置删除1天之前的备份文件
days=1
#如果备目录不存在则创建
if [ ! -e $BACKUP_DIR ]
    then
        mkdir -p $BACKUP_DIR
fi


#rman备份数据文件及controlfile,spfile
rman target / log=$BACKUP_DIR/backupall_rman_$date_today.log<<EOF

run {
        Allocate channel rman_1 type disk;
        Allocate channel rman_2 type disk;
        Allocate channel rman_3 type disk;
        sql 'alter system switch logfile';
        backup database format '$BACKUP_DIR/df_%T_%U.dbf';
        backup current controlfile format '$BACKUP_DIR/cf_%T_%U.ctf';
        backup spfile format '$BACKUP_DIR/sp_%T_%U.sp';
        release channel rman_1;
        release channel rman_2;
        release channel rman_3;
     }
crosscheck backup;
delete expired backup;
delete obsolete recovery WINDOW OF 7 DAYS;
list backupset;
exit;
EOF;
#删除$RMAN_BASE目录下满足2018-开头且超过指定天数的文件夹
find $RMAN_BASE/* -type d -name "2018-*" -a -mtime +$days -exec rm -rf {} \; 
[oracle@oraclelinux 2018-07-17-15:54:08]$ crontab -l
1 1 * * * /home/oracle/test.sh
[oracle@oraclelinux 2018-07-17-15:54:08]$ 

使用了根据文件夹的创建时间删除指定天数之前的文件夹,以防文件占用太多容量,发现刚备份完就被删除

确定是最后面的删除语句删除,排查发现NFS网络存储的时间是2014年,而现在时间是2018年,于是修改NFS(群辉的)时间

添加时间服务器同步时间解决问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值