-识别特定于RMAN的备份类型
-使用RMAN BACKUP命令创建备份集
-备份控制文件
-备份归档的重做日志文件
-使用RMAN COPY命令创建镜像副本
1.RMAN备份概念
Recovery Manager备份是一种服务器管理的备份
Recovery Manager使用Oracle服务器会话进行备份操作
可以备份整个数据库,表空间中的所有数据文件,选定的数据文件,控制文件,归档的重做日志文件
关闭数据库备份
-必须挂载目标数据库(未打开)
-包括数据文件、控制文件、归档的重做日志文件
打开数据库备份
-表空间不应该处于备份模式
-包括数据文件、控制文件、归档的重做日志文件
2.RMAN备份方式
(1)完整备份(Full Backup):完整备份将整个数据库的数据文件和控制文件备份到指定的备份设备或磁盘目录。这种备份方式恢复起来最简单,但备份时间和空间需求比较大。
(2)增量备份(Incremental Backup):增量备份只备份发生修改的数据块或文件,可以根据备份级别的不同划分为完全增量备份、差异增量备份和增量备份。增量备份可以省略掉已备份的数据,减小备份时间和空间需求。
(3)归档日志备份(Archive Log Backup):当数据库启用了归档模式时,归档日志备份将数据库的归档日志备份到指定的备份设备或磁盘目录。归档日志备份可以用于恢复到备份点之后的状态。
(4)端到端备份(Image Copy Backup):端到端备份是将整个数据文件逐个拷贝到备份设备或磁盘目录,不经过RMAN备份集格式的转换。端到端备份可用于物理备份的还原和数据库克隆等场景。
3.RMAN备份文件类型
(1)数据库备份(Database Backup):这是RMAN的最常见用途之一,用于备份整个数据库,包括数据文件、控制文件和日志文件。
(2)数据文件备份(Datafile Backup):RMAN可以备份单个或多个数据文件,这是实现部分备份和增量备份的重要手段。
(3)控制文件备份(Control File Backup):RMAN可以备份控制文件,这是数据库运行所必需的文件之一。控制文件备份包含了关键的数据库结构信息。
(4)归档日志备份(Archive Log Backup):RMAN可以备份数据库中的归档日志文件,这对于后续的恢复操作至关重要。
(5)SPFILE备份(Server Parameter File Backup):RMAN可以备份和恢复数据库的服务器参数文件,其中包含了数据库实例的配置信息。
此外,RMAN还支持备份和恢复其他类型的文件,如联机重做日志文件(Online Redo Log Backup)、控制文件的自动备份(Control File Autobackup)等。
4.RMAN备份目的地
(1)磁盘设备(Disk Devices):可以将备份文件直接存储在磁盘上,这是最常见和常用的备份目的地。可以使用本地磁盘或网络存储设备(如NAS、SAN)作为备份目的地。
(2)磁带设备(Tape Devices):可以将备份文件写入磁带设备,磁带备份通常用于长期存储和离线保管。使用磁带设备进行备份需要配置适当的硬件和软件支持。
(3)网络文件系统(Network File Systems):可以将备份文件存储在网络文件系统(如NFS、CIFS)上,这种方式适用于远程备份和集中化备份管理的场景。
(4)云存储(Cloud Storage):RMAN也支持将备份文件存储在云存储服务提供商(如Amazon S3、Microsoft Azure Blob Storage)上,这种方式适用于需要跨地区或跨云平台进行备份的情况。
5.RMAN备份的约束
(1)必须挂载或打开数据库:在执行RMAN备份操作之前,数据库必须处于挂载(MOUNT)或打开(OPEN)状态。这是因为备份操作需要访问数据库的控制文件和数据文件信息。
(2)不支持在线重做日志备份:RMAN备份不支持直接备份在线重做日志文件。若需要备份重做日志,可以进行归档日志备份。归档日志备份可以保留和备份数据库的历史事务记录。
(3)仅“干净”备份可用于无归档日志模式:如果数据库处于无归档日志模式,只能进行“干净”备份,即完整备份或不依赖归档日志的增量备份。因为无归档日志模式下无法获得事务的历史记录,只能从完整备份还原到备份时的状态。
(4)仅“当前”数据文件备份可用于ARCHIVELOG模式:如果数据库处于ARCHIVELOG模式,可以进行“当前”数据文件备份。这意味着备份只包括当前时间点的数据文件,不会包含已归档的历史数据。要还原到其他时间点,需要恢复数据库并应用相应的归档日志。
6.RMAN恢复管理器备份
6.1Image copy(镜像集)
镜像集是物理上的备份单元,完整地复制了数据库数据文件、控制文件和日志文件。
镜像集是对数据库文件的直接复制,不进行备份文件的逻辑处理和压缩,因此占据的存储空间通常比备份集更大。
镜像集主要用于数据文件级别的备份和恢复操作,可以实现高速的数据文件备份和还原,适用于对整个数据库进行物理复制或克隆操作。
镜像集通常通过文件系统级别的复制或者存储级别的快照来创建,而不需要数据库备份工具。
6.2Backup set (备份集)
BACKUP命令用来创建备份集。
备份集通常包含多个文件。
备份集可以写入磁盘或磁带。
需要还原操作才能从备份集中提取文件。
数据文件备份集可以是增量的,也可以是完整的。
备份集不包括从未使用过的块。
6.2.1Backup Piece备份片
备份片是备份集中的文件。
一个备份片可以包含来自多个数据文件的块。
6.3镜像集&备份集差别
总的来说,备份集和镜像集在备份的逻辑单元和方式上有所差异。
备份集适用于逻辑备份和恢复操作,允许进行有选择性和按需的备份。
镜像集适用于物理备份和恢复操作,提供更高速的整个数据文件级别的复制和还原。
选择使用备份集还是镜像集取决于具体备份和恢复的需求以及数据库管理的策略。
7.open下RMAN备份
7.1打开数据库,进入到RMAN中
rman target sys/123456@orcl nocatalog
rman:表示启动RMAN工具,使用RMAN命令行界面。
target:指定要备份/恢复的目标数据库。
nocatalog:表示不使用RMAN目录服务。RMAN目录服务是一个附加的可选组件,它提供了一种集中管理备份和恢复操作的方法。如果不需要使用RMAN目录服务,可以指定nocatalog选项。
使用target sys/123456@orcl 表示连接到名为 oracle 的数据库,使用 sys 用户,并提供其口令是 123456。其中, sys 通常是具备DBA权限(即数据库管理员)的用户,可以访问并配置数据库的各种功能。
7.2选择目录创建一个文件夹
mkdir backup
7.3对数据库进行备份
backup database format '/home/oracle/backup/md_%U';
backup database:备份数据库的命令。
format:指定备份文件名格式的选项。
‘/home/oracle/backup/md_%U’:指定备份文件所在的目录和备份文件名格式。
其中,%U表示备份集的序列号,每增加一个备份集就会在文件名中增加一个序列号。
- %U:备份集的序列号,它的值从 1 开始递增,用于标识不同的备份集。
- %u:备份集的序列号的小写版本。
- %s:备份集的序列号的字符串版本,不带前导零。
- %p:备份集的并行通道号。
7.4查看备份集
list backup;
ckp scn”(Ckp SCN)是一个表示Redo Log Checkpoint SCN(系统变更号)的属性。它记录了在备份过程中通过"checkpoint"操作在日志中记录的最新系统变更号.
8.Backup Piece Size(备份片大小)
备份片的大小可以限制如下:
RUN{
ALLOCATE CHNNEL t1 TYPE 'SBT'
MAXPIECESIZE = 4G;
BACKUP
FORMAT 'df_%t_%s_%p' FILESPERSET 3
(tablespace users);}
- %U:备份集的序列号,它的值从 1 开始递增,用于标识不同的备份集。
- %u:备份集的序列号的小写版本。
- %s:备份集的序列号的字符串版本,不带前导零。
- %p:备份集的并行通道号。
9.RMAN备份 (PLUS版)
9.1先把以前的删除掉
delete backupset 1,2;
1,2 就是BS号
9.2开始备份
run{
allocate channel d1 device type disk maxpiecesize=100M;
backup database filesperset 3;
}
9.3查看备份文件
10.指定单个文件的备份
10.1数据文件的备份
10.1.1查看数据文件
select rfile#,name from v$datafile;
10.1.2进行RMAN备份
backup datafile 4 format '/home/oracle/backup/md_%U';
10.1.3查看备份的数据
list backup;
10.2表空间的备份
10.2.1查看表空间
select tablespace_name,contents from dba_tablespaces;
10.2.2进行RMAN备份
backup tablespace example,user format '/home/oracle/backup/ts_U%';
10.2.3查看备份
list backup;
10.3控制文件的备份
使用CONFIGURE CONTROLFILE AUTOBACKUP命令启用
启用后,RMAN会在执行BACKUP或COPY命令后自动备份控制文件和当前服务器参数文件
对数据库进行结构更改后也会进行备份
备份被赋予一个默认名称
10.3.1使用默认启动命令
每次备份其他文件自动备份控制文件
configure controlfile autobackup on;
这样下次备份其他文件就会自动备份控制文件
10.3.2更改自动备份控制文件位置
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE
DISK TO '/home/oracle/backup/ctl_%F';
10.3.3单独备份控制文件
backup current controlfile;
10.3.4备份其他文件顺便备份控制文件
backup datafile 4 include current controlfile;
10.4spfile文件备份
backup spfile;
10.5归档日志文件备份
在线重做日志文件自动切换。
执行归档日志故障转移。
对需要备份的归档日志进行备份。
10.5.1备份所有日志文件
可以先查看一下日志文件
show parameter log_archive_dest_1;
BACKUP ARCHIVELOG ALL;
10.5.2备份单个日志文件
先查看日志文件序列号
SELECT SEQUENCE# FROM V$LOG_HISTORY ORDER BY FIRST_TIME;
BACKUP ARCHIVELOG FROM SEQUENCE <start_sequence_number>
UNTIL SEQUENCE <end_sequence_number>;
<start_sequence_number>
是要备份的归档日志文件的起始序列号,
<end_sequence_number>
是要备份的归档日志文件的结束序列号。
11.备份并行度
分配多个通道,可选地指定filesperset,并包含多个文件。
11.1增加并行度
说白了提高效率
run {
allocate channel c1 type disk; -- 分配类型为磁盘的通道 c1
allocate channel c2 type disk; -- 分配类型为磁盘的通道 c2
allocate channel c3 type disk; -- 分配类型为磁盘的通道 c3
backup incremental level=0 -- 执行级别为0的增量备份
format 'u01/backup/p_%U' -- 备份集的格式
datafile 1,3 channel c1 tag='sys' -- 备份数据文件 1 和 3,并使用通道 c1,标记为 'sys'
datafile 2,4,5 channel c3 tag='other'; -- 备份数据文件 2, 4 和 5,并使用通道 c3,标记为 'other'
sql 'alter system archive log current'; -- 执行 SQL 命令:切换到当前的归档日志组
}
11.2修改并行度
CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;
查看一下配置参数
进行备份
backup database format '/home/oracle/backup/p3_%U';
12.双备份集(备份+复制)
创建两个目录a,b
mkdir a
mkdir b
修改并发度为1
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
备份文件
backup copies 3 datafile 4 format '/home/oracle/a/d_%U','/home/oracle/b/d_%U';
查看
13.镜像拷贝
只能写入磁盘
可立即用于恢复;不需要恢复
是单个数据文件、归档日志或控制文件的物理副本
最像操作系统备份
能成为增量战略的一部分吗
copy datafile 4 to '/home/oracle/backup/123.dbf' tag='qwe';
查看文件
14.镜像拷贝并发度
挂载数据库以进行完整一致的备份使用REPORT SCHEMA命令列出文件。’
使用COPY命令或为每个数据文件创建一个映像副本。
使用LIST COPY命令验证副本。
15.进行增量备份
完整备份包含所有数据文件块。
差异增量备份只包含级别n或更低级别的修改块。
累积增量备份只包含级别n-1或更低的修改块。
16.监控RMAN备份
使用SET COMMAND id .命令将服务器会话与通道关联起来。
查询V$PROCESS和V$SESSION来确定哪个会话对应哪个RMAN
查询v$SESSION_LONGOPS,监控备份和拷贝的进度。
使用操作系统实用程序监视进程或线程。