ORACLE数据库的备份恢复(4)

RMAN简介与配置
RMAN是自动管理的备份恢复。它功能强大,使用起来虽然比手动管理的备份恢复有些繁琐,但当你全部掌握RMAN的功能后就会发现,它其实是比手动管理的备份恢复要简单的。
还有值得称道的一点是,RMAN的操作性能要好于手动管理的备份恢复。

RMAN备份恢复简介
RMAN 提供了一种灵活的方式来备份数据库、表空间、数据文件、控制文件和归档日志,因为灵活,所以有些繁琐。
RMAN有准备对坏块进行恢复的功能,这是手动管理的恢复所不具备的。RMAN可以只恢复数据文件中损毁的块。
RMAN 提供了一种灵活的方式来执行下列操作:
备份数据库、表空间、数据文件、控制文件和归档日志;存储频繁执行的备份和恢复操作;执行增量块级别备份跳过未使用的块,可以只备份自上次备份后发生更改的块。
这还可以减少在ARCHIVELOG 模式下执行恢复操作所需的时间;可以以使用RMAN 来管理备份片的大小,并通过并行化备份操作来节省时间;
RMAN 操作可以和操作系统的日程安排集成在一起,以实现自动备份操作;指定备份限制。
可以以检测块的损坏情况。可以使用V$BACKUP_CORRUPTION 和V$COPY_CORRUPTION 动态视图来获取有关在备份时检测到的块损坏的信息。
RMAN 可以提高性能,例如:
自动并行化备份、还原和恢复操作,在联机数据库备份期间不生成额外的重做日志,为避免干扰OLTP 工作,
限制备份操作每一秒钟只对一个文件进行读取,应用多路复用技术,在保持磁带机流式处理的同时,防止任何一个文件读写溢流。
RMAN 包含一个介质管理API,可以与第三方介质管理工具一起无缝工作,使得这些工具可以与存储设备实现交互,从而提高速度和可靠性。
如果使用用户管理的方法,您需要跟踪所有数据库文件和备份。在执行恢复操作时,您必须找到每个数据文件的备份、使用操作系统命令将它们复制到正确位置,然后选择要应用的日志。
而RMAN 能够自动管理这些任务。RMAN 的这一优点在使用“Oracle 管理文件” (Oracle Managed Files) 时尤其有用。
恢复管理器具有命令行界面。Oracle Enterprise Manager 也为恢复管理器提供图形用户界面。在Oracle8 或更高版本的数据库上都可以使用恢复管理器。

服务器会话:由RMAN 调用的服务器进程(UNIX) 或线程(Windows NT) 与目标数据库连接,通过PL/SQL 接口执行备份、还原和恢复功能。
目标数据库:正在使用RMAN 对其进行备份和恢复操作的数据库称作目标数据库。目标数据库的控制文件包含其物理结构的有关信息,例如,数据文件的大小和位置、联机和归档重做日志文件以及控制文件。
在备份和恢复操作过程中,由RMAN 调用的服务器会话将使用这些信息。
RMAN 资料档案库:RMAN 在执行备份、还原和恢复操作时使用的数据称为RMAN 元数据。这些元数据存储在目标数据库的控制文件和可选的恢复目录数据库中。
尽管不是必须创建恢复目录才可以使用RMAN,但使用恢复目录却是有益的。恢复目录应放在目标数据库之外的另一数据库中。
通道:要执行并记录备份和恢复操作,RMAN 需要链接至目标数据库。该链接称为通道。可以手动分配通道,也可以使用自动通道分配功能预先配置通道。
介质管理库:介质管理库(MML) 由RMAN 在写入磁带或从磁带读取时使用。使用磁带介质所需的附加介质管理软件由介质和存储系统供应商提供。

RMAN配置

RMAN恢复目录和控制文件的用法
RMAN 在RMAN 资料档案库中存储有关目标数据库及其备份和恢复操作的信息。目标数据库控制文件可用作专门存储该信息的位置。
存储的信息量会根据备份频率、生成的归档重做日志文件的数量以及RMAN 记录的保留时间而增长。
CONTROL_FILE_RECORD_KEEP_TIME 参数指定RMAN 信息至少要在控制文件中存储多少天后才会被覆盖。该值越小,信息就会越频繁地被覆盖,从而尽可能减少控制文件的增长。
如果使用恢复目录,则应选择较小的数值。缺省值为7 天。
如果控制文件太小,不能存储由CONTROL_FILE_RECORD_KEEP_TIME 指定的时间段内的所有信息,那么控制文件将会增长。在控制文件增长之前,将执行以下的特定步骤:
1. 使用控制文件中的空闲空间。
2. 覆盖早于CONTROL_FILE_RECORD_KEEP_TIME 的条目。
3. 如果没有更多空间可用,控制文件将按需增长,直到达到操作文件大小的系统限制。

通道分配
每个通道代表通向某一类型设备的一个数据流。在执行备份和恢复命令前,必须先分配通道。每个已分配的通道建立从RMAN 可执行文件到目标或辅助数据库(通过复制命令建
立的数据库或TSPITR 中使用的临时数据库)例程的连接,方法是在例程上启动服务器会
话。该服务器会话执行备份和恢复操作。只有一个RMAN 会话可与已分配的服务器会话
通信。每个通道通常对应一个输出设备,除非您的MML 具有硬件多路复用功能。
可以以手动分配通道,也可以使用自动通道分配功能预先配置要在所有RMAN 会话中使用的通道。
手动分配通道时,可在RMAN 提示符下,将ALLOCATE CHANNEL 作为RUN 命令的子命令发出,也可使用ALLOCATE CHANNEL FOR MAINTENANCE 命令。手动通道分配将覆盖自动通道分配。
恢复管理器使用通道进程在Oracle 服务器与操作系统之间进行通信。系统将为每个分配的通道创建目标数据库的一个Oracle 服务器进程。
从恢复管理器发出的每个BACKUP、COPY、RESTORE 或RECOVER 命令至少需要一个通道。
分配的通道数将是备份、还原或恢复期间使用的最大并行度。所需的介质类型确定了分配的通道类型。查询V$BACKUP_DEVICE 视图可以确定支持哪些设备类型。
可以通过在ALLOCATE CHANNEL 命令中指定参数来对COPY 和BACKUP 命令施加限制:
Read rate:限制每个文件每秒读取的缓冲区数,防止过多的磁盘I/O 降低联机性能。allocate channel … rate = integer
Kbytes:限制通道创建的备份片文件大小。这在操作系统或设备类型有最大的文件大小限制时非常有用。allocate channel … maxpiecesize = integer。
MAXOPENFILE:限制大型备份时同时打开的文件数(缺省值为16)。该参数可以防止打开的文件过多。ALLOCATE CHANNEL … MAXOPENFILE = integer
分配通道示例:
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk;
此命令为DELETE 命令分配通道,因为将从磁盘删除一个文件。维护通道不能用于任
何其它I/O 操作,如备份或复制。
RMAN> RUN {
ALLOCATE CHANNEL d1 DEVICE TYPE disk
FORMAT = '/db01/BACKUP/%U’;
BACKUP DATAFILE ’/…/u03/users01.dbf';}
第二个示例分配一个名为d1 的通道,由该通道创建的所有文件都具有格式
’/db01/BACKUP/%U’。该通道备份一个数据文件/db01/ORADATA/u03/users01.dbf。

在Oracle9i 中,可以使用自动通道分配功能预先配置要在所有RMAN 会话中使用的通道。RMAN 提供一个预先配置的DISK 通道,可以将该通道用于备份数据和将数据复制到磁盘。
此外,您还可以配置一组永久的自动通道。可通过CONFIGURE CHANNEL 命令将自动通道指定给磁盘或磁带。
可在RMAN 资料档案库中保存永久配置信息,如通道参数、并行性和缺省设备类型。可配置自动通道用于备份、还原、恢复和维护作业。
如果通道是由RMAN 自动分配的,其名称格式为ora_devicetype_n(ora_sbt_tape_n 或ora_disk_n)。
如果未指定名称格式,在缺省情况下,RMAN 将使用%U 格式,该格式可保证标识符唯一。%U 指定%u_%p_%c 的简写方式,可保证生成的备份文件名的唯一性。
%u 指定一个8 个字符长的名称,该名称由备份集号和备份集创建时间的缩写形式构成。%p 指定备份集中的备份片号。%c 指定一组双重备份片中备份片的副本数。
可通过ALLOCATE CHANNEL 命令手动分配通道来覆盖自动通道。自动分配通道功能与手动分配通道功能是互斥的,即:对于每个作业,RMAN 要么使用自动分配,要么使用手动分配。
缺省情况下,RMAN 已预先配置了一个磁盘通道,这样可以以备份到磁盘而无需进行任何手动配置。因此,如果要备份到磁盘而不是介质管理器,现在就可以开始备份到磁盘。

介质管理
要使用磁带存储数据库备份,RMAN 需要使用介质管理器。介质管理器是加载、标记和卸载顺序介质的实用程序,如用于备份、还原和恢复数据的磁带机。
Oracle 服务器调用MML 软件例行程序将数据文件备份到由介质管理器控制的介质或从介质中还原数据文件。
有些介质管理产品可以管理Oracle 数据文件与备份设备之间的整个数据移动。有些产品在存储设备与介质子系统之间使用高速连接,从而大大降低主数据库服务器的备份负载。
注:如果是备份到磁盘,Oracle 服务器无需连接到介质管理库(MML) 软件。
Oracle 备份解决方案(Oracle Backup Solutions Program, BSP) 提供一系列符合Oracle的MML 规范的介质管理产品。
使用与MML 界面相兼容的软件,Oracle 服务器会话可备份到介质管理器并请求介质管理器还原备份。请与介质供应商联系以确定其是否为Oracle BSP 的成员。
在开始将RMAN 用于介质管理器之前,必须先安装介质管理器并确保RMAN 可与其进行通信。有关该过程的具体说明,请参见介质管理器供应商的软件文档。
根据要安装的产品,相应执行以下基本步骤:
1. 在目标主机或产品网络上安装并配置介质管理软件。此阶段无需集成RMAN。
2. 确保可在目标数据库主机上创建操作系统文件的非RMAN 备份。此步骤将使以后排除故障更为容易。请参阅介质管理文档以了解如何将文件备份到介质管理器。
3. 获取并安装要与Oracle 服务器集成的第三方介质管理模块。该模块必须包含Oracle
要在访问介质管理器时加载的库。安装介质管理软件后,介质管理库应已与Oracle 服务器集成在一起。下面的恢复管理器脚本可以将数据文件备份到由介质管理器控制的磁带机上:
run {
# Allocating a channel of type 'sbt' for serial device
ALLOCATE CHANNEL ch1 DEVICE TYPE 'sbt';
BACKUP DATAFILE 3;
}
恢复管理器执行该命令时,将向执行该备份操作的Oracle 服务器会话发送备份请求。Oracle 服务器会话将输出通道标识为介质管理设备,然后请求介质管理器装载磁带并将输出写入磁带。
介质管理器会标记并记录磁带以及磁带上每个文件的名称。介质管理器可处理还原和备份操作。还原文件时,将执行以下步骤:
1. Oracle 服务器请求还原某一特定文件。
2. 介质管理器标识包含该文件的磁带,并读取磁带。
3. 介质管理器将信息传回到Oracle 服务器会话。
4. Oracle 会话将文件写入磁盘。

与RMAN 连接的类型
使用恢复管理器,可连接到下列类型的数据库:
目标数据库:使用SYSDBA 权限连接到目标数据库。您必须具有该权限才能连接成功。
恢复目录数据库:这是一种为RMAN 资料档案库配置的可选数据库。
辅助数据库:辅助数据库是使用RMAN DUPLICATE 命令创建的数据库。它也可能是在表空间时间点恢复(TSPITR) 过程中使用的临时数据库。备用数据库是生产数据库的副本,可用于灾难恢复。

恢复管理器模式
恢复管理器是一个具有自己的命令语言的命令行解释程序(CLI)。RMAN 有两种操作模式:交互模式和批处理模式。
交互模式:要交互运行RMAN 命令,请启动RMAN,然后在命令行界面中键入命令。例如,可以从UNIX 命令shell 启动RMAN,然后执行以下交互命令:
$ rman target sys/sys_pwd@db1
RMAN> BACKUP DATABASE;
批处理模式:可以以将RMAN 命令输入到一个文件中,然后通过在命令行中指定该文件的名称来运行该命令文件。命令文件的内容应与命令行中输入的命令完全相同。
以批处理模式运行时,RMAN 从命令文件中读取输入内容,然后将输出消息写入日志文件(如果已指定)。
RMAN 在编译或执行任何命令前先对整个命令文件进行语法分析。无需在文件中添加退出命令,因为RMAN 将在到达文件末尾时终止执行。
批处理模式最适合于通过操作系统作业控制设备来执行安排好的定期备份操作。
$ rman target / @tbsbk.rcv log tbs.log
在该示例中,用户已经创建了文件tbsbk.rcv,该文件包含用户本要交互使用的命令。RMAN 会将消息输出到文件tbs.log。
使用“运行RMAN 脚本” 任务,所有可从RMAN 命令行调用的命令或脚本都可以通过Oracle Enterprise Manager 发出。在“参数” (Parameters) 页上,指定“运行RMAN 脚本” 任务的参数设置。

RMAN命令与参数
将RMAN 输出写入到一个日志文件:
$ rman target sys/oracle
log $HOME/ORADATA/u03/rman.log append
调用RMAN 时执行命令文件:
$ rman target sys/oracle
log $HOME/ORADATA/u03/rman.log append
@'$HOME/STUDENT/LABS/my_rman_script.rcv'
LOG = 'filename' 参数指定用于记录RMAN 输出的文件。如果未指定该参数,
RMAN 将把其消息日志文件写入到标准输出。如果无法打开指定的文件,RMAN 不会中止,而是将输出内容写入到标准输出设备。
APPEND 关键字指定新的输出应附加在消息日志文件的末尾。如果未指定该参数,一旦存在与消息日志文件同名的文件,RMAN 将覆盖该文件。
可使用CMDFILE = 'filename' 运行包含RMAN 命令的文件。如果文件名的第一个字符是字母,则可不必将文件名放在引号内。RMAN 将在运行命令文件后终止。
RMAN 具有两种基本类型的命令:独立命令和作业命令。独立命令在RMAN 提示符下执行,通常是自包含的。下列是部分独立命令:
CHANGE、CONNECT、CREATE CATALOG, RESYNC CATALOG、CREATE SCRIPT, DELETE SCRIPT, REPLACE SCRIPT。
作业命令通常被分成几组,由RMAN 在RUN 命令块内按顺序执行。如果块内任何一个命令失败,RMAN 将停止处理;而不再继续执行块内的其它命令。
有一些命令既可在提示符下发出也可在RUN 命令中发出。如果在RMAN 提示符下执行独立命令,可利用自动分配通道的功能。可以按交互模式或批处理模式执行命令。
独立命令示例:
装载目标数据库
发出启动命令,如下所示:
RMAN> STARTUP MOUNT
关闭目标数据库
发出关闭命令,如下所示:
RMAN> SHUTDOWN IMMEDIATE
列出目标数据库的当前配置
使用REPORT 命令获取数据库的配置信息,如下所示:
RMAN> REPORT SCHEMA;
作业命令示例:
RMAN> RUN {
backup
incremental level 0
format ‘/u01/db01/backup/%d_%s_%p’
fileperset 5
(database include current controlfile);
sql ‘alter database archive log current’;
}
与独立命令不同,作业命令必须包含在RUN 命令的括号中。下面是作业命令的示例:
ALLOCATE CHANNEL、SWITCH
RMAN 按顺序执行RUN 命令块内的作业命令。如果块内的任何命令失败,RMAN 将停止处理;不再继续执行块内的其它命令。
实际上,RUN 命令定义了一个命令执行单位。当RUN 命令块内的最后一个命令执行完毕后,Oracle 将释放为该命令块分配的所有服务器端资源,如I/O 缓冲区或I/O 从属进程。

配置RMAN 环境
RMAN 预设为使用适用于所有RMAN 会话的缺省配置设置。可以使用CONFIGURE 命令配置RMAN 备份、还原、复制和维护作业的永久设置。这些设置将对所有RMAN 会话有效,除非清除或更改该配置。
使用Oracle Enterprise Manager,可以使用“创建备份配置” 向导来设置备份和恢复的缺省值。
使用CONFIGURE 命令可以:配置自动通道、指定备份保留策略、指定要创建的备份副本数、限制备份集的大小、使表空间从备份中脱离、启用和禁用备份优化。
CONFIGURE 命令示例:配置自动通道,使用CONFIGURE CHANNEL 命令可指定缺省备份位置和文件命名约定。
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
'/db01/BACKUP/%U';
配置备份保留策略,使用CONFIGURE RETENTION POLICY 命令可创建永久和自动的备份保留策略。RMAN 将根据您用CONFIGURE 命令指定的标准来确定数据文件和控制文件的备份和副本何时过期;
即,何时介质恢复不再需要使用这些备份和副本。可以发出REPORTOBSOLETE 命令查看已过期的文件,并使用DELETE OBSOLETE 命令将它们删除。发出
CONFIGURE RETENTION POLICY CLEAR 命令可将该设置恢复为缺省值。
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 days;
可以使用以下两种互斥方法中的任意一种来实施保留策略:
指定一个恢复期,该恢复期是从当前时间回溯到可恢复时间点的时间段。在以上示例中,使用CONFIGURE 命令可确保对每个数据文件都保留一份早于可恢复点(七天)的备份。
指定一个冗余值,该值指示备份或副本一旦超过某一指定数目,将不再予以保留。缺省情况下,RETENTION POLICY 配置为REDUNDANCY 1。
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
配置双重备份集:
对于使用自动通道的所有备份命令,可在一个备份集中为每个备份片最多创建四个副本。这仅适用于数据文件和归档重做日志文件。
RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;
配置备份优化:
设置备份优化的目的是:如果相同的文件已备份到某一设备类型,BACKUP 命令不再将文件备份到该设备类型。两个文件相同,指的是其内容必须完全相同。
备份优化的缺省值是OFF。可以通过使用BACKUP 命令的FORCE 选项覆盖备份优化设置。
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
使用CLEAR 选项恢复为缺省值
RMAN> CONFIGURE RETENTION POLICY CLEAR;
RMAN> CONFIGURE CHANNEL DEVICE TYPE sbt CLEAR;
SHOW 命令用于显示使用CONFIGURE 命令指定的永久配置设置。配置的这些设置将用于任意RMAN 会话。
可以使用SHOW 命令显示下列信息:
自动通道配置设置:
SHOW CHANNEL;
SHOW DEVICE TYPE;
SHOW DEFAULT DEVICE TYPE;
RMAN 保留策略配置设置:
SHOW RETENTION POLICY;
备份副本数:
SHOW DATAFILE BACKUP COPIES;
备份集的最大大小:
SHOW MAXSETSIZE;
不包括在整个数据库备份中的表空间:
SHOW EXCLUDE;
备份优化的状态:
SHOW BACKUP OPTIMIZATION;
LIST 命令用于生成详细报告,列出下各项的所有信息:
包含指定的一系列数据文件的备份的备份集,指定的一系列数据文件的副本,包含属于指定表空间列表的任何数据文件的备份的备份集,属于指定表空间列表的任何数据文件的副本,
包含任何具有指定名称或范围的归档日志的备份的备份集,任何具有指定名称或范围的归档日志的副本。
使用此命令时必须连接至目标数据库。如果在NOCATALOG 模式下进行连接,则必须装载数据库。如果使用恢复目录进行连接,则必须启动目标例程(但无需装载)。
列出数据库备份,可以使用此命令生成数据库中所有文件的备份的列表:
RMAN> LIST BACKUP OF DATABASE;
列出备份集,上面的示例使用LIST 命令列出数据文件“/db01 /ORADATA/ u03/ users01.dbf”的所有已知备份。
RMAN> LIST BACKUP OF DATAFILE“/db01/ORADATA/u03/users01.dbf”;
列出数据文件副本,上面的示例使用LIST 命令列出SYSTEM 表空间的数据文件副本。
RMAN> LIST COPY OF TABLESPACE “SYSTEM”;
REPORT 命令,该命令有助于更详细地分析RMAN 资料档案库中的信息。
可以针对各种问题生成报告,该数据库的结构是怎样的?
RMAN> REPORT SCHEMA;
哪些文件需要备份?
RMAN> REPORT NEED BACKUP ...;
哪些备份可以删除(即已过期)?
RMAN> REPORT OBSOLETE;
哪些文件由于不可恢复的操作而不可恢复?
RMAN> REPORT UNRECOVERABLE ...;
REPORT NEED BACKUP 命令用于标识所有需要备份的数据文件。该报告假定在还原时使用最新的备份。该命令有三个选项:
增量(Incremental):是一个整数值,指定应在恢复过程中还原的增量备份的最大数目。如果需要该数目或更多的增量备份,则需要对数据文件执行新的完全备份。
例如,要报告需要三个或更多增量备份才能进行恢复的文件:
RMAN > REPORT NEED BACKUP incremental 3 database;
天数(Days):是一个整数值,指定距文件上一次完全或增量备份操作的最大天数。如果最近一次备份到当前的天数等于或超过该数字,则需要对该文件进行备份。
例如,报告三天未备份的系统文件:RMAN > REPORT NEED BACKUP days 3 tablespace system;
冗余(Redundancy):一个整数值,指定必要的最低冗余级别。例如,如果没有两个或更多备份,则冗余级别2 将要求进行备份。

使用RMAN的注意事项
在使用恢复管理器之前,请考虑以下几点:
系统的共享资源:RMAN 的大多数工作是通过Oracle 服务器进程执行的。这些操作也
可以并行进行,以提高吞吐量。这意味着PROCESSES 参数必须足够高。从OS 的角
度看,这就意味着应该把共享内存和信号量设置得足够多。
执行授权操作的用户组:您必须确定执行授权操作的用户组。可以以相应地设置用户
帐户,使之具备必要的操作系统和Oracle 数据库权限。
要启动和关闭数据库,用户应具有SYSDBA 权限。
远程操作:您需要使用口令文件通过Oracle Net 连接到目标数据库,以执行授权的操作。例如,从远程计算机执行关闭、启动、备份和恢复操作。这样您就需要设置口令文件,还应确保具有备份该口令文件的策略。
全球化环境变量:调用RMAN 之前,设置NLS_DATE_FORMAT 和NLS_LANG 环境变量。这些变量确定RMAN 命令(如RESTORE、RECOVER 和REPORT)中的时间参数
的格式。
使用恢复目录:如果使用恢复目录,RMAN 可以执行更多种类的自动备份和恢复功能。使用恢复目录会涉及存储空间和维护方面的工作。
您还应确定是否将一个数据库专用于维护多个目标数据库的恢复目录。另外,还要考虑备份该恢复目录的策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值