RMAN 系列(四) ---- RMAN 备份


一. RMAN 备份的一些优点

1. RMAN 会检测和报告损坏的数据块。

2. 不需要将表空间置入热备份模式,RMAN 就可以连接备份数据库。 热备份期间会额外的生成重做日志。

3. RMAN 会自动跟踪新的数据文件和表空间,这样就不再需要在脚本中添加新的表空间和数据文件。

4. RMAN 只备份使用过的数据库(直至最高使用标记(High wate mark)),这样RMAN 备份映像通常小于联机备份的备份脚本。

5. RMAN 提供备份映像的实际压缩。

6. RMAN 提供自动且方便的备份,还原和恢复操作。 RMAN 跟踪恢复数据库所需要的所有备份,在要求还原操作时需要使用这些备份,并且只还原必要的对象。

7. RMAN 可以与第三方介质管理产品一起无缝的工作。

8. RMAN 支持增量备份策略。

9. 可以使用RMAN 来测试备份而不要实际还原他们。

二. RMAN 兼容性问题

在启动备份操作之前,需要考虑一些兼容性问题。在一个企业中,可能会运行不同的Oracle 版本,因此我们在设计备份策略时必须考虑RMAN 的兼容性问题。 

原因可以参考: RMAN 系列(一)---- RMAN 体系结构概述

下表是Oracle 兼容性的一个参照表:

RMAN 目标数据库版本

(应用补丁)

RMAN 客户端版本

(应用补丁)

RMAN 目录数据库版本

(应用补丁)

RMAN 目录模式版本

(应用补丁)

9.0.1

9.0.1

>=8.1.7

>=RMAN 客户端

9.2.0

>=9.0.1.3 并且<= 目录数据库可执行文件版本

>=8.1.7

>=RMAN 客户端

10.1.0

>=9.0.1.3 并且<=目录数据库可执行文件版本

>=9.0.1

>=RMAN 客户端

10.2.0

>=9.0.1.3 并且<=目录数据库可执行文件版本

>=9.0.1

>=RMAN 客户端

表中的 目录模式版本 可以从RCVER 表中查看:

SQL> conn rman/rman@orcl; -- catalog 用户登录

已连接。

SQL> select * from rcver;

VERSION

------------

11.02.00.01

三. 监控RMAN 备份情况

RMAN 在备份期间产生输出,如果在启动RMAN 时启用登录,则取消该输出。可以通过查看生成的日志文件来监控RMAN 操作,或者通过V$RMAN_OUTPUT 视图来查看。

SQL> conn /@orcl as sysdba;

已连接。

SQL> select output from v$rman_output order by stamp;

四. 脱机RMAN 数据库备份

4.1 使用默认的设置执行备份操作:

RMAN 会有一些参数有默认值,在没有更改这些参数的情况下,我们也可以进行备份。 此时备份集将会备份到闪回区中。我们可以用catalog 模式或者是非catalog 模式来连接RMAN。 如果采用catalog 模式,只需在连接的时候加上catalog 参数即可。 不过要注意的是,一般建议在服务器本地直接连接RMAN,然后通过网络连接来连接catalog目录。

执行脱机备份操作时,数据库必须处于mount 状态。 一些命令如下:

Shutdown immediate

Startup mount

Backup database

或者

Backup as compressed backupset database  -- 将数据库作为压缩的备份集来备份

C:/Users/Administrator.DavidDai>rman target '/@orcl as sysdba'; 

恢复管理器: Release 11.2.0.1.0 - Production on 星期一 6月 21 23:24:47 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到目标数据库: ORCL (DBID=1247395743)

RMAN> 

C:/Users/Administrator.DavidDai>rman target '/@orcl as sysdba' catalog 'rman/rman@orcl';

恢复管理器: Release 11.2.0.1.0 - Production on 星期一 6月 21 23:25:24 2010

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

连接到目标数据库: ORCL (DBID=1247395743)

连接到恢复目录数据库

RMAN>

4.2 不使用默认参数执行脱机备份操作

先来看一段脚本:

Shutdown immediate

Startup mount

Run

{

Allocate channel c1 device type disk format 'D:/backup/sid_%U';

Allocate channel c2 device type disk format 'E:/backup/sid_%U';

Backup as compressed backupset database;

Backup current controlfile;

}

相关说明如下:

4.2.1 将数据库启动到mount 模式

在前面也说了,脱机备份,数据库必须启动到mount 状态。

4.2.2 运行Oracle

执行run 代码块。 在完整的语句块输入之前,Oracle 不会运行任何语句。

4.2.3 分配通道

先看一下 备份集 和 备份片。 通常情况下,每次创建一个通道时,都会创建一个或者多个备份集。

备份集(backup set): 逻辑实体,我们会为每个定义的通道创建一个或多个备份集(通常为每个通道创建一个备份集)。

备份片(backup piece):驻留备份数据的实际物理文件。 每个备份集可以关联一个或多个备份片。

可以使用backup 命令(或配置一个默认值)来控制整个备份集的大小,也可以使用allocate channel 命令(或在配置默认通道时配置一个默认值)来控制整个备份片的大小。

Allocate channel 命令定义给定通道(进而是一个备份集)所分配到的设备。设备可以是磁盘(type disk),也可以是磁带驱动器(type sbt)。如果为磁带系统分配通道,可能要在这条命令中加入MML 供应商所要求的特定参数设置。 比如Veritas Netbackup 为磁带分配通道的allocate channel 命令:

Allocate channel t1 type sbt parms='ENV=(NB_ORA_CLASS=RMAN_DB01');

执行这条命令可以为磁带分配一个通道。 为备份分配完两个通道后,RMAN 会在这两个通道间自动并行处理备份流。 由于分配了两个通道,因此会创建两个备份集,并且每个备份集拥有一个备份片。 备份片的大小按字节计算,不过也可以根据需要使用K,M或者占位符来分来表示。 如:

Allocate channel t1 type disk maxpiecesize=100M;

在这个示例中,我们限定了通道t1 通道创建备份集中每个备份片的大小不能超过100M。 这样能够最好的保证所创建的单个备份片大小不会超出磁带或者文件系统的处理范围。 

Allocate channel t1 type disk maxpiecesize=100M format='D:/backup/sid_%U.bak';

在这个示例中,使用了format参数来定义备份片被放入磁盘的位置以及备份片的命名约定。 这里的%U 是格式占位符,以确保备份片名称的唯一性。

关于占位符的更多信息,参考 blog: 

RMAN 系列(二) ---- RMAN 设置和配置 

4.2.4 备份操作

在示例代码中,分配通道之后,就使用backup 命令来备份数据库。 执行backup database 命令的结果是RMAN开始使用所创建的两个通道备份数据库。

默认情况下,如果只备份数据文件,backup 命令也会备份控制文件和服务器的参数文件(spfile)。 在这种情况下,控制文件备份的存储位置取决于controlfile autobackup 参数的设置。 如果controlfile autobackup 参数被设置为off,控制文件和服务器参数会被包含在数据库备份集中;如果controlfile autobackup 参数被设置为on,控制文件和服务器参数文件就会生成一个独立的控制文件备份。 可以在backup database 命令中加入include current controlfile 子句,迫使RMAN 将控制文件放入数据库备份集。 最好是单独备份控制文件,以确保备份的是当前的控制文件。 

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容