本文出自头条号老王谈运维,转载请说明出处。
对于数据库运维人员,数据的备份和恢复非常重要。数据的丢失往往会给企业带来巨大的损失,因此在保证数据不丢失的情况来提升系统的性能是对DBA最基础的要求。
上一篇文章小编总结了Oracle不同损坏级别的恢复,介绍了不同程度的数据库损坏合适的数据恢复方式(地址:https://www.toutiao.com/i6701178106838778382/)。
今天主要讲述 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; }
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=1 release channel c1; release channel c2; }
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;
6.1 使用场景
备份数据库的时候没有备份归档日志文件,此时就需要对归档日志文件进行单独备份。
6.2 使用方法
1)查看系统归档日志信息
RMAN>list archivelog all;
2)备份所有归档
RMAN>backup archivelog all delete all input format '.......';
但是,在一般情况下,数据库备份计划一般通过在BACKUP DATABASE中指定PLUS ARCHIVELOG选项来直接进行归档文件的备份,备份期间,RMAN对当前联机重做日志文件进行归档,然后对当前未备份归档日志进行备份。这样,这个备份集将尽可能地包含了可用于恢复的素材,将数据库恢复到一个一致性的状态。
RMAN>run { alllocate channel c1 device type disk; allocate channel c2 device type disk; backup incremental level=0 database plus archivelog delete input; release channel c1; release channel c2; }
网站崩溃找不到原因?平台搭建无从下手?热门技术不想落伍?想要变强找不到资料?
加入[IT拯救联盟],让大牛和同伴拯救你,带你装x带你飞。定期干货分享、大牛专业解答、实用IT工具优选.....
私信小编“联盟”,即可加入我们~