rman 归档备份 archived log 不重复备份

2024-04-17 05:44

本文主要是介绍rman 归档备份 archived log 不重复备份,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

11.2.0.3数据库环境,使用rman进行归档日志备份,想实现:

(1)每天备份归档日志,备份完并不删除归档日志

(2)归档日志备份成功一次之后,下次再备份的时候rman就自动不会再次备份这个归档日志

这个需求可以通过 backup archivelog all not backed up; 语法来实现。 使用该命令如果遇到 满足 not backed up xx times 的归档才会备份,否则即便该归档仍在DISK上未被删除 也不会重复备份, 避免了重复备份带来的问题,也无需每次备份均删除磁盘上的归档文件。

RMAN> backup archivelog all not backed up;

RMAN> backup archivelog all not backed up;

 

skipping archive log file /s01/arch/1_31_831398352.dbf; already backed on 30-NOV-13

 

此外还可以指定 备份几次以上的才不备份, 例如 这里我们要求备份2次或以上的归档 此次才不备份, 那么就是backup archivelog all not backed up 2 times;

RMAN> backup archivelog all not backed up 2 times;

 -----------------------

backup archivelog all;

delete noprompt archivelog all completed before 'sysdate -7'; 在本地保留7天的归档日志.

再备份时,如果还这是这样,,则归档会再备份一次。

加上一个子句 not backed up 1 times,就可以实现不备份已经归档的日志。

命令如下:

backup archivelog all not backed up 1 times;  不备份上次已经备份的归档

-----------------------------------

 

一、使用RMAN清楚物理删除后的记录 
可以使用RMAN来删除archivelog,具体可以按以下步骤操作: 
1、物理删除archivelog 
2、进入RMAN 
3、crosscheck archivelog all; 
4、delete expired archivelog all; 
这样就在一些Oracle的记录中查不到相应的archivelog记录了。 


二、直接使用RMAN删除archivelog 
其实在RMAN中是可以使用命令直接将ARCHIVELOG删除的,命令如下: 
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; 
表示删除7天以前的所有archivelog,但是这个命令的缺点是无法对archivelog进行细致的划分。 


三、使用RMAN备份achivelog后删除 
这是一种最为稳妥的方法了,使用RMAN备份archivelog,备份后全部删除 
backup format '/u01/arch_%T_%s_%U' archivelog all delete input; 
或者 
backup database plus archivelog;


注:我在库上设置了Streams后,使用RMAN删除archivelog会导致报错RMAN-08137: WARNING: 
archive log not deleted as it is still needed. 不知道该如何解决,据说是10.2的一个bug,如果真
是bug的话,那只能在OS层设置删除,或用RMAN进行强制删除了。
10g之后的版本,Oracle在RMAN中内置增加了一项归档文件的删除策略,终于,DBA可以仅通过一项配置就
解决该问题了。该策略对应两个值:
APPLIED ON STANDBY:设置为该值时,当通过附加的DELETE INPUT子句删除Standby数据库仍需要的日志
时,会提示RMAN-08137错误。不过用户仍然可以手动地通过DELETE ARCHIVELOG方式删除。
NONE:设置为该值时,则不启用归档文件的删除策略。默认情况下就是NONE。
例如,启用APPLIED ON STANDBY:
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY; 
new RMAN configuration parameters: 
CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY; 
new RMAN configuration parameters are successfully stored 
RMAN> run
{
backup archivelog all delete input format---如果 it is still needed还是删除不了的 'ZHSVR044_%d_set=%s_piece=%p_date=%T.ARC.rmn';
}


 
1. 进入rman  
2. connect target /
3. crosscheck archivelog all;
4. delete expired archivelog all;

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
说明
SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志,如果使用了闪回功能,也会删除闪回的数据。
同样道理,也可以删除从7天前到现在的全部日志,不过这个命令要考虑清楚,做完这个删除,最好马上进行全备份数据库
DELETE ARCHIVELOG FROM TIME 'SYSDATE-7';


UNIX/LINUX下也可以通过FIND找到7天前的归档数据,使用EXEC子操作删除


find /oraarchive -xdev -mtime +7 -name "*.dbf" -exec rm -f {} ;



删除N天以前的归档日志,有两个命令:
delete archivelog until time 'sysdate-N'
delete archivelog all completed before 'sysdate-N'
 

区别已经很明显:
 list archivelog until time 'sysdate-1'; 此时是按照归档日志开始时间即fisrt_time作为截止时间
 list archivelog all completed before 'sysdate-1' 是按照归档日志完成时间即completion_time作为截止时间
试想如果删除归档日志,还是采用delete archivelog all completed before 'sysdate-N'

 

这篇关于rman 归档备份 archived log 不重复备份的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910939

相关文章

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

MySQL中查找重复值的实现

《MySQL中查找重复值的实现》查找重复值是一项常见需求,比如在数据清理、数据分析、数据质量检查等场景下,我们常常需要找出表中某列或多列的重复值,具有一定的参考价值,感兴趣的可以了解一下... 目录技术背景实现步骤方法一:使用GROUP BY和HAVING子句方法二:仅返回重复值方法三:返回完整记录方法四:

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

如何自定义一个log适配器starter

《如何自定义一个log适配器starter》:本文主要介绍如何自定义一个log适配器starter的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求Starter 项目目录结构pom.XML 配置LogInitializer实现MDCInterceptor

C#之List集合去重复对象的实现方法

《C#之List集合去重复对象的实现方法》:本文主要介绍C#之List集合去重复对象的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C# List集合去重复对象方法1、测试数据2、测试数据3、知识点补充总结C# List集合去重复对象方法1、测试数据

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、