oracle增量备份

采用0112111增量备份策略,7天一个轮回
也就是周日0级备份,周1 2 4 5 6 采用2级增量备份,周3采用1级增量备份


配置控制文件备份路径
RMAN > CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/rmanbk/ccontrolfile_%F';
数据备份目录
$ mkdir -p /u01/backup/rmanbk
首先将过期天数设为7天
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
下面开始创建0级 1级 2级备份脚本


0级备份脚本
vim rman_bk_level0.sh
------0级备份----------------
#! /bin/bash
export ORACLE_SID=orcl
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
/u01/app/oracle/11.2.0/dbhome_1/bin/rman target / <<EOF
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 0 database format '/u01/backup/rmanbk/level0_%d_%s_%p_%u.bkp';
sql 'alter system archive log current';
backup archivelog all delete input format '/u01/backup/rmanbk/log_%d_%s_%p_u%.bkp';
}
crosscheck backup;
delete noprompt obsolete;
exit;
<<EOF
------------------


1级备份脚本
vim rman_bk_level1.sh
---------1级增量备份---------------
#! /bin/bash
export ORACLE_SID=orcl
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
/u01/app/oracle/11.2.0/dbhome_1/bin/rman target / <<EOF
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 1 database format '/u01/backup/rmanbk/level1_%d_%s_%p_%u.bkp';
sql 'alter system archive log current';
backup archivelog all delete input format '/u01/backup/rmanbk/log_%d_%s_%p_u%.bkp';
}
crosscheck backup;
delete noprompt obsolete;
exit;
<<EOF


2级备份脚本
vim rman_bk_level2.sh
---------2级增量备份---------------
#! /bin/bash
export ORACLE_SID=orcl
export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'
/u01/app/oracle/11.2.0/dbhome_1/bin/rman target / <<EOF
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
backup incremental level 2 database format '/u01/backup/rmanbk/level2_%d_%s_%p_%u.bkp';
sql 'alter system archive log current';
backup archivelog all delete input format '/u01/backup/rmanbk/log_%d_%s_%p_u%.bkp';
}
crosscheck backup;
delete noprompt obsolete;
release d1;
exit;
<<EOF


加入到crontab中
crontab -e
-----------
#周日0级备份
00 23 * * 0 /u01/backup_shell/rman_bk_level0.sh
#周一、二、四、五、六2级增量备份
00 23 * * 1,2,4,5,6 /u01/backup_shell/rman_bk_level2.sh
#周三1级增量备份
00 23 * * 3 /u01/backup_shell/rman_bk_level1.sh
-------------

### Oracle 数据库增量备份方法 对于Oracle数据库而言,执行增量备份是一种高效的数据保护方式。在非归档日志模式下的数据库无法支持增量备份,因此如果当前环境是非归档状态,则需先调整数据库至归档模式[^1]。 #### 使用RMAN工具进行增量备份 Recovery Manager (RMAN) 是官方推荐用于管理Oracle数据库物理备份的主要工具之一。通过命令行界面启动RMAN并与目标数据库建立连接后,可以利用一系列指令来配置并实施增量级别的备份操作[^2]。 具体来说,在Linux系统环境下,可以通过如下步骤完成基于RMAN的增量备份: ```bash $ sqlplus / as sysdba SQL> shutdown immediate; SQL> startup mount; SQL> alter database archivelog; SQL> alter database open; SQL> exit; $ rman target / ``` 一旦进入RMAN交互环境,可采用以下脚本来定义增量级别0(即基础全备)以及后续的日志切换点之后产生的更改记录作为差异或累积型增量备份的一部分[^3]: ```sql RUN { BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG TAG 'FULL_BACKUP'; } -- 执行日常增量备份时使用下面语句代替上面level 0部分 RUN { BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE PLUS ARCHIVELOG DELETE INPUT TAG='INC_LEVEL_1_CUMU'; } ``` 上述代码片段展示了如何创建不同层次的增量备份;其中`PLUS ARCHIVELOG`选项确保连同重做日志一起被纳入到备份集中去,而标签化(`TAG`)有助于后期恢复过程中快速定位所需资源[^4]。 为了自动化这一过程,还可以编写Shell脚本定期调用这些RMAN命令序列,并设置计划任务以维持持续性的数据安全防护机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值