详解Oracle不同损坏级别的备份与恢复

本文出自头条号老王谈运维,转载请说明出处 。
对于数据库运维人员,数据的备份和恢复非常重要 。数据的丢失往往会给企业带来巨大的损失,因此在保证数据不丢失的情况来提升系统的性能是对DBA最基础的要求 。
上一篇文章小编总结了Oracle不同损坏级别的恢复,介绍了不同程度的数据库损坏合适的数据恢复方式(地址:https://www.toutiao.com/i6701178106838778382/) 。
详解Oracle不同损坏级别的备份与恢复

文章插图
 
今天主要讲述 Oracle 基于 rman 在各级别下的备份,包括全备、增量备份、表空间、数据文件、控制文件、归档日志文件等,方便大家在工作中可以根据实际场景实际需求,选择合适的备份方法及备份方式 。
库完全备份1.1 使用场景
在 Oracle 数据库的数据量不大的情况下 。
1.2 采用备份集的方法
rman> run{allocate channel c1 device type disk;backup database FORMAT ’ /flash_recovery_area/backup_U%.backupset’plus archivelog delete input;release channel c1;}1.3 采用数据镜像的备份方式
数据库镜像备份采用COPY命令,或BACKUP命令的AS COPY选项 。例如在面面的备份示例中,进行了数据库的镜像完全备份:
rman>run{allocate channel c1 device type disk;backup as copy database plus archivelog delete input;release channel c1;}
详解Oracle不同损坏级别的备份与恢复

文章插图
 
增量备份2.1 使用场景
Oracle 数据库的数据量较大,如果每次都全备,会比较耗时,这时通常是采用增量备份,不过需要注意的是增量备份是以0级的全备为基础的 。例如:你可以周日进行一次全备,1-6进行增量备份 。
2.2 使用方法
1)数据库的0级备份
rman> run{allocate channel c1 device type disk;backup incremental level=0 database plus archivelog delete input;release channel c1;}说明:数据库的0级备份就是oracle的全备,但与普通的全备不同的是可以在0级备份基础上进行增量备份,而普通的全备此没有此功能 。
2)数据库的1级备份
rman> run{allocate channel c1 device type disk;backup incremental level=1 database plus archivelog delete input;release channel c1;}3)增量累计备份 在增量备份中,若干次的同级、上级增量备份可以被合并,称为增量的“累计”备份 。下面的示例描述了进行增量累计备份的过程 。所有0级备份后的1级备份被本次备份合并,备份基于磁盘进行,申请了两个磁盘通道 。同时备份归档日志,备份完成后即删除:
rman>run{allocate channel c1 device c1 type disk;allocate channel c2 device c2 type disk;backup incremental level=1 Cumulative database plus archivelog delete input;release channel c1;release channel c2;}备份数据文件3.1使用场景
如果 Oracle 数据库中只有一个或若干表空间的数据文件数据变化频繁,则 Oracle 也支持仅对这些数据文件或对应的表空间进行备份 。
3.2 使用方法
rman>run{allocate channel c1 device type disk;allocate channel c2 device type disk; backup datafile 4,5 filesperset=1release channel c1;release channel c2;}
详解Oracle不同损坏级别的备份与恢复

文章插图
 
备份表空间4.1 使用场景
? 使用场景同单独备份数据文件
4.2 使用过程
rman>run{allocate channel c1 device type disk;allocate channel c2 device type disk;backup tablespace USERS FILESPERSET=1;release channel c1;release channel c2;}通过下面的命令检查表空间的备份结果:
rman>list backup of tablespace users;备份控制文件5.1 使用场景
数据库的整体迁移,数据文件的目录发生改变,此时需要单独备份控制文件至跟踪文件中 。
5.2 使用过程
方法一: 将控制文件自动备份功能打开:
RMAN>CONFIGURE CONTROLFILE AUTOBACKUP on;方法二:单独地备份控制文件
RMAN>BACKUP CURRENT CONTROLFILE;方法三:备份其他数据库文件时附带备份控制文件
RMAN>BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;检查备份结果
RMAN>list backup of controlfile;备份归档日志【详解Oracle不同损坏级别的备份与恢复】6.1 使用场景
备份数据库的时候没有备份归档日志文件,此时就需要对归档日志文件进行单独备份 。
6.2 使用方法
1)查看系统归档日志信息
RMAN>list archivelog all;2)备份所有归档
RMAN>backup archivelog all delete all input format '.......';但是,在一般情况下,数据库备份计划一般通过在BACKUP DATABASE中指定PLUS ARCHIVELOG选项来直接进行归档文件的备份,备份期间,RMAN对当前联机重做日志文件进行归档,然后对当前未备份归档日志进行备份 。这样,这个备份集将尽可能地包含了可用于恢复的素材,将数据库恢复到一个一致性的状态 。


推荐阅读