千家信息网

Oracle 学习之RMAN(三)全量备份

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,我们已经知道如何进入rman,并连接到需要备份的数据库上。那么如何使用rman备份,以及rman能备份哪些东西呢?备份数据库RMAN> backup database;Starting backup
千家信息网最后更新 2026年11月01日Oracle 学习之RMAN(三)全量备份

我们已经知道如何进入rman,并连接到需要备份的数据库上。那么如何使用rman备份,以及rman能备份哪些东西呢?

  • 备份数据库

RMAN> backup database;Starting backup at 2015/07/08 00:58:27using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbfinput datafile file number=00002 name=/u01/app/oracle/oradata/devdb/sysaux01.dbfinput datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbfinput datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbfinput datafile file number=00006 name=/u01/app/oracle/oradata/devdb/idx01.dbfinput datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbfchannel ORA_DISK_1: starting piece 1 at 2015/07/08 00:58:28channel ORA_DISK_1: finished piece 1 at 2015/07/08 01:00:33piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T005827_bsr19n9z_.bkp tag=TAG20150708T005827 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:02:05channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setincluding current SPFILE in backup setchannel ORA_DISK_1: starting piece 1 at 2015/07/08 01:00:34channel ORA_DISK_1: finished piece 1 at 2015/07/08 01:00:35piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncsnf_TAG20150708T005827_bsr1flnq_.bkp tag=TAG20150708T005827 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 01:00:35
  • 备份表空间

RMAN> backup tablespace users ;Starting backup at 2015/07/08 01:59:43using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbfchannel ORA_DISK_1: starting piece 1 at 2015/07/08 01:59:43channel ORA_DISK_1: finished piece 1 at 2015/07/08 01:59:44piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T015943_bsr4whv0_.bkp tag=TAG20150708T015943 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 01:59:44
  • 备份数据文件

RMAN> backup datafile '/u01/app/oracle/oradata/devdb/system01.dbf';Starting backup at 2015/07/08 02:01:07using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbfchannel ORA_DISK_1: starting piece 1 at 2015/07/08 02:01:08channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:01:33piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T020108_bsr4z487_.bkp tag=TAG20150708T020108 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:25channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setincluding current SPFILE in backup setchannel ORA_DISK_1: starting piece 1 at 2015/07/08 02:01:34channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:01:35piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncsnf_TAG20150708T020108_bsr4zygn_.bkp tag=TAG20150708T020108 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 02:01:35

需要说明的一点时,RMAN无法备份临时文件。其实道理很简单,临时文件根本没有必要备份。

RMAN> backup datafile '/u01/app/oracle/oradata/devdb/temp01.dbf';Starting backup at 2015/07/08 02:02:24using channel ORA_DISK_1RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-03002: failure of backup command at 07/08/2015 02:02:24RMAN-20201: datafile not found in the recovery catalogRMAN-06010: error while looking up datafile: /u01/app/oracle/oradata/devdb/temp01.dbfRMAN> backup tempfile '/u01/app/oracle/oradata/devdb/temp01.dbf';RMAN-00571: ===========================================================RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============RMAN-00571: ===========================================================RMAN-00558: error encountered while parsing input commandsRMAN-01009: syntax error: found "tempfile": expecting one of: "archivelog, as, auxiliary, backupset, backup, channel, check, controlfilecopy, copies, copy, cumulative, current, database, datafilecopy, datafile, db_file_name_convert, db_recovery_file_dest, device, diskratio, duration, filesperset, force, format, for, from, full, incremental, keep, maxsetsize, nochecksum, noexclude, nokeep, not, pool, proxy, recovery, reuse, section, skip readonly, skip, spfile, tablespace, tag, to, validate, ("RMAN-01007: at line 1 column 8 file: standard input
  • 备份控制文件

  1. 手工备份控制文件

RMAN> backup current controlfile;Starting backup at 2015/07/08 02:08:15using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setchannel ORA_DISK_1: starting piece 1 at 2015/07/08 02:08:16channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:08:17piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncnnf_TAG20150708T020815_bsr5djdz_.bkp tag=TAG20150708T020815 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 02:08:17

2. INCLUDE CURRENT CONTROLFILE

RMAN> BACKUP DATAFILE '/u01/app/oracle/oradata/devdb/example01.dbf' INCLUDE CURRENT CONTROLFILE;Starting backup at 2015/07/08 02:13:22using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbfchannel ORA_DISK_1: starting piece 1 at 2015/07/08 02:13:22channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:13:29piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T021322_bsr5p2of_.bkp tag=TAG20150708T021322 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:07channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setincluding current control file in backup setchannel ORA_DISK_1: starting piece 1 at 2015/07/08 02:13:30channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:13:31piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncnnf_TAG20150708T021322_bsr5pbv3_.bkp tag=TAG20150708T021322 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 02:13:31

无论进行什么备份,只要在备份语句后面加上INCLUDE CURRENT CONTROLFILE,RMAN就会自动备份controlfile 。

3. 通过配置RMAN的参数,让rman无论在做了何种备份时都会自动备份controlfile。

RMAN> SHOW CONTROLFILE AUTOBACKUP;RMAN configuration parameters for database with db_unique_name DEVDB are:CONFIGURE CONTROLFILE AUTOBACKUP OFF; # defaultRMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;new RMAN configuration parameters:CONFIGURE CONTROLFILE AUTOBACKUP ON;new RMAN configuration parameters are successfully storedRMAN> BACKUP DATAFILE '/u01/app/oracle/oradata/devdb/undotbs01.dbf';Starting backup at 2015/07/08 02:18:38using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbfchannel ORA_DISK_1: starting piece 1 at 2015/07/08 02:18:38channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:18:39piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T021838_bsr5zyb4_.bkp tag=TAG20150708T021838 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 02:18:39Starting Control File and SPFILE Autobackup at 2015/07/08 02:18:39piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884485119_bsr5zzrp_.bkp comment=NONEFinished Control File and SPFILE Autobackup at 2015/07/08 02:18:40

设置了CONTROLFILE AUTOBACKUP ON后,rman不光自动备份控制文件,连spfile也一同被备份。


如果你仔细留意备份时打印的信息,你就是会发现当我们执行backup database时,即便CONTROLFILE AUTOBACKUP设置成off。rman也会自动备份控制文件和spfile。因为默认情况下,rman把controlfile与spfile当成是数据库的一部分。

  • 备份归档日志

  1. 执行backup archivelog命令

RMAN> backup archivelog all;Starting backup at 2015/07/08 02:36:09current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=16 RECID=7 STAMP=884486041input archived log thread=1 sequence=17 RECID=8 STAMP=884486144input archived log thread=1 sequence=18 RECID=9 STAMP=884486148input archived log thread=1 sequence=19 RECID=10 STAMP=884486151input archived log thread=1 sequence=20 RECID=11 STAMP=884486169channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:36:09channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:36:10piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_annnn_TAG20150708T023609_bsr70spk_.bkp tag=TAG20150708T023609 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 02:36:10Starting Control File and SPFILE Autobackup at 2015/07/08 02:36:10piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884486170_bsr70v0k_.bkp comment=NONEFinished Control File and SPFILE Autobackup at 2015/07/08 02:36:11

2. 执行backup命令时,添加plus archivelog子句。

RMAN> backup database plus archivelog;Starting backup at 2015/07/08 02:41:08current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=16 RECID=7 STAMP=884486041input archived log thread=1 sequence=17 RECID=8 STAMP=884486144input archived log thread=1 sequence=18 RECID=9 STAMP=884486148input archived log thread=1 sequence=19 RECID=10 STAMP=884486151input archived log thread=1 sequence=20 RECID=11 STAMP=884486169input archived log thread=1 sequence=21 RECID=12 STAMP=884486468channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:41:08channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:41:09piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_annnn_TAG20150708T024108_bsr7b4wr_.bkp tag=TAG20150708T024108 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 02:41:09Starting backup at 2015/07/08 02:41:09using channel ORA_DISK_1channel ORA_DISK_1: starting full datafile backup setchannel ORA_DISK_1: specifying datafile(s) in backup setinput datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbfinput datafile file number=00002 name=/u01/app/oracle/oradata/devdb/sysaux01.dbfinput datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbfinput datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbfinput datafile file number=00006 name=/u01/app/oracle/oradata/devdb/idx01.dbfinput datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbfchannel ORA_DISK_1: starting piece 1 at 2015/07/08 02:41:10channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:42:05piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T024110_bsr7b68z_.bkp tag=TAG20150708T024110 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:55Finished backup at 2015/07/08 02:42:05Starting backup at 2015/07/08 02:42:05current log archivedusing channel ORA_DISK_1channel ORA_DISK_1: starting archived log backup setchannel ORA_DISK_1: specifying archived log(s) in backup setinput archived log thread=1 sequence=22 RECID=13 STAMP=884486525channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:42:05channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:42:06piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_annnn_TAG20150708T024205_bsr7cxsd_.bkp tag=TAG20150708T024205 comment=NONEchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01Finished backup at 2015/07/08 02:42:06Starting Control File and SPFILE Autobackup at 2015/07/08 02:42:06piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884486526_bsr7cz3l_.bkp comment=NONEFinished Control File and SPFILE Autobackup at 2015/07/08 02:42:07

这种方式与上种有什么区别呢,区别太明显了,BACKUP.....PLUS ARCHIVELOG命令在备份过程中会依次执行下列步骤:

1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前redolog进行归档。

2>.执行BACKUP ARCHIVELOG ALL命令备份所有已归档日志。

3>.执行BACKUP命令对指定项进行备份。

4>.再次运行ALTER SYSTEM ARCHIVE LOG CURRENT对当前redolog归档。

5>.对新生成的尚未备份的归档文件进行备份。


备份 文件 命令 数据 控制 数据库 日志 语句 运行 明显 必要 东西 信息 再次 参数 子句 尚未 就是 情况 手工 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 云信互联网科技有限公司 科技股互联网 互联网最新的科技有限公司 科技信息互联网 互联网科技ppt模板 科技伦理 互联网公司 互联网科技公司需要的职位 创业天下互联网科技有限公司 顶级互联网科技成果有哪些 广西互联网科技孵化中心 银川新华互联网科技学校联系电话 银行科技岗属于互联网吗 梅州GM互联网络科技有限公司 易企秀互联网科技是做什么的 普陀区互联网教育科技管理办法 上海万顺科技互联网有限公司招聘 互联网科技大会大佬 数字科技和互联网金融哪个好 如何强化互联网金融科技 互联网金融与金融科技 互联网科技网站 深圳艾佳互联网科技 互联网科技英文翻译 互联网科技和法律行业 四川慕妮娅互联网科技有限公司 上海科技产业互联网平台 互联网科技资金流入 唐山双旺合互联网科技产业园 重庆科技产业互联网有哪些
0