数据库RMAN备份数据文件和控制文件

数据文件的备份

  有两种方式指定数据文件的名称(即数据文件详细路径)和FILE_ID。这两项信息都可以从数据字典DBA_DATA_FILES中查询,例如:

    SQL> SELECT FILE_ID,FILE_NAME FROM DBA_DATA_FILES;

       FILE_ID FILE_NAME

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

             1 F:\ORACLE\ORADATA\JSSBOOK\SYSTEM01.DBF

             2 F:\ORACLE\ORADATA\JSSBOOK\UNDOTBS01.DBF

             3 F:\ORACLE\ORADATA\JSSBOOK\SYSAUX01.DBF

             4 F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF

             5 F:\ORACLE\ORADATA\JSSBOOK\SCOTT_TBS01.DBF

  实际上,如果前面你对RMAN的提示信息看得足够认真,完全不需要查询 DBA_DATA_FILES ,在整库备份和LIST操作时都显示了数据文件名称和序号。

  接下来尝试通过 BACKUP DATAFILE 命令备份USERS表空间的数据文件:

    RMAN> BACKUP DATAFILE 'F:\ORACLE\ORADATA\JSSBOOK\USERS01.DBF' ;

    Starting backup at 29-MAR-09

    using channel ORA_DISK_1

    channel ORA_DISK_1: starting full datafile backupset

    channel ORA_DISK_1: specifying datafile(s) in backupset

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

    channel ORA_DISK_1: starting piece 1 at 29-MAR-09

    channel ORA_DISK_1: finished piece 1 at 29-MAR-09

    piece handle=F:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\0EKB5694_1_1 tag=TAG20090329T164732 comment=NONE

    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01

    Finished backup at 29-MAR-09

    提示:

    在使用BACKUP DATAFILE命令时即可以指定DATAFILE名称,也可以指定FILE_ID,比如上述执行的命令完全等价于BACKUP DATAFILE 4。

  如果要查看指定数据文件的备份,可以用如下命令:

    RMAN>  LIST BACKUP OF DATAFILE n;

  注:n=指定的数据文件序号,如果需要备份的数据文件有多个,n=多个序号,中间以逗号分隔即可,指定的序号在备份中必须存在对应的数据文件,否则会报错。

8.3.4   控制文件的备份

  控制文件在Oracle中的重要性是毋庸置疑的,你看,连RMAN都给予特殊的照顾,在RMAN中备份控制文件的方式那是相当灵活,相当多。

  • 手动执行备份命令,例如:

    RMAN> BACKUP CURRENT CONTROLFILE;

    Starting backup at 29-MAR-09

    using channel ORA_DISK_1

    channel ORA_DISK_1: starting full datafile backupset

    channel ORA_DISK_1: specifying datafile(s) in backupset

    including current control file in backupset

    channel ORA_DISK_1: starting piece 1 at 29-MAR-09

    channel ORA_DISK_1: finished piece 1 at 29-MAR-09

    piece handle=F:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\0IKB5APP_1_1 tag=TAG20090329T180441 comment=NONE

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

    Finished backup at 29-MAR-09
  • 执行BACKUP命令时指定INCLUDE CURRENT CONTROLFILE子句,例如:
    RMAN>  BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;

  不仅限于 DATABASE ,执行 BACKUP 命令备份任何文件时都可以指定 INCLUDE CURRENT CONTROLFILE 子句,甚至是 BACKUP CURRENT CONTROLFILE 。另外你不妨猜猜,执行 BACKUP CURRENT CONTROLFILE INCLUDE CURRENT CONTROLFILE 命令时,会备份几次控制文件呢?

  • 备份数据库的第一个数据文件。
    RMAN>  BACKUP DATAFILE 1;

  同理,备份 SYSTEM 表空间也会触发控制文件的自动备份。

  • 通过CONFIGURE命令将CONTROLFILE AUTOBACKUP置为ON。
    RMAN>  CONFIGURE CONTROLFILE AUTOBACKUP ON;

  当 AUTOBACKUP 被置为 ON 时, RMAN 做任何备份操作,都会自动对控制文件做备份。

  如果要查看备份的控制文件,可以通过以下命令进行:

    RMAN>  LIST BACKUP OF CONTROLFILE;

你可能感兴趣的:(数据库RMAN备份数据文件和控制文件)