Oracle 学习之RMAN(二)

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

  • 备份数据库
RMAN> backup database;

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

Starting backup at 2015/07/08 01:59:43
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2015/07/08 01:59:43
channel ORA_DISK_1: finished piece 1 at 2015/07/08 01:59:44
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T015943_bsr4whv0_.bkp tag=TAG20150708T015943 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished 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:07
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbf
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:01:08
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:01:33
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T020108_bsr4z487_.bkp tag=TAG20150708T020108 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:01:34
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:01:35
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncsnf_TAG20150708T020108_bsr4zygn_.bkp tag=TAG20150708T020108 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished 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:24
using channel ORA_DISK_1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 07/08/2015 02:02:24
RMAN-20201: datafile not found in the recovery catalog
RMAN-06010: error while looking up datafile: /u01/app/oracle/oradata/devdb/temp01.dbf

RMAN> 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 commands
RMAN-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:15
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:08:16
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:08:17
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncnnf_TAG20150708T020815_bsr5djdz_.bkp tag=TAG20150708T020815 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished 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:22
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:13:22
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:13:29
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T021322_bsr5p2of_.bkp tag=TAG20150708T021322 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:13:30
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:13:31
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncnnf_TAG20150708T021322_bsr5pbv3_.bkp tag=TAG20150708T021322 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished 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; # default

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;

new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored

RMAN> BACKUP DATAFILE ‘/u01/app/oracle/oradata/devdb/undotbs01.dbf‘;

Starting backup at 2015/07/08 02:18:38
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbf
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:18:38
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:18:39
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T021838_bsr5zyb4_.bkp tag=TAG20150708T021838 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2015/07/08 02:18:39

Starting Control File and SPFILE Autobackup at 2015/07/08 02:18:39
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884485119_bsr5zzrp_.bkp comment=NONE
Finished 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:09
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=16 RECID=7 STAMP=884486041
input archived log thread=1 sequence=17 RECID=8 STAMP=884486144
input archived log thread=1 sequence=18 RECID=9 STAMP=884486148
input archived log thread=1 sequence=19 RECID=10 STAMP=884486151
input archived log thread=1 sequence=20 RECID=11 STAMP=884486169
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:36:09
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:36:10
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_annnn_TAG20150708T023609_bsr70spk_.bkp tag=TAG20150708T023609 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2015/07/08 02:36:10

Starting Control File and SPFILE Autobackup at 2015/07/08 02:36:10
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884486170_bsr70v0k_.bkp comment=NONE
Finished 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:08
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=16 RECID=7 STAMP=884486041
input archived log thread=1 sequence=17 RECID=8 STAMP=884486144
input archived log thread=1 sequence=18 RECID=9 STAMP=884486148
input archived log thread=1 sequence=19 RECID=10 STAMP=884486151
input archived log thread=1 sequence=20 RECID=11 STAMP=884486169
input archived log thread=1 sequence=21 RECID=12 STAMP=884486468
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:41:08
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:41:09
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_annnn_TAG20150708T024108_bsr7b4wr_.bkp tag=TAG20150708T024108 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2015/07/08 02:41:09

Starting backup at 2015/07/08 02:41:09
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/devdb/sysaux01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbf
input datafile file number=00006 name=/u01/app/oracle/oradata/devdb/idx01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:41:10
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:42:05
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T024110_bsr7b68z_.bkp tag=TAG20150708T024110 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
Finished backup at 2015/07/08 02:42:05

Starting backup at 2015/07/08 02:42:05
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=22 RECID=13 STAMP=884486525
channel ORA_DISK_1: starting piece 1 at 2015/07/08 02:42:05
channel ORA_DISK_1: finished piece 1 at 2015/07/08 02:42:06
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_annnn_TAG20150708T024205_bsr7cxsd_.bkp tag=TAG20150708T024205 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2015/07/08 02:42:06

Starting Control File and SPFILE Autobackup at 2015/07/08 02:42:06
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884486526_bsr7cz3l_.bkp comment=NONE
Finished 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>.对新生成的尚未备份的归档文件进行备份。

时间: 2024-10-27 04:52:23

Oracle 学习之RMAN(二)的相关文章

oracle学习笔记(二)

设置归档模式(mount状态) ALTER database ARCHIVELOG; //关闭数据库 shutdown immediate //启动数据库到mount状态 startup mount alter database archivelog; //查看归档状态 archive log list; SQL> archive log list; 数据库日志模式 存档模式 自动存档 启用 存档终点 USE_DB_RECOVERY_FILE_DEST 最早的联机日志序列 1 下一个存档日志序列

【我的Oracle学习笔记(二)】----- select语句补充

一.多表查询 多表查询是指从多个有关联的表中查询数据,其语法与单表查询类似.一般来说,多表查询的表要用连接联系起来,如果没连接,则查询结果是这多个查询表的笛卡尔积(注释1). 模拟查询雇员姓名和所在部门名称: select [雇员姓名],[部门名称] from [雇员表] a,scott,[部门表] b where a.[部门编号]=b.[部门编号]; 上例中,为每一个查询表指定了别名,便于SQL语句的书写. 模拟查询在”sales“部门工作的雇员其雇员姓名 select [雇员姓名] from

Oracle 学习之RMAN(十二)恢复实战--控制文件丢失

首先我们进行一次全库备份 RMAN> run {   backup database    format '/backup/full_%d_%T_%s'   plus archivelog    format '/backup/arch_%d_%T_%s'   delete all input;  }  Starting backup at 2015/07/09 09:35:03 current log archived using channel ORA_DISK_1 channel ORA_

Oracle 学习之RMAN(一)

Recovery Manager(RMAN)是Oracle提供的一个实用工具,使用RMAN可以对Oracle数据库进行备份.还原.恢复等.RMAN还可以自动管理Oracle的备份策略.RMAN提供了命令行与图形界面两种访问方式.我们主要学习命令行方式操作RMAN. 进入RMAN非常简单,执行在OS环境下敲入rman命令即可. [[email protected] ~]# su - oracle 11gdg-> rman Recovery Manager: Release 11.2.0.3.0 -

Oracle 学习之RMAN(五)镜像copy

我们上一讲讲到了RMAN能提供全库备份.表空间备份.数据文件备份.归档日志备份.控制文件及参数文件的备份.RMAN备份出来的文件称之为备份集,RMAN在备份的过程中,只备份已经使用过的数据块.RMAN将多个数据文件打包到一起,生成一个备份集.数据文件与备份集文件不再是一一对应的关系.关于备份集的概念,我们下一讲再详细介绍.本将我们说说RMAN的另一种备份方式--镜像copy. 镜像copy是单个数据文件.控制文件.归档日志的克隆.备份出来的备份文件与数据库文件一一对应.下图描述了备份集与镜像co

Oracle 学习之RMAN(一)架构

Recovery Manager(RMAN)是Oracle提供的一个实用工具,使用RMAN可以对Oracle数据库进行备份.还原.恢复等.此程序无需单独安装,她作为Oracle数据库的一部分,一单你安装了Oracle数据库软件,那么RMAN即可使用.RMAN是一个Client/Server程序,她使用Oracle服务器会话进行备份与恢复.RMAN备份的元数据存储在备份目标数据库的控制文件中,或者是一个单独的称之为catalog的数据库中. 为什么要使用RMAN? 可以管理复杂的备份与恢复操作 最

Oracle 学习之RMAN(四)增量备份

RMAN不但能进行数据库.数据文件等全量备份,而且还能做增量备份.增量备份有两大优点: 减少数据库恢复的时间. 数据库恢复是利用归档日志,不断的应用归档日志,将数据库恢复到最新(或者指定状态).但是增量备份只备份被修改了的数据块,在执行恢复时,直接用备份出来的数据块去覆盖数据文件中被更改的数据块. 减少备份时间 增量备份只需备份被修改过的数据块,备份时间和备份存储空间都有相应的减少. 做增量备份的前提,是需要一个基准备份,所有的增量都是针对这个基准来说的.要不然,增量备份无从谈起. 增量备份使用

Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复

1. 我们先做一个全备 RMAN> backup database ; Starting backup at 2015/07/09 13:40:47 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=28 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in b

Oracle 学习之RMAN(十五)恢复实战--TSPITR

TSPITR是英文Tablespace Point In Time Recovery的缩写.也就是表空间定点时间恢复.TSPITR是一种相对细粒度的不完全恢复技术.我们通常见到的还原操作,都是将所有的表空间和数据还原到相同的一个时间点上.而TSPITR则是以表空间为粒度单元,单独将某个表空间内容还原到一个特定可恢复时间点上.举一个例子:一个Oracle数据库运行在归档模式下,在夜间零时保留一份完全备份.早上七点时候,某个特定表空间上数据表(单个表独占表空间)发生一个误操作,数据损坏.要求在不伤害