Chinaunix首页 | 论坛 | 博客
  • 博客访问: 325909
  • 博文数量: 61
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 435
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-08 16:04
文章分类

全部博文(61)

文章存档

2010年(61)

分类: Oracle

2010-02-06 01:44:43

8.5.3 是否使用多个通道

  在提到通道之前,不得不先提到另外一个概念:备份设备。RMAN支持两种备份设备:SBT(磁带)和DISK(磁盘,你想问可读写的光盘是否能够支持?当然支持,这种设备在RMAN中也被认为是DISK,这么说吧,不管是硬盘、光盘、软盘,还是U盘,凡是带盘的就是DISK)。

  通道和设备类型之间关系紧密,分配通道都是基于设备做分配,按照我的理解简单描述的话,SBT与DISK就像一条是海路,一条是公路,而通道则相当于你选择了走公路之后,还得选择是走北三环,还是走北五环,或是两条路都要走。RMAN通道实质是一个到存储设备的数据流,如想城市交通更顺畅,多建几个环路对于缓解交通是有意义的。

  在RMAN中可以通过手动方式或自动方式分配通道。

8.5.3.1 手工分配通道

  手动分配通道有一个专用命令:ALLOCATE CHANNEL,该命令可以(并且只能)在 RUN 块中出现。在执行BACKUP、RESTORE等需要进行磁盘I/O操作的命令时,可以将它们与ALLOCATE CHANNEL命令放在一个RUN块中,利用ALLOCATE CHANNEL为它们分配通道。例如:

    RMAN>  RUN {

    2>  ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT   ' f:\oracle\backup\cn_%U ' ;

    3>  BACKUP TABLESPACE USERS;

    4> }

    using target database control file instead of recovery catalog

    allocated channel: c1

    channel c1: sid=142 devtype=DISK

    Starting backup at 14-APR-09

    channel c1: starting full datafile backupset

    channel c1: specifying datafile(s) in backupset

    input datafile fno=00004 name=F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF

    channel c1: starting piece 1 at 14-APR-09

    channel c1: finished piece 1 at 14-APR-09

    piece handle=F:\ORACLE\BACKUP\CN_0UKCFQH7_1_1 tag=TAG20090414T205047 comment=NONE

    channel c1: backup set complete, elapsed time: 00:00:02

    Finished backup at 14-APR-09

    released channel: c1

  需要注意的是,RMAN中执行的每一条BACKUP、RECOVER等命令都至少要求使用一个通道,通道数决定了这些操作执行的并行度,每条ALLOCATE CHANNEL命令对应一个通道,如果需要多个通道的话,执行多条ALLOCATE CHANNEL就行。

  手动分配通道后,从严谨的角度来讲,应该在RUN块结束前释放这些通道,释放通道可以用RELEASE CHANNEL命令,不过不手动释放也没关系,RMAN会在RUN块中任务执行完后自动释放该块中所用的通道。

8.5.3.2 自动分配通道

  如果没有通过ALLOCATE CHANNEL命令手动分配通道,那么RMAN在执行BACKUP等操作I/O的命令时将会使用预定义配置中的设置来自动分配通道。

  下列预定义配置命令均可以分配通道:

  • CONFIGURE DEVICE TYPE sbt/disk PARALLELISM n ;
  • CONFIGURE DEFAULT DEVICE TYPE TO sbt/disk ;
  • CONFIGURE CHANNEL DEVICE TYPE sbt/disk FORMAT ... ;
  • CONFIGURE CHANNEL n DEVICE TYPE sbt/disk FORMAT ... ;

  上述分配方式用法简单,不再一一举例。对于简单的备份任务,自动分配通道即可满足需求。

8.5.4 是否启用复合备份

  RMAN 提供了一种更谨慎的备份策略:Duplexed方式备份,其实质是在生成备份集的同时,向指定位置生成指定份数(最大不超过4份)的备份集复制文件,以避免在发生灾难性事故时损坏和备份丢失的情况下导致完全崩溃,提高备份可用性。当然,这是人类美好的愿望,对于那些没有异机异地备份条件的,假如机房发生火灾、地震之类的灾难,就算 DBA 把备份文件复制了100份也照样玩完,不过上述情形只是个假设,万勿对号入座,火灾、地震也不是哪都会发生的,大家好好活着,别害怕。

  RMAN 中提供了三种方式实现Duplexed方式备份:

  • 执行BACKUP命令时指定复合备份。在RMAN中执行BACKUP命令时显式指定COPIES参数。例如:
    RMAN> BACKUP COPIES 3 DATABASE;

上述命令将会在全库备份的同时,自动生成当前备份集的2份备份到默认备份目录。

  • 利用SET BACKUP COPIES命令指定复合备份。在RUN{}命令块中利用SET BACKUP COPIES命令为该命令块中所有的BACKUP命令设置Duplexed方式,例如:

    RMAN> RUN{

    2>SET BACKUP COPIES 2;

    3>BACKUP DEVICE TYPE DISK FORMAT  ' D:\ backup1 \%U ' ,  ' D:\ backup2 \%U '  

    4>TABLESPACE USERS,SALES;

    5>}

  上述命令将生成两份备份集,分别存储到 D :\backup1 和 D :\backup2 目录。

  • 利用CONFIGURE命令指定复合备份。通过CONFIGURE ... BACKUP COPIES命令设置预定义的备份Duplexed方式。

  CONFIGURE ... BACKUP COPIES 命令可以为指定的设备类型设置默认的备份复制数量。这个配置仅适用于数据文件与归档重做日志文件和备份,并且,只有在使用自动分配的通道时才能够使用CONFIGURE ... BACKUP COPIES命令设置的配置。例如:

    RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;

    RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;

    RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;

  上述命令将 DISK 设备上的数据文件与归档文件的复制数量设置为2,当再执行BACKUP DATABASE命令时,如果没有通过ALLOCATE CHANNEL分配通道,那么创建的备份就会自动生成2份备份集。

  另外,还记得前面提到的备份备份集的方式吗?理论上讲备份备份集的方式也能算作创建冗余备份,只不过看起来没有duplexed方式这么自动罢了。

=================================================

阅读(1588) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~