即使您不是Oracle DBA,您也可以’仍然会遇到您可能必须备份Oracle数据库的情况。
使用Oracle RMAN,您可以为数据库进行热备份,即使数据库已启动并正在运行,热备份也将进行一致的备份。
本教程向您介绍如何使用RMAN执行Oracle DB备份。
对于不耐烦的人,这里是快速片段,它需要对数据库和归档日志进行RMAN备份。
RMAN> 备份为备份 DATABASE PLUS ARCHIVELOG;
1.查看当前的RMAN配置
在进行备份之前,我们必须配置某些RMAN参数。例如,您要保留RMAN备份多长时间,等等。
在我们修改任何配置之前,执行以下命令以查看所有当前的RMAN配置设置。
To connect to RMAN, do the following from command line. This will take you to RMAN> command prompt, from here you can execute all RMAN commands.
$ rman target / Recovery Manager: Release 10.2.0.3.0 - Production 上 Sat Aug 10 11:21:29 2013 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database: DEVDB (DBID=821773) RMAN>
要查看当前的RMAN配置,请执行“show all”.
RMAN> SHOW ALL; using target database control file instead of recovery catalog RMAN configuration parameters are: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS; CONFIGURE BACKUP OPTIMIZATION ON; CONFIGURE DEFAULT DEVICE TYPE TO DISK; CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO "/备份/ rman /ctl_%F"; CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 2; CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT "/备份/ rman /full_%u_%s_%p" MAXPIECESIZE 2048 M; CONFIGURE MAXSETSIZE TO UNLIMITED; CONFIGURE ENCRYPTION FOR DATABASE OFF; CONFIGURE ENCRYPTION ALGORITHM 'AES128'; CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/dbs/snapcf_devdb.f'; # default
如上所示,它显示了各种RMAN参数及其当前值。
2.更改很少的RMAN配置参数
位置:要设置的重要配置参数之一是要保存RMAN备份的位置。在以下示例中,我’m将RMAN备份位置设置为“/backup/rman/”
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/full_%u_%s_%p';
保留期限:接下来,您应指定要保留备份多长时间。 RMAN进行备份时,它将自动删除所有早于保留期的旧备份。在以下示例中,我’m将保留期设置为7天,这将使数据库备份保持一周。
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
验证是否完成了以上两个更改。
RMAN> SHOW ALL; .. CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/rman/full_%u_%s_%p'; CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS; ..
清除参数:如果要清除参数并将其值设置为默认值,请在配置末尾使用CLEAR,如下所示。
RMAN> CONFIGURE RETENTION POLICY CLEAR;
在此示例中,由于我们清除了保留政策 ’s值,它设置为默认值1。因此,保留策略设置为1天,如下所示。
RMAN> SHOW ALL; CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
3.备份Oracle数据库
Make sure the directory mentioned in the CHANNEK DEVICE TYPE DISK FORMAT is created. i.e /备份/ rman /
$ mkdir -p /backup/rman
当前该目录为空。我们’备份完成后,将看到它的内容。
$ ls -l /backup/rman total 0
我们可以使用映像副本或备份集中进行备份。强烈建议使用RMAN备份集备份数据库。
RMAN将备份存储在备份集中,它们不过是一堆包含已备份数据的文件。只有RMAN可以理解这些文件的格式。因此,如果使用RMAN备份Oracle数据库,则只有RMAN知道如何读取备份并还原它。
通常我们’ll use “BACKUP AS BACKUPSET”备份数据库。因此,要在没有存档日志的情况下对数据库进行完整备份,请执行以下操作。
RMAN> 备份为备份 DATABASE
要使用存档日志对数据库进行完整备份,请执行以下操作:
RMAN> 备份为备份 DATABASE PLUS ARCHIVELOG;
您也可以仅备份特定的表空间。以下示例仅备份PRD01表空间。
RMAN> 备份为备份 TABLESPACE PRD01;
RMAN备份输出将类似于以下内容:
RMAN> 备份为备份 DATABASE Starting backup at 10-AUG-13 using target database control file instead of recovery catalog 分配的频道:ORA_DISK_1 channel ORA_DISK_1: sid=193 devtype=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: sid=192 devtype=DISK channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00025 name=/u03/oradata/devdb/devuser07.dbf input datafile fno=00003 name=/u02/oradata/devdb/temp01.dbf channel ORA_DISK_1: starting piece 1 at 10-AUG-13 channel ORA_DISK_2: starting full datafile backupset channel ORA_DISK_2: specifying datafile(s) in backupset input datafile fno=00008 name=/u03/oradata/devdb/devusers05.dbf channel ORA_DISK_2: starting piece 1 at 10-AUG-13 ... .. piece handle=/backup/rman/full_4dogpd0u_4237_1 tag=TAG20130808T114846 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03 Finished backup at 10-AUG-13 ... Starting Control File and SPFILE Autobackup at 10-AUG-13 piece handle=/backup/rman/ctl_c-758818131-20130808-00 comment=NONE Finished Control File and SPFILE Autobackup at 10-AUG-13
备份完成后,在/ backup / rman目录中执行ls,’现在将看到RMAN备份文件。
$ ls -l /backup/rman total 14588 -rw-r----- 1 oracle dba 14585856 Aug 8 11:48 ctl_c-758818131-20130808-00 -rw-r----- 1 oracle dba 327680 Aug 8 11:48 full_4dogpd0u_4237_1
注意:备份完成后,要查看RMAN中所有可用的数据库备份,您需要使用“list”在其中一个示例中进一步显示的命令。
尽管这可能很明显,但是值得再次重复:由于我们正在进行热备份,因此Oracle数据库可以启动并运行。确保你的 Oracle数据库正在运行 在执行上述任何RMAN备份命令之前。
4. Assign Backup 标签 名称 for Quick Identification
如果您要进行大量备份,则为特定备份分配标签会更容易,我们可以’ll later use during Oracle recovery (or while using 清单 command to view it).
以下示例分配了一个名为“WEEEKLY_PRD01_TBLS_BK_ONLY”到这个特定的备份。
RMAN> 备份为备份 标签 'WEEEKLY_PRD01_TBLS_BK_ONLY' TABLESPACE PRD01; Starting backup at 10-AUG-13 使用ORA_DISK_1频道 using channel ORA_DISK_2 channel ORA_DISK_1: starting full datafile backupset channel ORA_DISK_1: specifying datafile(s) in backupset input datafile fno=00002 name=/u03/oradata/devdb/PRD01_1.dbf channel ORA_DISK_1: starting piece 1 at 10-AUG-13 channel ORA_DISK_1: finished piece 1 at 10-AUG-13 piece handle=/backup/rman/full_4fogpdb3_4239_1 tag=WEEEKLY_PRD01_TBLS_BK_ONLY comment=NONE 通道ORA_DISK_1:备份集已完成,经过的时间:00:00:01 Finished backup at 10-AUG-13 Starting Control File and SPFILE Autobackup at 10-AUG-13 piece handle=/backup/rman/ctl_c-758818131-20130808-01 comment=NONE Finished Control File and SPFILE Autobackup at 10-AUG-13
备份完成后,如果您从rman目录中查看文件,则可以’ll not see the tag name here. 标签 name is used 上 ly from RMAN repositories to view and restore backups. So, now you see there are 更多 files in this directory, as we’已进行了几次备份。
$ ls -l /备份/ rman / total 29176 -rw-r----- 1 oracle dba 14585856 Aug 8 11:48 ctl_c-758818131-20130808-00 -rw-r----- 1 oracle dba 14585856 Aug 8 11:54 ctl_c-758818131-20130808-01 -rw-r----- 1 oracle dba 327680 Aug 8 11:48 full_4dogpd0u_4237_1 -rw-r----- 1 oracle dba 327680 Aug 8 11:54 full_4fogpdb3_4239_1
5.更改Oracle RMAN备份文件名格式
如果希望备份文件本身采用特定格式,则需要在RMAN配置中更改格式,如下所示。在这个例子中,我们’ve appended the tag “full_devdb_bk_”我们所有备份文件的前缀。
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT "/备份/ rman /full_devdb_bk_%u_%s_%p" MAXPIECESIZE 2048 M;
现在,让我们使用修改后的配置进行另一个备份。
RMAN> 备份为备份 标签 'WEEEKLY_PRD01_TBLS_BK_ONLY' TABLESPACE PRD01;
现在,当您查看RMAN文件时,’将会看到新的RMAN备份文件具有这些文件的新文件名格式。仅通过查看文件名,就更容易识别有关备份的某些信息。
$ ls -l /备份/ rman / total 43764 -rw-r----- 1 oracle dba 14585856 Aug 8 11:48 ctl_c-758818131-20130808-00 -rw-r----- 1 oracle dba 14585856 Aug 8 11:54 ctl_c-758818131-20130808-01 -rw-r----- 1 oracle dba 14585856 Aug 8 11:56 ctl_c-758818131-20130808-02 -rw-r----- 1 oracle dba 327680 Aug 8 11:48 full_4dogpd0u_4237_1 -rw-r----- 1 oracle dba 327680 Aug 8 11:54 full_4fogpdb3_4239_1 -rw-r----- 1 oracle dba 327680 Aug 8 11:55 full_devdb_bk_4hogpdef_4241_1
6.压缩RMAN备份
如果要备份大型数据库,则您’将会注意到RMAN备份文件更大(几乎与数据库本身大小相同)。
因此,在大多数情况下,您应该始终对数据库进行压缩备份。
以下示例对tablepsace PRD01进行了压缩备份。
RMAN> BACKUP AS COMPRESSED BACKUPSET 标签 'WEEEKLY_PRD01_TBLS_BK_ONLY' TABLESPACE PRD01;
从文件系统级别查看备份文件时,将看不到任何.gz(或.zip或.bz2)来表示RMAN已执行了压缩备份。文件命名约定仍将与非压缩备份相同。
$ ls -l /备份/ rman / total 58352 -rw-r----- 1 oracle dba 14585856 Aug 8 11:48 ctl_c-758818131-20130808-00 -rw-r----- 1 oracle dba 14585856 Aug 8 11:54 ctl_c-758818131-20130808-01 -rw-r----- 1 oracle dba 14585856 Aug 8 11:56 ctl_c-758818131-20130808-02 -rw-r----- 1 oracle dba 14585856 Aug 8 11:59 ctl_c-758818131-20130808-03 -rw-r----- 1 oracle dba 327680 Aug 8 11:48 full_4dogpd0u_4237_1 -rw-r----- 1 oracle dba 327680 Aug 8 11:54 full_4fogpdb3_4239_1 -rw-r----- 1 oracle dba 327680 Aug 8 11:55 full_devdb_bk_4hogpdef_4241_1 -rw-r----- 1 oracle dba 127680 Aug 8 11:59 full_devdb_bk_4jogpdl0_4243_1
注意:通过查看大小和查看RMAN的输出来判断RMAN是否已执行压缩备份的方法“list”命令显示在以下部分之一中。
7.查看所有RMAN备份
要查看所有RMAN备份,请执行“list backup summary” as shown below.
RMAN> LIST BACKUP SUMMARY; using target database control file instead of recovery catalog List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies 压缩的 标签 ------- -- -- - ----------- --------------- ------- ------- ---------- --- .. 4215 B F A DISK 10-AUG-13 1 1 NO 标签20130808T114846 4216 B F A DISK 10-AUG-13 1 1 NO 标签20130808T114849 4217 B F A DISK 10-AUG-13 1 1 NO WEEEKLY_PRD01_TBLS_BK_ONLY 4218 B F A DISK 10-AUG-13 1 1 NO 标签20130808T115413 4219 B F A DISK 10-AUG-13 1 1 NO WEEEKLY_PRD01_TBLS_BK_ONLY 4220 B F A DISK 10-AUG-13 1 1 NO 标签20130808T115600 4221 B F A DISK 10-AUG-13 1 1 是 WEEEKLY_PRD01_TBLS_BK_ONLY
如上所示,它显示有关备份的各种信息。在上面的输出中,它显示了7个RMAN备份。最后一列显示“Tag”我们在进行备份时指定的时间。如果我们没有’t指定任何TAG,RMAN创建带有前缀的默认标签“TAG”其次是一些数字。您还可以在列下看到“Compressed”,最后一个RMAN备份显示“YES”,这表明在所有7个RMAN备份中,只有最后一个被压缩。
另外,在运行RMAN备份时,如果要查看记录,则可以从sql * plus查询V $ RMAN_STATUS表,如下所示。
SQL> SELECT OPERATION, STATUS, MBYTES_PROCESSED, START_TIME, END_TIME from V$RMAN_STATUS; OPERATION STATUS MBYTES_PROCESSED START_TIM END_TIME --------------------------------- ----------------------- ---------------- --------- --------- CONTROL FILE AND SPFILE AUTOBACK COMPLETED 14 07-NOV-12 07-NOV-12 RMAN COMPLETED 0 07-NOV-12 07-NOV-12 RESTORE VALIDATE COMPLETED 0 07-NOV-12 07-NOV-12 RMAN COMPLETED WITH ERRORS 0 07-NOV-12 07-NOV-12 DELETE COMPLETED 0 08-NOV-12 08-NOV-12 BACKUP COMPLETED 0 10-AUG-13 10-AUG-13 CONTROL FILE AND SPFILE AUTOBACK COMPLETED 14 10-AUG-13 10-AUG-13 RMAN COMPLETED WITH ERRORS 1832 10-AUG-13 10-AUG-13 RMAN COMPLETED 0 10-AUG-13 10-AUG-13 ...
你有它!。这就是您采取Oracle RMAN备份并安然入睡的方式。
如果您喜欢这篇文章,您可能还会喜欢..
![]() |
![]() |
![]() |
![]() |
你好
对于DBA很有用的文章
谢谢