详解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=1
release 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;

备份归档日志

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工具优选.....

私信小编“联盟”,即可加入我们~

相关推荐