Oracle RMAN备份和清理过期归档的通用脚本

bash 复制代码
#!/usr/bin/ksh

today=`date +%d`

last_day=`cal | xargs | awk '{print $NF}'`

if [ "$today" = "$last_day" ]; then

exit 1

fi

. /home/oracle/.profile

vdat=`date +%Y%m%d`

mkdir -p /rmanbackup/$vdat

mkdir -p /rmanbackup/$vdat

logfile=/rmanbackup/$vdat/fullbackup_$vdat.log

rman target / nocatalog log=$logfile

run

{

ALLOCATE CHANNEL ch1 DEVICE TYPE disk;

ALLOCATE CHANNEL ch2 DEVICE TYPE disk;

ALLOCATE CHANNEL ch3 DEVICE TYPE disk;

ALLOCATE CHANNEL ch4 DEVICE TYPE disk;

backup as compressed backupset database format '/rmanbackup/$vdat/fullbackup_%u.bak' include current controlfile;

sql 'alter system archive log current';

backup archivelog all format '/rmanbackup/$vdat/archbackup_%u.bak';

backup current controlfile format '/rmanbackup/$vdat/ctl_%d_%T.bak';

backup spfile format '/rmanbackup/$vdat/SPFILE_%T_%s_%p.bak';

crosscheck backup;

crosscheck archivelog all;

delete noprompt archivelog until time 'sysdate-14'; 

delete force noprompt archivelog until time 'sysdate-2' ;

delete noprompt expired backup;

delete noprompt obsolete;

release channel ch1;

release channel ch2;

release channel ch3;

release channel ch4;

}

exit;

EOF

1、备份1次的不再备份

bash 复制代码
backup archivelog all format '/rmanbackup/backupytj/$vdat/archbackup_%u.bak' not backed up 1 times;

2、备份没有备份过的归档日志

bash 复制代码
backup archivelog all not backed up;

00 10 * * * find /rmanbackup/backupsets -name "*" ! -name "*.sh" ! -name rmanbackup -ctime +3 -exec rm -rf {} \;

3、定时删除归档备份文件的脚本

bash 复制代码
#!/bin/sh
BACK_DIR=/oracle-data/clear_archlog_task/log
export DATE=`date +%F`
echo "      " >> $BACK_DIR/${DATE}_rman_backup.log
echo `date '+%Y-%m-%d %H:%M:%S'` >> $BACK_DIR/${DATE}_rman_backup.log
su - oracle -c "
mkdir -p $BACK_DIR
rman log=$BACK_DIR/${DATE}_rman_backup.log target / <<EOF
run{
crosscheck archivelog all;
delete noprompt archivelog all completed before 'sysdate-1';
}
exit;
EOF
"
echo "delete success" >> $BACK_DIR/${DATE}_rman_backup.log
相关推荐
这个DBA有点耶3 小时前
从OLTP到OLAP到HTAP:数据库负载分类的技术演进与选型指南
数据库·mysql·架构
YangYang9YangYan5 小时前
商业数据分析校招项目怎么选,附项目设计与简历包装思路
大数据·数据库·数据分析
李白客5 小时前
数据库培训怎么选?零基础到DBA的学习路线与机构认证对比(2026)
数据库·学习
shark-chili5 小时前
关于AI辅助编程的认知
数据库·人工智能·redis·macos·缓存
SendTomo5 小时前
.ico透明图标在线生成下载平台深度解析
大数据·数据结构·数据库·数据仓库·个人开发
DarkAthena5 小时前
【DuckDB】在DuckDB中查询ORACLE的数据的三种方式
oracle·duckdb
蓝速科技5 小时前
国产化信创终端等保合规核心防护与落地方案丨蓝速科技
大数据·运维·数据库·人工智能·科技
IvorySQL5 小时前
PostgreSQL 日报|在线校验和特性被回退(9 月 17 日)
数据库·人工智能·postgresql
实验室管理云平台6 小时前
北京盛元广通检测管理方案:信息集成、质量控制与移动应用
大数据·数据库·科技
IT大白鼠6 小时前
MySQL 高可用系列 · Orchestrator + ProxySQL 第三篇——核心原理精讲
数据库·mysql·架构