RMAN备份详解

1.7.1数据库备份与RMAN备份的概念

1.数据库完全备份:按归档模式分为归档和非归档

归档模式

打开状态,属于非一致性备份

关闭状态,可以分为一致性和非一致性

非归档模式

打开状态,非一致性备份无效

关闭状态,一致性备份,非一致性备份不被推荐

2.RMAN备份

RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话

RMAN备份内容包括:整个数据库,表空间,数据文件,指定的数据文件,控制文件,归档日志文件,参数文件等

3.RMAN备份的类型

完整备份(full) 或增量备份(incremental)

一致性备份(consistent)或不一致性备份(inconsistent)

热备(open)或冷备(closed),冷备时数据库必须处于mount状态,冷备可以为一致性备份或非一致性备份

完整备份

一个或多个数据文件的一个完整副本,包含从备份开始处所有的数据块.完整备份不能作为增量的基础

增量备份

包含从最近一次备份以来被修改或添加的数据块.可以分为差异增量备份和累计增量备份

差异增量备份仅仅包含n级或n级以下被修改过的数据块。备份数据量小,恢复时间长。

累计增量备份仅仅包含n-1级或n-1级以下被修改过的数据块。备份数据量大,恢复时间短。

0级增量备份相当于一个完整备份,该备份包含所有已用的数据块文件,与完整备份的差异是完整备份不能用作级增量备份的基础

一致性备份

备份所包含的各个文件中的所有修改都具备相同的系统变化编号(system change number,SCN)。

也就是说,备份所包含的各个文件中的所有数据均来自同一时间点。

一致性数据库完全备份(consis-tent whole database backup)进行还原(restore)后,不需要执行恢复操作(recovery)

非一致性备份

在数据库处于打开(open)状态时,或数据库异常关闭(shut down abnormally)后,对一个或多个数据

库文件进行的备份。非一致性备份需要在还原之后进行恢复操作

4.备份集与镜像副本

备份集

是包含一个或多个数据文件,归档日志文件的二进制文件的集合.备份集由备份片组成,一个备份集中可以包含一个或多个备份片

可以通过filesperset参数来设置备份集中可包含的备份片数,

也可以设定参数maxpiecesize来制定每个备份片的大小。

备份集中空闲的数据块将不会被备份,因此备份集可以支持压缩。备份集支持增量备份,可以备份到磁盘或磁带。

镜像副本

是数据文件或归档日志文件等的完整拷贝,未经过任何压缩等处理,不能备份到磁带,也不支持增量备份

恢复时可以立即使用实现快速恢复

等同于操作系统的复制命令

可以作为级增量备份

5.备份路径

可以备份到磁盘目录

可以备份到磁带

闪回区

6.备份限制

数据库必须处于mount或open状态

不能备份联机日志

在非归档模式下仅仅能作干净备份,即在干净关闭且启动到mount状态下备份

在归档模式下,current状态下数据文件可以备份

关于更多备份与恢复的概念请参考:Oracle 备份恢复概念

1.7.2使用RMAN进行备份

1.7.2.1备份数据库

RMAN> show all;

RMAN configuration parameters are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘%F‘; # default

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   ‘/u01/app/oracle/rmanbak/df_%d_%U‘;

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM ‘AES128‘; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/u01/app/oracle/10g/dbs/snapcf_orcl.f‘; # defaul

RMAN> backup database format ‘/u01/app/oracle/rmanbak/whole_%d_%U‘;  --备份整个数据库

RMAN> backup as compressed backupset database format ‘/u01/app/oracle/rmanbak/whole_%d_%U‘;--备份整个数据库并压缩备份集

rman>backup database plus archivelog;

rman>backup database plus archivelogdelete all input;

rman>backup as compressed backupset database include current controlfile plus archivelog delete all input;

RMAN> run{

allocate channel ch1 type disk                      --手动分配一个通道

maxpiecesize=2g;                              --指定备份片的大小为2g

backup as compressed backupset                      --压缩备份集

format  ‘/u01/app/oracle/rmanbak/whole_%d_%U‘ filesperset=3--指定备份集中允许容纳的文件数为个

database;

release channel ch1;}                           --释放通道

RMAN> configure device type disk parallelism 3;   --将并行度改为

old RMAN configuration parameters:

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;

new RMAN configuration parameters:

CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;

new RMAN configuration parameters are successfully stored

RMAN> backup as compressed backupset    --并行度改为之后,自动启用了个通道

2> format ‘/u01/app/oracle/rmanbak/whole_%d_%U‘ filesperset=3

3> database;

Starting backup at 14-OCT-10

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=148 devtype=DISK    --sid值对应v$session视图中的sid

allocated channel: ORA_DISK_2

channel ORA_DISK_2: sid=146 devtype=DISK

allocated channel: ORA_DISK_3

channel ORA_DISK_3: sid=144 devtype=DISK

RMAN> run{

2> allocate channel ch1 type disk

3> maxpiecesize=100m;   --备份片大小设置为m,则一个备份集包含多个备份片,且每个备份片大小为100m

4> backup

5> format ‘/u01/app/oracle/rmanbak/whole_%d_%U‘

6> database;

7> release channel ch1;}

RMAN> list backupset tag=TAG20101014T171115;

List of Backup Sets

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

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

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

21      Full    690.30M    DISK        00:01:39     14-OCT-10

List of Datafiles in backup set 21

File LV Type Ckp SCN    Ckp Time   Name

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

1       Full 1648791    14-OCT-10 /u01/app/oracle/oradata/orcl/system01.dbf

2       Full 1648791    14-OCT-10 /u01/app/oracle/oradata/orcl/undotbs01.dbf

3       Full 1648791    14-OCT-10 /u01/app/oracle/oradata/orcl/sysaux01.dbf

4       Full 1648791    14-OCT-10 /u01/app/oracle/oradata/orcl/users01.dbf

5       Full 1648791    14-OCT-10 /u01/app/oracle/oradata/orcl/example01.dbf

6       Full 1648791    14-OCT-10 /u01/app/oracle/oradata/orcl/tbs1.dbf

Backup Set Copy #1 of backup set 21

Device Type Elapsed Time Completion Time Compressed Tag

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

DISK        00:01:39     14-OCT-10      NO         TAG20101014T171115

List of Backup Pieces for backup set 21 Copy #1

BP Key  Pc# Status      Piece Name

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

21      1   AVAILABLE   /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_1_1

22      2   AVAILABLE   /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_2_1

23      3   AVAILABLE   /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_3_1

24      4   AVAILABLE   /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_4_1

25      5   AVAILABLE   /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_5_1

26      6   AVAILABLE   /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_6_1

27      7   AVAILABLE   /u01/app/oracle/rmanbak/whole_ORCL_0nlqemtj_7_1

BS Key  Type LV Size       Device Type Elapsed Time Completion Time

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

22      Full    6.80M      DISK        00:00:01     14-OCT-10

BP Key: 28   Status: AVAILABLE  Compressed: NO  Tag: TAG20101014T171115

Piece Name: /u01/app/oracle/rmanbak/whole_ORCL_0olqen0s_1_1

Control File Included: Ckp SCN: 1648817      Ckp time: 14-OCT-10

SPFILE Included: Modification time: 14-OCT-10

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

1.7.2.2备份数据文件

Oracle数据文件及表空间的管理请参考:Oracle 表空间与数据文件

RMAN> backup as copy datafile 4                                             --备份类型为镜像备份

2> format ‘/u01/app/oracle/rmanbak/df_%d_%U‘;

RMAN> list copy;

RMAN> backup datafile 4,5,6 format ‘/u01/app/oracle/rmanbak/df_%d_%U‘;      --备份类型为备份集

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

1.7.7.3备份表空间

Oracle数据文件及表空间的管理请参考:Oracle 表空间与数据文件

RMAN>  backup tablespace users,example format ‘/u01/app/oracle/rmanbak/tb_%d_%U‘;

RMAN> backup tablespace temp;  --临时表空间不需要备份

Starting backup at 14-OCT-10

using channel ORA_DISK_1

using channel ORA_DISK_2

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of backup command at 10/14/2010 18:56:12

RMAN-20202: tablespace not found in the recovery catalog

RMAN-06019: could not translate tablespace name "TEMP"

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

1.7.7.4备份控制文件

Oracle 控制文件的详细介绍请参考:Oracle 控制文件(CONTROLFILE)

RMAN> configure controlfile autobackup on;--自动备份控制文件置为on状态,将自动备份控制文件和参数文件

old RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP OFF;

new RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

new RMAN configuration parameters are successfully stored

注:在备份system01.dbf或system表空间时将会自动备份控制文件和参数文件,即使自动备份控制文件参数为off

--单独备份控制文件及参数文件

RMAN> backup current controlfile;

--备份数据文件时包含控制文件

RMAN> backup datafile 4 include current controlfile;

RMAN> sql "alter database backup controlfile to ‘‘/tmp/orclcontrol.bak‘‘";

sql statement: alter database backup controlfile to ‘‘/tmp/orclcontrol.bak‘‘

RMAN>  sql "alter database backup controlfile to trace as ‘‘/tmp/orclcontrol.sql‘‘";

sql statement: alter database backup controlfile to trace as ‘‘/tmp/orclcontrol.sql‘‘

--单独备份spfile

RMAN> backup spfile format ‘/u01/app/oracle/rmanbak/sp_%d_%U‘;

RMAN> backup copies 2 device type disk spfile;

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

1.7.7.5备份归档日志文件

备份归档日志时仅仅备份归档过的数据文件(不备份联机重做日志文件)

备份归档日志时总是对归档日志做完整备份

RMAN对归档日志备份前会自动做一次日志切换,且从一组归档日志中备份未损坏的归档日志

RMAN会自动判断哪些归档日志需要进行备份

归档日志的备份集不能包含其它类型的文件

关于Oracle日志文件请参考:Oracle 联机重做日志文件(ONLINE LOG FILE)

关于Oracle归档日志请参考:Oracle 归档日志

RMAN> backup

2> format ‘/u01/app/oracle/rmanbak/lf_%d_%U‘

3> archivelog all delete input;   --delete input 删除所有已经备份过的归档日志

RMAN> backup            --此种写法实现了上述相同的功能

2> archivelog all delete input

3> format ‘/u01/app/oracle/rmanbak/lf_%d_%U‘;

RMAN>backup archivelog sequence between 50 and 120 thread 1 delete input;

RMAN> backup archivelog from time "sysdate-15" until time "sysdate-7";

RMAN> backup

2> format ‘/u01/app/oracle/rmanbak/lf_%d_%U‘

3> archivelog from sequence=80

4> delete input;

使用plus archivelog时备份数据库完成的动作(backup database plus archivelog)

1.首先执行alter system archive log current 命令(对当前日志归档)

2.执行backup archivelog all 命令(对所有归档日志进行备份)

3.执行backup database命令中指定的数据文件、表空间等

4.再次执行alter system archive log current

5.备份在备份操作期间产生的新的归档日志

--执行下面的命令,并观察备份列出的信息,可以看到使用plus archivelog时使用了上面描述的步骤来进行备份

RMAN> backup database plus archivelog

2> format  ‘/u01/app/oracle/rmanbak/lg_%d_%U‘ delete input;

1.7.7.6备份闪回区

RMAN> backup recovery area;

使用backup recovery area时,将备份位于闪回区且未进行过备份的所有文件,这些文件包括完整、增量备份集、自动备份的

控制文件(假定使用闪回区作为备份路径时)、归档日志、数据文件的镜像副本等。闪回日志,当前的控制文件。

联机重做日志不会被备份

RMAN> backup recovery files;

使用backup recovery files时,将备份磁盘上未进行过备份的所有恢复文件,而不论是否位于闪回区

注:使用上述两条命令时,备份目的地必须是磁带

7.总结:

数据文件的备份集对于未使用的块可以执行增量备份,可以跳过未使用过的数据块来进行压缩备份

对于控制文件、归档日志文件、spfile文件则是简单的拷贝,并对其进行打包压缩而已

时间: 2024-10-20 08:34:56

RMAN备份详解的相关文章

RMAN 备份详解

--====================== -- RMAN 备份详解 --====================== 一.数据库备份与RMAN备份的概念 1.数据库完全备份:按归档模式分为归档和非归档 归档模式 打开状态,属于非一致性备份 关闭状态,可以分为一致性和非一致性 非归档模式 打开状态,非一致性备份无效 关闭状态,一致性备份,非一致性备份不被推荐 2.RMAN备份 RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话 RMAN备份内容包括:整个

Linux系统环境SVN服务器定时备份详解

Linux系统环境SVN服务器定时备份详解: 本篇文章主要介绍的内容是在Linux系统下如何定时备份SVN服务器,目的是为了防止一旦SVN服务器挂掉及数据丢失造成的损失,需要对SVN服务器数据定时备份处理,以便找回丢失的数据,具体如下所示: 一. 新建备份目录 #mkdir /opt/project_backup 二.编写备份脚本 #cd /home/svn #vim project_backup.sh cd /home/svn now=`/bin/date +%Y%m%d` /bin/tar

CentOS 6.5 MySQL/MariaDB数据备份与恢复备份详解

MySQL/MariaDB数据备份与恢复备份 数据对我们来说再重要不过了,那我们如何做到对数据尽可能的安全呢,当我们的数据丢失了那又该怎么做呢,所以说数据备份对我们的数据安全性来说太重要了. 数据对我们来说再熟悉不过了,也最平常不过了,我们每天都在接触各色各样的数据,数据记录了我们平常相关的业务信息,所以数据对于我们来说是很重要的,这么重要的数据如果我们的数据丢失了那我们是不是相关的业务都没法进行了呢,这应该是个很麻烦的问题,那我们怎么保护我们的数据的安全呢,这就要用到我们的数据备份了. 如何执

Oracle数据库备份详解

Oracle数据库备份详解 Oracle官方提供多种备份方式,日常使用最多的有exp/imp常规方式,及数据泵expdp/impdp方式:下面对这两种方式进行详解. 常规方式 exp/imp imp/exp是Oracle导入导出命令,可以用作数据的迁移,expdp/imdp也是Oracle数据导入导出的命令,效率比imp/exp效率要高,这个后面再讨论 一  EXP导出命令 exp 是数据的导出命令,可以用于表,用户,整个数据库,exp -help查看帮助 Export: Release 11.

MySQL数据库备份详解

原文:MySQL数据库备份详解 对于任何数据库来说,备份都是非常重要的 数据库复制不能取代备份的作用 比如我们由于误操作,在主数据库上删除了一些数据,由于主从复制的时间很短,在发现时,从数据库上的数据可能也已经被删除了, 我们不能使用从数据库上的数据来恢复主数据库上的数据,只能通过备份进行误删除数据的恢复 一. 备份的分类 1.按备份的结果来分: 逻辑备份 其备份结果为SQL语句,适合于所有存储引擎,恢复时需要较多时间,逻辑备份时,对于MyISAM存储引擎是需要进行锁表操作的,通过使用的mysq

Mysqlbackup 备份详解(mysql官方备份工具)

A.1全库备份. 命令: mysqlbackup --defaults-file=/home/mysql-server/mysql3/my.cnf  --user=root --password=root  --databases="mysql total2" --with-timestamp   --backup-dir=/home/mysql-server/backup   backup 参数说明: --defaults-file my.cnf文件的路径,主要用于一台服务器多个my

Oracle rman 命令详解

一.list常用命令总结备忘 list命令列出控制文件.RMAN恢复目录中备份信息, 是我们对所有可见的数据库备份文件的一个最直观的了解的方法 list incarnation;    list backup summary;    list backup of database summary;    list backup of tablespace summary;    list backup of datafile n,n summary;    list archivelog all

RMAN 参数详解

使用RMAN>show all;可以显示出RMAN 配置参数为: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # defaultCONFIGURE BACKUP OPTIMIZATION OFF; # defaultCONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP OFF; # defaultCONFIGURE CONTROLFILE AUT

mysqlbackup企业级备份详解

mysqldump当数据量很大的时候,不建议使用此工具,应当采用的是oracle公司提供了针对企业的备份软件Mysql Enterprise Backup简称mysqlbackup 一.安装 [[email protected] bjia]# unzip p19957495_3110_Linux-x86-64.zip  [[email protected] bjia]# tar zxvf meb-3.11.1-linux-glibc2.5-x86-64bit.tar.gz [[email pro