文章目录
- 一、RMAN介绍
- 二、全量备份
- 三、增量备份
- 0级备份
- 1级增量备份
- 累积性差量备份
- 总结
- 四、压缩备份
- 压缩备份介绍
- 压缩备份操作
- 压缩备份优缺点
- 五、异常恢复
- 1、恢复前的准备
- 2、恢复数据库
- 六、RMAN相关参数
一、RMAN介绍
RMAN(Recovery Manager)是Oracle数据库的一个备份和恢复管理工具,它提供了一种集中管理和自动化备份和恢复任务的方式。RMAN可以与Oracle数据库一起使用,以提供基于磁盘和磁带的备份,可以在遇到数据丢失或数据库故障时快速恢复数据。
RMAN具有以下特点和功能:
-
集中管理:RMAN可以集中管理所有的备份和恢复任务,包括备份的创建、管理和恢复的操作。它提供了一种统一的接口来执行这些任务,可以通过命令行界面或图形化界面来操作。
-
自动化备份和恢复:RMAN支持自动化备份和恢复任务,可以设置定期备份计划,并自动执行备份任务。它还提供了一种灵活的恢复策略,可以根据需求选择恢复到某一个时间点或某一个备份集。
-
增量备份:RMAN支持增量备份,可以只备份数据库中发生变化的数据块,大大减少备份时间和存储空间的需求。增量备份还可以与全备份和归档日志一起使用,提供了一种完整的备份和恢复解决方案。
-
数据库复制和恢复:RMAN支持数据库复制和恢复,可以将一个数据库的备份还原到另一个数据库上。这种功能可以用于数据库迁移、测试和开发环境的创建等场景。
-
数据库压缩:RMAN支持对备份集和归档日志进行压缩,可以减少备份和恢复所需的存储空间。同时,RMAN还支持数据压缩选项,可以在备份过程中对数据进行压缩,减少备份时间和存储成本。
RMAN是Oracle数据库备份和恢复的重要工具,它提供了一种集中管理和自动化执行备份和恢复任务的方式,可以帮助用户保护数据,并在遇到数据丢失或数据库故障时快速恢复数据。RMAN(Recovery Manager)是Oracle数据库的一个备份和恢复管理工具,它提供了一种集中管理和自动化备份和恢复任务的方式。RMAN可以与Oracle数据库一起使用,以提供基于磁盘和磁带的备份,可以在遇到数据丢失或数据库故障时快速恢复数据。
RMAN具有以下特点和功能:
-
集中管理:RMAN可以集中管理所有的备份和恢复任务,包括备份的创建、管理和恢复的操作。它提供了一种统一的接口来执行这些任务,可以通过命令行界面或图形化界面来操作。
-
自动化备份和恢复:RMAN支持自动化备份和恢复任务,可以设置定期备份计划,并自动执行备份任务。它还提供了一种灵活的恢复策略,可以根据需求选择恢复到某一个时间点或某一个备份集。
-
增量备份:RMAN支持增量备份,可以只备份数据库中发生变化的数据块,大大减少备份时间和存储空间的需求。增量备份还可以与全备份和归档日志一起使用,提供了一种完整的备份和恢复解决方案。
-
数据库复制和恢复:RMAN支持数据库复制和恢复,可以将一个数据库的备份还原到另一个数据库上。这种功能可以用于数据库迁移、测试和开发环境的创建等场景。
-
数据库压缩:RMAN支持对备份集和归档日志进行压缩,可以减少备份和恢复所需的存储空间。同时,RMAN还支持数据压缩选项,可以在备份过程中对数据进行压缩,减少备份时间和存储成本。
RMAN是Oracle数据库备份和恢复的重要工具,它提供了一种集中管理和自动化执行备份和恢复任务的方式,可以帮助用户保护数据,并在遇到数据丢失或数据库故障时快速恢复数据。
二、全量备份
这里我所使用的机器是RAC集群
先提前创建好备份目录,并且授权
su - oracle
mkdir /u01/app/oracle/backup
chown -R oracle:oinstall /u01/app/oracle/backup/
chmod -R 770 /u01/app/oracle/backup/
rman target sys/oracle@p19c0 nocatalog
backup database format '/u01/app/oracle/backup/md_%U';
查看备份记录
list backup;
三、增量备份
0级备份
run {
allocate channel c1 type disk;
backup incremental level 0 database format '/u01/app/oracle/backup/l0_%u';
}
1级增量备份
run {
allocate channel c1 type disk;
backup incremental level 1 database format '/u01/app/oracle/backup/l1_%u';
}
2级备份以此类推
累积性差量备份
累积性需要在级别后边加cumulative
run {
allocate channel c1 type disk;
backup incremental level 1 cumulative database format '/u01/app/oracle/backup/l1c_%u';
}
总结
备份类型:
- 完全备份包含所有使用的数据文件块。
- 0 级增量备份等同于标记为 0 级的 完全备份。 累积 1 级增量备份只包含自上次 0 级增量备份以来修改过的块。
- 差异 1 级增量备份只包含自上次增量备份以来修改过的块。(默认1级备份就是差异备份)
- 2级累积增量备份上次任意级别备份至今的增量(任意一次备份至今)
四、压缩备份
压缩备份介绍
RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以通过压缩备份来减少备份数据的存储空间消耗。下面是关于RMAN压缩备份的详细介绍。
-
RMAN压缩备份的优势:
- 减少备份数据的存储空间消耗:RMAN压缩备份可以通过对备份数据进行压缩,减少备份数据的存储空间消耗。
- 提高备份和恢复性能:由于备份数据变小,RMAN压缩备份可以提高备份和恢复的性能,减少备份和恢复的时间。
- 降低存储成本:通过减少备份数据的存储空间消耗,RMAN压缩备份可以降低存储成本。
-
RMAN压缩备份的压缩级别:
- 无压缩:RMAN备份数据不进行任何压缩。
- 压缩:RMAN备份数据进行基于块的压缩,可以达到一定的压缩比。
- 高压缩:RMAN备份数据进行更高级别的压缩(例如Huffman压缩算法),可以进一步减少备份数据的存储空间消耗。
-
RMAN压缩备份的设置和使用:
- 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用
BACKUP AS COMPRESSED BACKUPSET
命令来进行备份,并将备份数据进行压缩。 - 在RMAN的配置文件(通常为rman.rcv)中,可以设置默认的压缩级别,以便在执行备份时自动启用压缩备份。
- 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用
-
RMAN压缩备份的限制:
- 压缩备份可能会增加CPU的使用量,因为压缩和解压缩备份数据需要消耗一定的计算资源。
- 高压缩级别可能会导致备份和恢复的性能降低,因为解压缩备份数据可能需要更多的时间和计算资源。
- 高压缩级别可能会增加备份和恢复的时间,因为压缩和解压缩备份数据需要消耗更多的时间。
总之,RMAN压缩备份是一种减少备份数据存储空间消耗、提高备份和恢复性能、降低存储成本的方法。但需要注意压缩备份可能增加CPU使用量、降低备份和恢复的性能,以及增加备份和恢复的时间。因此,在使用RMAN压缩备份时需要根据具体情况权衡利弊,并合理设置压缩级别。RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以通过压缩备份来减少备份数据的存储空间消耗。下面是关于RMAN压缩备份的详细介绍。
-
RMAN压缩备份的优势:
- 减少备份数据的存储空间消耗:RMAN压缩备份可以通过对备份数据进行压缩,减少备份数据的存储空间消耗。
- 提高备份和恢复性能:由于备份数据变小,RMAN压缩备份可以提高备份和恢复的性能,减少备份和恢复的时间。
- 降低存储成本:通过减少备份数据的存储空间消耗,RMAN压缩备份可以降低存储成本。
-
RMAN压缩备份的压缩级别:
- 无压缩:RMAN备份数据不进行任何压缩。
- 压缩:RMAN备份数据进行基于块的压缩,可以达到一定的压缩比。
- 高压缩:RMAN备份数据进行更高级别的压缩(例如Huffman压缩算法),可以进一步减少备份数据的存储空间消耗。
-
RMAN压缩备份的设置和使用:
- 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用
BACKUP AS COMPRESSED BACKUPSET
命令来进行备份,并将备份数据进行压缩。 - 在RMAN的配置文件(通常为rman.rcv)中,可以设置默认的压缩级别,以便在执行备份时自动启用压缩备份。
- 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用
-
RMAN压缩备份的限制:
- 压缩备份可能会增加CPU的使用量,因为压缩和解压缩备份数据需要消耗一定的计算资源。
- 高压缩级别可能会导致备份和恢复的性能降低,因为解压缩备份数据可能需要更多的时间和计算资源。
- 高压缩级别可能会增加备份和恢复的时间,因为压缩和解压缩备份数据需要消耗更多的时间。
总之,RMAN压缩备份是一种减少备份数据存储空间消耗、提高备份和恢复性能、降低存储成本的方法。但需要注意压缩备份可能增加CPU使用量、降低备份和恢复的性能,以及增加备份和恢复的时间。因此,在使用RMAN压缩备份时需要根据具体情况权衡利弊,并合理设置压缩级别。RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以通过压缩备份来减少备份数据的存储空间消耗。下面是关于RMAN压缩备份的详细介绍。
-
RMAN压缩备份的优势:
- 减少备份数据的存储空间消耗:RMAN压缩备份可以通过对备份数据进行压缩,减少备份数据的存储空间消耗。
- 提高备份和恢复性能:由于备份数据变小,RMAN压缩备份可以提高备份和恢复的性能,减少备份和恢复的时间。
- 降低存储成本:通过减少备份数据的存储空间消耗,RMAN压缩备份可以降低存储成本。
-
RMAN压缩备份的压缩级别:
- 无压缩:RMAN备份数据不进行任何压缩。
- 压缩:RMAN备份数据进行基于块的压缩,可以达到一定的压缩比。
- 高压缩:RMAN备份数据进行更高级别的压缩(例如Huffman压缩算法),可以进一步减少备份数据的存储空间消耗。
-
RMAN压缩备份的设置和使用:
- 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用
BACKUP AS COMPRESSED BACKUPSET
命令来进行备份,并将备份数据进行压缩。 - 在RMAN的配置文件(通常为rman.rcv)中,可以设置默认的压缩级别,以便在执行备份时自动启用压缩备份。
- 在执行备份命令时,可以通过设置压缩级别来启用RMAN压缩备份。例如,使用
-
RMAN压缩备份的限制:
- 压缩备份可能会增加CPU的使用量,因为压缩和解压缩备份数据需要消耗一定的计算资源。
- 高压缩级别可能会导致备份和恢复的性能降低,因为解压缩备份数据可能需要更多的时间和计算资源。
- 高压缩级别可能会增加备份和恢复的时间,因为压缩和解压缩备份数据需要消耗更多的时间。
总之,RMAN压缩备份是一种减少备份数据存储空间消耗、提高备份和恢复性能、降低存储成本的方法。但需要注意压缩备份可能增加CPU使用量、降低备份和恢复的性能,以及增加备份和恢复的时间。因此,在使用RMAN压缩备份时需要根据具体情况权衡利弊,并合理设置压缩级别。
压缩备份操作
run{
allocate channel c1 type disk;
backup as compressed backupset database format '/u01/app/oracle/backup/full_compressd_%U.dbf';
}
压缩备份优缺点
RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具,它可以用于压缩备份数据以节省存储空间。下面是RMAN压缩备份的优缺点介绍:
优点:
-
存储空间节省:RMAN压缩备份可以显著减小备份数据的存储空间占用。通过压缩备份,可以节省磁盘空间,并且可以存储更多的备份数据。
-
备份速度提高:压缩备份可以减小备份数据的体积,从而能够降低备份所需的时间。因为备份的数据量减小了,所以备份过程会更快速。
-
网络传输效率提高:如果将备份数据传输到远程备份存储位置,使用压缩备份可以减少数据传输所需的时间和网络带宽。
缺点:
-
CPU负载增加:RMAN压缩备份需要进行数据压缩和解压缩的操作,这会增加CPU的负载。如果压缩备份过程中CPU负载过高,可能会影响其他数据库操作的性能。
-
备份恢复时间延长:压缩备份需要进行压缩和解压缩的过程,这会增加备份恢复所需的时间。如果备份恢复速度是关键考虑因素,那么压缩备份可能不是一个理想的选择。
-
备份恢复操作复杂性增加:压缩备份需要在备份和恢复操作中使用RMAN工具,并设置相应的参数和选项。这增加了备份和恢复操作的复杂性,并可能需要更多的技术知识和经验。
总的来说,RMAN压缩备份在存储空间节省和备份速度等方面有明显的优势,但它可能会增加CPU负载,延长备份恢复时间,并增加操作复杂性。因此,在选择是否使用RMAN压缩备份时,需要综合考虑数据库的需求和限制。
五、异常恢复
1、恢复前的准备
- 进入rman
rman target sys/oracle@p19c0 nocatalog
- 备份整个数据库
backup database format '/u01/app/oracle/backup/wb_%U';
- 做0级备份
backup incremental level 0 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';
- 创建一个表t4
然后在打开一个窗口进入sqlplus中
sqlplus / as sysdba
CREATE TABLE t4(
ID NUMBER,
NAME VARCHAR2(50)
);
插入数据
insert into t4 values(0, 'jack');
insert into t4 values(1, 'henry');
查询表空间数据
select * from t4;
提交数据
commit;
我们在做一下归档切换
alter system checkpoint;
alter system switch logfile;
- 做1级增量备份
backup incremental level 1 database plus archivelog delete all input format '/u01/app/oracle/backup/all_%U';
增量备份完成
- 最后一步环境准备
退出RNAM
quit
进入sqlplus关闭数据库
首先查看数据文件位置
col name format a50;
select file#,name from v$datafile;
这里注意保存一下
停止数据库
su - oracle
## 停止集群数据库,接触ASM磁盘占用的情况,方便后边删除,人工制造异常
srvctl stop database -d p19c0
oracle用户下查看集群数据库是否完全关闭,如果没有完全关闭后序删除asm磁盘数据会报错
srvctl status database -d p19c0
- 连接到asm实例,删除所有数据文件
su - grid
asmcmd
ls +DATA/P19C0/DATAFILE/
cd +DATA/P19C0/DATAFILE/
rm +DATA/P19C0/DATAFILE/*
现在我们的准备工作就完成啦
此时数据库的数据全部丢失
2、恢复数据库
tip:首先要完成基础操作1
将数据库启动到启动到mount
状态
srvctl start database -d p19c0 -o mount
## 查看数据库状态
srvctl status database -d p19c0
- 连接RMAN
su - oracle
rman target sys/oracle@p19c0 nocatalog
提示数据库没有打开
- 开始恢复
restore database;
RMAN选择合适的备份集开始恢复,我们发现在有全备和0级增量备份的时候,RMAN优先选择了0级增量备份进行恢复
recover database;
数据库恢复完成
打开数据库
alter database open;
再次进入sqlplus查询我们之前的数据
sqlplus / as sysdba
select * from t4;
发现可以查到说明数据库已经打开了,并且数据正常
我们也可以再次进入ASM磁盘查看数据文件是否找回来
su - grid
asmcmd
ls +DATA/P19C0/DATAFILE/
恢复成功
异常恢复完成
六、RMAN相关参数
RMAN(Recovery Manager)是Oracle数据库的备份和恢复工具。它可以帮助管理员进行全量备份、增量备份、增量合并备份、数据文件备份、控制文件备份、归档日志备份等操作,并提供了一些参数供管理员配置备份和恢复策略。
下面是一些常用的RMAN参数的详细介绍:
-
CONFIGURE RETENTION POLICY
:配置备份保留策略,默认是RECOVERY WINDOW,即根据恢复窗口来决定保留多少备份;可以配置为REDUNDANCY,即根据备份的冗余数量来决定保留多少备份。 -
CONFIGURE CONTROLFILE AUTOBACKUP
:配置是否自动备份控制文件,默认是OFF,可以设置为ON来开启控制文件自动备份。 -
CONFIGURE CHANNELS
:配置备份通道的数量和类型,默认的通道类型是DISK,可以配置为SBT_TAPE来备份到磁带库。 -
CONFIGURE DEVICE TYPE
:配置备份设备的类型,默认是DISK,可以配置为SBT_TAPE来指定备份到磁带库。 -
CONFIGURE ENCRYPTION
:配置备份数据的加密选项,默认是OFF,可以设置为ON来开启备份数据的加密。 -
CONFIGURE DEFAULT DEVICE TYPE
:配置默认的备份设备类型,默认是DISK,可以配置为SBT_TAPE来指定备份到磁带库。 -
CONFIGURE ARCHIVELOG DELETION POLICY
:配置归档日志的删除策略,默认是NONE,即不删除归档日志;可以配置为APPLIED ON STANDBY,即在备库应用后删除归档日志。 -
CONFIGURE BACKUP OPTIMIZATION
:配置是否开启备份优化,默认是OFF,可以设置为ON来开启备份优化。 -
CONFIGURE AUXILIARY DESTINATION
:配置辅助实例的位置,默认是一个目录,也可以配置为一个实例。 -
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
:配置自动备份控制文件的格式,默认是"%F",可以配置为其他格式。