是一种用于集备份(backup)、还原(restore)和恢复(recover)数据库于一体的Oracle 工具,支持命令行及图形界面操作
能够备份整个数据库、表空间、数据文件、控制文件、归档文件以及Spfile参数文件。
支持增量数据块级别的备份和块级别的介质恢复
可以保存频繁执行的备份恢复脚本
可以实现数据库的克隆、使用RMAN建立备用数据库
支持镜像备份与备份集,可以备份到磁盘与磁带
管理备份与恢复任务
可增加备份并发度或限制I/O减少备份给数据库带来的影响
在备份期间检查损坏的数据块
支持在备份期间使用压缩特性来减少磁盘空间的占用
二、RMAN组件
1. RMAN可执行程序
在Windows操作系统中为rman.exe,在Unix系统中为rman程序所在位置:$ORACLE_HOME/bin
a.进程与内存要求
更多的进程的需要大池的分配
b.基本环境变量需求
ORACLE_SID,ORACLE_HOME,PATH,NLS_LANG,对基于时间的备份与恢复,需要另外设置NLS_DATE_FORMAT
c.权限要求
需要sysdba系统权限
如果是本地,也可以采用OS认证,远程需要采用密码文件认证
d.版本要求
RMAN工具版本与目标数据库必须是同一个版本。如使用恢复目录还需要注意
创建rman恢复目录的脚本版本必须大于或等于恢复目录所在数据库的版本
创建rman恢复目录的脚本版本必须大于或等于目标数据库版本
2. 目标数据库
目标数据库即指想要备份、还原与恢复的数据库。RMAN可执行程序一次只能连接一个数据库
目标数据库的控制文件存储了RMAN所需的信息(存储仓库使用控制文件时),RMAN通过读取控制文件来确定目标数据库的物理结构,
要备份的数据文件的位置,归档信息等,在使用RMAN时会对控制文件进行更新。
3. 服务器进程与通道
RMAN可从从远程或本地通过普通的服务器会话与调用PL/SQL连接到实例,RMAN启动后会产生一个普通的服务器进程
一旦备份与还原操作启动,则RMAN会根据配置启用一个或多个通道
通道简言之即是完成文件复制工作的的服务器进程,多通道则实现了并行执行操作
通道分为备份或还原到磁盘的磁盘通道(disk channel)、备份还原到磁带的磁带通道(SBT),可以自动或手动分配通道
4.存储仓库
存储了与目标数据库及其备份相关的元数据
包含目标数据库物理结构的详细信息、数据文件的位置
已完成的所有备份的细节
RMAN的永久配置信息
存储仓库始终被存储在目标数据库的控制文件内,或存储在恢复目录内(一个单独的Oracle数据库)
参数control_file_record_keep_time决定了控制文件里可重复使用的记录所能保存的最小天数
当一条新的记录需要添加到可重用记录的空间时,并且最老的记录在可重用记录空间中还没有老化,即实际保留的天数未超过
这个参数规定的天数,则控制文件中可重用记录部分的空间将被自动扩展,此时控制文件尺寸将会变大。
5.恢复目录
可以将目标数据库的备份恢复,元数据等相关信息写入到一个单独的数据库,这个单独的数据库即为恢复目录
恢复目录可以存储RMAN脚本,而非恢复目录情况下,则备份恢复脚本存储为操作系统文件
恢复目录的内容通常包括,数据文件、归档日志备份集,备份片,镜像副本、RMAN存储脚本,永久久的配置信息等
建议将恢复目录放置到与目标数据库不同的主机之上
6.支持介质管理库
介质管理库用于RMAN从磁带进行备份与还原
RMAN支持主流的磁带库设备与软件(IBM,Hewlett Packard)
7.辅助数据库(Standby Database $ duplicate database)
(1). Standby Database:是目标数据库的一个副本,使用目标数据库(主数据库)archived log将其更新,不具有唯一的DBID
RMAN可以创建或备份Standby Database,可用于主数据库的故障转移
(2). Duplicate Database:是目标数据库的一个副本或子集,且拥有唯一的DBID,从而独立于主数据库
能够在相同的恢复目录内作为一个主数据库注册,通常用于测试目的
(3). TSPITR(tablespace point-in-time recovery):表空间时点恢复,将一个或多个表空间恢复到非当前状态,而其它表空间保留当前状态
8.备份目的地
默认的备份目的地为闪回区,$ORACLE_BASE/flash_recovery_area/
可以设置参数DB_RECOVERY_FILE_DEST参数和DB_RECOVERY_FILE_SIZE进行调整
15.2.1创建回复目录
恢复目录是由rman使用和维护,用来储存备份信息的一种储存对象。通过回复目录rman可以从目标数据库的控制文件中获取信息。一维护备份信息。创建恢复目录的步骤如下:
<1>首先确定数据库处于归档模式下。
SQL> conn system/oracle as sysdba
已连接。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 54
下一个存档日志序列 54
当前日志序列 56
<2>创建备份表空间(用来存储相关的备份数据)和rman备份用户。然后对创建的rman用户授予相关的权限,权限中必须包括recovery_catalog_owner
SQL> create tablespace recovery_tbs
2 datafile 'g:\myrman\recovery_tbs.dbf' size 10m
3 autoextend on next 5m
4 extent management local;
表空间已创建。
SQL> create user rman_admin identified by rman_admin
2 default tablespace recovery_tbs;
用户已创建。
SQL> grant connect,resource,recovery_catalog_owner to rman_admin;
授权成功。
<3>创建恢复目录。首先需要启动rman工具,并使用用户登录,来创建恢复目录。
SQL> host
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
F:\oracleintall\intall1\product\11.2.0\dbhome_1\BIN>c:
C:\>rman
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 11 11:34:28 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
<3>创建恢复目录。首先需要启动rman工具,并使用rman用户登录,来创建恢复目录:
RMAN> connect catalog rmam_admin/rman_admin
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-06167: 已经连接
如果想要删除恢复目录,可以使用如下语句:
drop catalog;
提示:可以在rman窗口中输入exit或者quit命令,关闭或者退出rman应用程序。
15.2.2连接到目标数据库
连接到目标数据库是是指建立rman与目标数据库之间的连接。
在rman中,可以在无恢复目录和有恢复目录这两种情况下连接到目标数据库
1、无恢复目录
使用无恢复目录的rman连接到目标数据库是,可以使用以下集中连接方式。
<1>使用rman target语句:
C:\>rman target/
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 11 15:30:40 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORACLE (DBID=1768241175)
RMAN> exit
恢复管理器完成。
C:\>rman nocatalog;
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 11 15:31:03 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
RMAN> exit
恢复管理器完成。
C:\>rman target sys/admin nocatalog
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 11 15:31:31 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORACLE (DBID=1768241175)
使用目标数据库控制文件替代恢复目录
2、有恢复目录
C:\>rman target sys/admin catalog rman_admin/rman_admin
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 11 15:28:41 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORACLE (DBID=1768241175)
连接到恢复目录数据库
注意:
如果rman用户与目标数据库不再同一个数据库上,则必须在target选项后,使用"@database_name",例如rman target sys/admin@mydbcatalog rman_admin/rman_admin
在rman中有恢复目录的情况下,连接目标数据库还需哟啊对数据库进行注册。
注册目标数据库时,需要使用register命令,如下:
提示:注册数据库就是将目标数据库的控制文件存储到恢复目录中,同一个恢复目录只能更新一个目标数据库。
C:\>rman target sys/admin catalog rman_admin/rman_admin
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 11 15:40:40 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORACLE (DBID=1768241175)
连接到恢复目录数据库
RMAN> register database;
注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
另外,在使用rman恢复管理器执行backup、copy或者restore命令时。恢复目录自动进行更新,但是
有关日志与归档日志信息没有自动记录恢复目录。需要执行如下命令,进行目录同步:
RMAN> resync catalog ;
正在启动全部恢复目录的 resync
完成全部 resync
3、取消目标数据库的注册
到这里,rman恢复目录与目标数据库已经连接成功,如果取消目标数据库的注册,可以有如下这两种方法:
<1>
RMAN> unregister database;
数据库名为 "ORACLE" 且 DBID 为 1768241175
是否确实要注销数据库 (输入 YES 或 NO)? yes
已从恢复目录中注销数据库
<2>使用过程、
查询数据库字典db,可以获取db_key与db_id值,然后连接到rman恢复目录数据库,执行dbms_rcvcat.unregisterdatabase过程取消目标数据库。
首先连接到拥有恢复目录的用户模式,这里使用rman_admin用户,如下:
C:\>sqlplus
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 11 16:00:06 2015
Copyright (c) 1982, 2010, Oracle. All rights reserved.
请输入用户名: rman_admin
输入口令:
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
前面:连接到目标数据库: ORACLE (DBID=1768241175)
C:\>rman target sys/admin catalog rman_admin/rman_admin
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 11 15:40:40 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORACLE (DBID=1768241175)
连接到恢复目录数据库
SQL> select * from db where db_id=1768241175;
DB_KEY DB_ID CURR_DBINC_KEY
---------- ---------- --------------
95 1768241175 96
从上述查询结构可以看出,db_id值1768241175对应的db_key值为95
执行dbms_rcvcat.unregisterdatabase(95,1768241175);
15.2.3rman命令
15.2.4rman操作目标数据库
使用rman连接到数据库后,可以在rman中使用数据库操作命令启动和关闭目标数据库。数据库启动分为3个阶段——启动数据库实例、加载数据库文件和打开数据库。
在使用srartup命令启动数据库时,可以使用一些选项设置数据库的启动状态。常用的数据库启动命令如下:
<1>startup
表示数据库库以正常方式启动数据库实例,加载数据库文件,并且打开数据库。
<2>startup force
启动数据库时,使用force选项,表示以强制方式打开数据库。
<3>srartup mount
启动数据库时,使用mount选项,表示启动数据库实例,而且加载数据库文件,但是不打开数据库,主要在切换数据库运行模式或者进行恢复时使用。
<4>startup nomount
使用nomount选项,表示只启动数据库实例,不加载数据库文件,也不打开数据库
提示:
使用srartup mount启动数据库后,则需要使用alter database open命令打开数据库。
例15.1:默认情况下,数据库的模式为非归档模式。将数据库的非归档模式修改为归档模式:
请输入用户名: system
输入口令:
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> conn sys/admin as sysdba;
已连接。
SQL> shutdown;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> start mount;
SP2-0310: 无法打开文件 "mount.sql"
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 1486495744 bytes
Fixed Size 2175888 bytes
Variable Size 973081712 bytes
Database Buffers 503316480 bytes
Redo Buffers 7921664 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 55
下一个存档日志序列 57
当前日志序列 57
SQL> alter database open;
数据库已更改。
15.2.5设置rman
为了简化数据库管理员的工作,可以维持rman中参数的设置,也就是说,这些设置在rman各个回话之间都是有效,通过该show all命令可以查看这些参数的设置信息。
例15.2:在rman中连接到目标数据库后,执行show all命令:
如下:
C:\>rman target system/oracle catalog rman_admin/rman_admin
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 11 17:08:37 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORACLE (DBID=1768241175)
连接到恢复目录数据库
RMAN> show all;
db_unique_name 为 ORACLE 的数据库的 RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'F:\ORACLEINTALL\INTALL1\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFORACLE.ORA'; # default
提示:
任何设置为默认值的参数在相应configure语句的末尾都会标有#default
根据应用程序的需要,可以对rman中的这些参数进行重新设置。下面将介绍及格常见的rman持久性设置
1、保留策略
2、设备类型
3、控制文件自动备份
15.2.6 rman数据字典
在目标数据库和恢复目录数据库上,有许多oracle数据库字典和动态性能视图都包含与rman操作相关的信息。
例15.6:使用v$rman_configuration视图,查询对rman重新设置后的参数值,具体如下:
SQL> select * from v$rman_configuration;
未选定行
SQL> desc v$rman_configuration;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
CONF# NUMBER
NAME VARCHAR2(65)
VALUE VARCHAR2(1025)
15.3 rman备份
在使用rman进行备份时,可以进行的备份类型包括:完全备份(Full Backup)、增量备份(Incremental BackUP)和镜像复制等。在实现备份时,可以使用backup命令或copyto命令。
15.3.2完全备份
完全备份是指对数据库中使用过的所有数据块进行备份,当然,没有使用过的数据块不做备份的,在进行完全备份时。
rman将数据文件中所有的非空白数据块都复制到备份集中。
提示:在rman中,可以对数据文件进行完全备份或者增量备份。但是对于控制文件和日志文件只能进行完全备份。
在一个完全数据块备份中,将所有的数据库文件复制到闪回恢复区。
例15.7:通过backup full 语句,对数据库执行完全备份,使用tag参数和format参数指定备份文件位置以及备份文件的名称格式。
具体如下:
<1>登陆
C:\>rman target scott/tiger catalog rman_admin/rman_admin
恢复管理器: Release 11.2.0.1.0 - Production on 星期六 12月 12 20:18:09 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORACLE (DBID=1768241175)
连接到恢复目录数据库
<2>备份
RMAN> run{
2> #backup the complete database
3> allocate channel ch1 type disk;
4> backup full
5> tag full_db_backup format "g:\db_t%t_s%s_p%p" (database);
6> release channel ch1;
7> }
注释:
第三行语句:表示打开一个disk通道;
第4、5行表示对数据库执行全备份;
第6行表示关闭通道,也就是释放通道。
分配的通道: ch1
通道 ch1: SID=25 设备类型=DISK
启动 backup 于 12-12月-15
通道 ch1: 正在启动全部数据文件备份集
通道 ch1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSAUX01.DBF
输入数据文件: 文件号=00005 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\EXAMPLE01.DBF
输入数据文件: 文件号=00003 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\UNDOTBS01.DBF
输入数据文件: 文件号=00006 名称=G:\MYRMAN\RECOVERY_TBS.DBF
输入数据文件: 文件号=00004 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
通道 ch1: 正在启动段 1 于 12-12月-15
通道 ch1: 已完成段 1 于 12-12月-15
段句柄=G:\DB_T898288133_S1_P1 标记=FULL_DB_BACKUP 注释=NONE
通道 ch1: 备份集已完成, 经过时间:00:02:36
通道 ch1: 正在启动全部数据文件备份集
通道 ch1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ch1: 正在启动段 1 于 12-12月-15
通道 ch1: 已完成段 1 于 12-12月-15
段句柄=G:\DB_T898288289_S2_P1 标记=FULL_DB_BACKUP 注释=NONE
通道 ch1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 12-12月-15
释放的通道: ch1
提示:在rman中,可以将需要执行的sql语句放在一个run{}语句中进行执行,其中,使用#表示的语句为注释,将不会被执行。run{}语句中各个执行语句,在结束时都必须带有分号。
备份完成后,在制定的目录( g:\backup\)下将得到相应备份文件;
例15.8在rman中执行list命令,查看简历的备份集与备份段信息。如下:
RMAN> list backup of database;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
313 Full 1.15G DISK 00:02:27 12-12月-15
BP 关键字: 316 状态: AVAILABLE 已压缩: NO 标记: FULL_DB_BACKUP
段名:G:\DB_T898288133_S1_P1
备份集 313 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 2472164 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSTEM01.DBF
2 Full 2472164 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSAUX01.DBF
3 Full 2472164 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\UNDOTBS01.DBF
4 Full 2472164 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
5 Full 2472164 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\EXAMPLE01.DBF
6 Full 2472164 12-12月-15 G:\MYRMAN\RECOVERY_TBS.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
333 Full 1.15G DISK 00:02:24 12-12月-15
BP 关键字: 337 状态: AVAILABLE 已压缩: NO 标记: FULL_DB_BACKUP
段名:G:\BACKUP\DB_T898288807_S3_P1
备份集 333 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 2472699 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSTEM01.DBF
2 Full 2472699 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSAUX01.DBF
3 Full 2472699 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\UNDOTBS01.DBF
4 Full 2472699 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
5 Full 2472699 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\EXAMPLE01.DBF
6 Full 2472699 12-12月-15 G:\MYRMAN\RECOVERY_TBS.DBF
15.3.3备份表空间
在数据库中创建一个表空间后,或者在对表空间执行修改操作后,立即对这个表空间进行备份,可以在出现戒指失效是缩短恢复表空间所花费的时间。
例15.9使用backup命令备份users表空间,使用tag参数,指定一个标记信息;
使用format参数,指定备份文件的保存文职以及备份文件的名称格式,语句如下:
RMAN> run{
2> allocate channel ch1 type disk;
3> backup tag tbs_users_read_only format "g:\backup\tbs_users_t%t_s%s"
4> (tablespace users);
5> release channel ch1;
6> }
分配的通道: ch1
通道 ch1: SID=25 设备类型=DISK
启动 backup 于 12-12月-15
通道 ch1: 正在启动全部数据文件备份集
通道 ch1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00004 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
通道 ch1: 正在启动段 1 于 12-12月-15
通道 ch1: 已完成段 1 于 12-12月-15
段句柄=G:\BACKUP\TBS_USERS_T898289731_S5 标记=TBS_USERS_READ_ONLY 注释=NONE
通道 ch1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 12-12月-15
释放的通道: ch1
执行list backup of tablespace 命令,查看备份的表空间的信息、
RMAN> list backup of tablespace 'USERS';
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
313 Full 1.15G DISK 00:02:27 12-12月-15
BP 关键字: 316 状态: AVAILABLE 已压缩: NO 标记: FULL_DB_BACKUP
段名:G:\DB_T898288133_S1_P1
备份集 313 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
4 Full 2472164 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
333 Full 1.15G DISK 00:02:24 12-12月-15
BP 关键字: 337 状态: AVAILABLE 已压缩: NO 标记: FULL_DB_BACKUP
段名:G:\BACKUP\DB_T898288807_S3_P1
备份集 333 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
4 Full 2472699 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
353 Full 4.11M DISK 00:00:01 12-12月-15
BP 关键字: 356 状态: AVAILABLE 已压缩: NO 标记: TBS_USERS_READ_ONLY
段名:G:\BACKUP\TBS_USERS_T898289731_S5
备份集 353 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
4 Full 2473237 12-12月-15 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
15.3.4增量备份
增量备份就是将那些与前一备份相比发生变化的数据库复制到备份集中,进行增量备份时,rman会读取整个数据文件,通过rman可以为单独的数据库文件、表空间或整个数据库进行增量备份。
在rman中建立的增量备份可以具有不同的级别,每个级别都使用一个不小于0的整数来标示,也就是在backup命令中使用level关键字指定的,例如level=0标示备份的级别为0,level=1标示备份级别为1
提示:
级别为0的赠礼备份是所用的增量备份的基础,因为进行级别为0的备份时,rman会将数据文件中所有的已使用的数据块都复制到备份集中个,类似与监理完全备份,级别大于0的增量备份将彪悍与前一次相比发生了变化的数据块。
增量备份的两种方式:
方式 关键字 默认 说明
差异备份 differentifal 是 将备份上一次进行的统计或者低级备份依赖所有变化的数据块
累计备份 cumulative 否 将备份上一次低级备份以来所有的数据块
提示:
当数据库运行在归档模式下时,既可以在数据库关闭状态下进行增量备份,也可以在数据库打开状态进行增量备份。而当数据库运行在非归档模式下时,只能在关闭数据库后进行增量备份,因为增量备份需要使用scn来识别已经更改的数据块。
例15.10使用增量备份,执行0级增量备份,也就是实现完全数据库库备份。具体语句:
RMAN> run{
2> allocate channel ch1 type disk;
3> backup incremental level 0 as compressed backupset database;
4> release channel ch1;
5> }
分配的通道: ch1
通道 ch1: SID=25 设备类型=DISK
启动 backup 于 12-12月-15
通道 ch1: 正在启动压缩的增量级别 0 数据文件备份集
通道 ch1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSAUX01.DBF
输入数据文件: 文件号=00005 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\EXAMPLE01.DBF
输入数据文件: 文件号=00003 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\UNDOTBS01.DBF
输入数据文件: 文件号=00006 名称=G:\MYRMAN\RECOVERY_TBS.DBF
输入数据文件: 文件号=00004 名称=F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
通道 ch1: 正在启动段 1 于 12-12月-15
提示:
在备份语句中没有指定备份文件的保存路径,默认情况下,
F:\oracleintall\intall1\flash_recovery_area\oracle
在这个0级备份完成之后的任何时刻,可以执行增量为1级的差异备份,语句如下:
RMAN> backup incremental level 1
2> as compressed backupset database;
如果尽在backup命令中指定incremental选项,默认创建的增量备份为差异增量备份。如果想要建立累计增量备份,还需要在backup命令中指定cumulative选项。
如下:
完成 backup 于 12-12月-15
RMAN> backup incremental level 1 cumulative
2> as compressed backupset database;
提示:
采用累积备份还是差异备份,在一定程度上取决于cpu中期的时间,磁盘的可用空间,以及执行的数据库活动数量。
1、使用累积备份意味着备份文件会变得日益的庞大,并花费更长的时间,但是恢复操作比较简单。
2、使用差异备份只记录上一次备份以来的变化,但是执行恢复可能花费更长的时间。
3、总结:
在具有大量插入和更新的数据环境中能个,增量备份可能更容易管理。对于变化很少的数据环境,更适合使用差异备份。
15.3.5镜像复制
rman可以使用copy命令创建数据文件的追却副本,即镜像副本(image copies)。通过copy命令可以复制数据库文件、归档日志文件和控制文件。copy命令的基本语法:
提示:
镜像副本可以作为一个完全备份,也可以是增量备份策略中的0级增量备份,如果没有指定备份类型,则默认full。
例15.11使用copy命令备份数据库时,需要管理员指定每个需要备份的数据文件,并且设置镜像副本的名称。具体操作如下:
<1>rman中使用report命令获取需要备份的数据文件信息。如下:
RMAN> report schema;
db_unique_name 为 ORACLE 的数据库的数据库方案报表
永久数据文件列表
===========================
文件大小 (MB) 表空间 回退段数据文件名称
---- -------- -------------------- ------- ------------------------
1 710 SYSTEM YES F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSTEM01.DBF
2 600 SYSAUX NO F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\SYSAUX01.DBF
3 85 UNDOTBS1 YES F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\UNDOTBS01.DBF
4 6 USERS NO F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\USERS01.DBF
5 100 EXAMPLE NO F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\EXAMPLE01.DBF
6 10 RECOVERY_TBS NO G:\MYRMAN\RECOVERY_TBS.DBF
临时文件列表
=======================
文件大小 (MB) 表空间 最大大小 (MB) 临时文件名称
---- -------- -------------------- ----------- --------------------
1 29 TEMP 32767 F:\ORACLEINTALL\INTALL1\ORADATA\ORACLE\TEMP01.DBF
<2>使用copy命令对列出的各个文件进行备份。如下:
使用copy to 语句,将数据文件1备份为
将数据文件2备份为
提示:
在rman中使用使用copy命令创建文件的镜像副本时,他将复制所用的数据库包含空闲数据块,这一点与使用操作系统命令复制文件相同,此外rman还会检查创建的镜像副本是否正确。