1、RMAN参考使用手册RMAN的概念与体系结构Oracle 9i RMAN的配置运用RMAN进行备份运用RMAN进行还原与恢复RMAN的日常管理RMAN的恢复目录一、RMAN的概念与体系结构Recovery Manager(RMAN)是一种用于备份(backup)、还原(restore)和恢复(recover)数据库的 Oracle 工具。RMAN只能用于ORACLE8或更高的版本中。它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。RMAN也允许您进行增量数据块级别的备份,增量RMAN备份是时间和空间有效的,因为他们只备份自上次备份以来有变化的那
2、些数据块。而且,通过RMAN提供的接口,第三方的备份与恢复软件如veritas将提供更强大的备份与恢复的管理功能。通过RMAN,也提供了其它更多功能,如数据库的克隆、采用RMAN建立备用数据库、利用RMAN备份与移动裸设备(RAW)上的文件等工作将变得更方便简单。9i的RMAN通过增强的自动配置与管理功能,以及特有的块级别的恢复,将使备份与恢复工作变得更加快捷与完美。9i的RMAN有如下特征特性:自动的备份与恢复方便的备份归档日志自动检测新的数据文件支持增量备份最大限度的减少备份与恢复的错误减少恢复的时间在热备份中不会产生额外的redo日志腐烂数据块的自动检测3并行的备份与恢复操作在线备份时,
3、表空间不用置于备份模式可以看到,在以上的一些特性中,显示了RMAN强大的功能与好处,以上功能的实现,是因为RMAN是块级别的备份与恢复,备份与恢复发生在数据库块级别,可以通过比较数据块而获得一致性的数据块,可以避免备份没有用过的块,可以检验块是否腐烂等块级别的问题。RMAN的体系结构可以用如下图表示:RMAN 的体系结构对于组成以上RMAN 的结构,说明如下:1、RMAN 工具也就是RMAN 命令,起源于Oracle 版本8,一般位于$ORACLE_HOME/bin 目录下,可以通过运行rman这个命令来启动RMAN 工具,用于备份与恢复的接口。2、服务进程RMAN 的服务进程是一个后台进程,
4、用于与RMAN工具与数据库之间的通信,也用于RMAN 工具与磁盘/磁带等I/O 设置之间的通信,服务进程负责备份与恢复的所有工作,在如下情况将产生一个服务进程当连接到目标数据库分配一个新的通道3、通道通道是服务进程与I/O 设备之前读写的途径,一个通道将对应一个服务进程,在分配通道时,需要考虑I/O 设备的类型,I/O 并发处理的能力,I/O 设备能创建的文件的大小,数据库文件最大的读速率,最大的打开文件数目等因素4、目标数据库就是RMAN 进行备份与恢复的数据库,RMAN 可以备份除了联机日志,pfile,密码文件之外的数据文件,控制文件,归档日志,spfile45、恢复目录用来保存备份与恢
5、复信息的一个数据库,不建议创建在目标数据库上,利用恢复目录可以同时管理多个目标数据库,存储更多的备份信息,可以存储备份脚本。如果不采用恢复目录,可以采用控制文件来代替恢复目录,oracle 9i因为控制文件自动备份的功能,利用控制文件很大程度上可以取代恢复目录。6、媒体管理层Media Management Layer (MML)是第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理。如果你想直接通过RMAN 备份到磁带上,就必须配置媒体管理层,媒体管理层的工具如备份软件可以调用RMAN 来进行备份与恢复。7、备份,备份集与备份片当发出backup命令的时候,RMAN 将创建一个完成的备份,
6、包含一个到多个备份集,备份集是一个逻辑结构,包含一组的物理文件。这些物理文件就是对应的备份片。备份片是最基本的物理结构,可以产生在磁盘或者磁带上,可以包含目标数据库的数据文件,控制文件,归档日志与spfile文件。备份集与备份片有如下规定一个数据文件不能跨越一个备份集,但是能跨越备份片数据文件,控制文件能保存在同样的备份集上,但是不能与归档日志保存在同样的备份集上二、启动与运行RMAN2.1 运行要求1、进程与内存要求更多的进程的需要大池的分配2、基本环境变量需求ORACLE_SID, ORACLE_HOME, PATH, NLS_LANG, 如果用到了基于时间的备份与恢复,需要另外设置NLS
7、_DATE_FORMAT3、权限要求需要SYSDBA系统权限如果是本地,可以采用OS认证,远程需要采用密码文件认证4、版本要求RMAN 工具版本与目标数据库必须是同一个版本,如果使用了恢复目录,还需要注意创建RMAN 恢复目录的脚本版本必须等于或大于恢复目录所在数据库的版本创建RMAN 恢复目录的脚本版本必须等于或大于目标数据库的版本2.2 基本运行方法9i默认是nocatalog,不使用恢复目录,使用命令rman即可进入RMAN 的命令行界面,如oracledb oracle$ $ORACLE_HOME/bin/rman5Recovery Manager: Release 9.2.0.4.0
8、 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.RMAN连接目标数据库,可以用如下类似命令RMANConnect target /2.3怎么样运行RMAN 命令1、单个执行RMANbackup database;2、运行一个命令块RMAN run 2 copy datafile 10 to3 /oracle/prod/backup/prod_10.dbf;4 3、运行脚本$ rman TARGET / backup_db.rmanRMAN backup_db.rmanRMAN RUN
9、backup_db.rman 运行存储在恢复目录中的脚本RMAN RUN EXECUTE SCRIPT backup_whole_db ;4、SHELL脚本,如果在cron中执行,注意设置正确的环境变量在脚本中oracledb worksh$ more rmanback.sh#!/bin/ksh#set envexport ORACLE_HOME=/opt/oracle/product/9.2export ORACLE_SID=testexport NLS_LANG=AMERICAN_AMERICA.zhs16gbkexport PATH=$PATH:$ORACLE_HOME/binecho
10、-start-;date#backup start$ORACLE_HOME/bin/rman show all;RMAN configuration parameters are:CONFIGURE RETENTION POLICY TO REDUNDANCY 1;CONFIGURE BACKUP OPTIMIZATION OFF;CONFIGURE DEFAULT DEVICE TYPE TO DISK;CONFIGURE CONTROLFILE AUTOBACKUP OFF;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO %
11、F;CONFIGURE DEVICE TYPE DISK PARALLELISM 1;CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;CONFIGURE MAXSETSIZE TO UNLIMITED;CONFIGURE SNAPSHOT CONTROLFILE NAME TO/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f;3.1 备份策略保持分为两个保持策略
12、,一个是时间策略,决定至少有一个备份能恢复到指定的日期,一个冗余策略,规定至少有几个冗余的备份。CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;CONFIGURE RETENTION POLICY TO REDUNDANCY 5;CONFIGURE RETENTION POLICY TO NONE;在第一个策略中,是保证至少有一个备份能恢复到Sysdate-5 的时间点上,之前的备份将标记为Obsolete。第二个策略中说明至少需要有三个冗余的备份存在,如果多余三个备份以上的备份将标记为冗余。NONE 可以把使备份保持策略失效,C
13、lear 将恢复默认的保持策略。3.2通道配置与自动通道分配通过CONFIGURE 配置自动分配的通道,而且可以通过数字来指定不同的通道分配情况。CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT /U01/ORACLE/BACKUP/%UCONFIGURE CHANNEL n DEVICE TYPE DISK FORMAT /U01/ORACLE/BACKUP/%U当然,也可以在运行块中,手工指定通道分配,这样的话,将取代默认的通道分配。Runallocate channel cq type disk format=/u01/backup/%u.bak7以下是
14、通道的一些特性读的速率限制Allocate channel rate = integer最大备份片大小限制Allocate channel maxpiecesize = integer最大并发打开文件数(默认16)Allocate channel maxopenfile = integer3.3控制文件自动备份从9i开始,可以配置控制文件的自动备份,但是这个设置在备用数据库上是失效的。通过如下的命令,可以设置控制文件的自动备份CONFIGURE CONTROLFILE AUTOBACKUP ON;对于没有恢复目录的备份策略来说,这个特性是特别有效的,控制文件的自动备份发生在任何backup或者
15、copy命令之后,或者任何数据库的结构改变之后。可以用如下的配置指定控制文件的备份路径与格式CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO %F;在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可以通过如下配置CONFIGURE SNAPSHOT CONTROLFILE NAME TO/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f;3.4设置并行备份RMAN支持并行备份与恢复,也可以在配置中指定默认的并行程度。如CONFIGURE DEVICE TYPE DIS
16、K PARALLELISM 4;指定在以后的备份与恢复中,将采用并行度为4,同时开启4个通道进行备份与恢复,当然也可以在run的运行块中指定通道来决定备份与恢复的并行程度。并行的数目决定了开启通道的个数。如果指定了通道配置,将采用指定的通道,如果没有指定通道,将采用默认通道配置。3.5配置默认IO 设备类型IO 设备类型可以是磁盘或者磁带,在默认的情况下是磁盘,可以通过如下的命令进行重新配置。CONFIGURE DEFAULT DEVICE TYPE TO DISK;CONFIGURE DEFAULT DEVICE TYPE TO SBT;注意,如果换了一种IO设备,相应的配置也需要做修改,如
17、RMAN CONFIGURE DEVICE TYPE SBT PARALLELISM 2;83.6配置多个备份的拷贝数目如果觉得单个备份集不放心,可以设置多个备份集的拷贝,如CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 2;CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 2;如果指定了多个拷贝,可以在通道配置或者备份配置中指定多个拷贝地点CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT /u01/backup/%U, /u0
18、2/backup/%U;RMANbackup datafile n format /u01/backup/%U, /u02/backup/%U;3.7备份优化可以在配置中设置备份的优化,如CONFIGURE BACKUP OPTIMIZATION ON;如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。同样的DBID,检查点SCN,ResetlogSCN 与时间正常离线,只读或正常关闭的文件归档日志同样的线程,序列号RESETLOG SCN 与时间3.8备份文件的格式备份文件可以自定义各种各样的格式,如下%c 备份片的拷贝数%d 数据库名称%D 位于该月中的第几天 (DD
19、)%M 位于该年中的第几月 (MM)%F 一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列%n 数据库名称,向右填补到最大八个字符%u 一个八个字符的名称代表备份集与创建时间%p 该备份集中的备份片号,从1 开始到创建的文件数%U 一个唯一的文件名,代表%u_%p_%c%s 备份集的号%t 备份集时间戳%T 年月日格式(YYYYMMDD)四、用RMAN备份RMAN可以用来备份主或备用数据库,如表空间、数据文件、归档日志、控制文件、服务器文件与备
20、份集。94.1文件拷贝原始文件的拷贝,有点类似于OS热备份,可以拷贝整个数据文件到另外一个地点,但是结果仅仅只能写入到硬盘,而且单独的文件是分开的。一个文件拷贝的例子run allocate channel d1 type disk;allocate channel d2 type disk;allocate channel d3 type disk;copy # firstdatafile 1 to $HOME/prd1.dbf,datafile 2 to $HOME/prd2.dbf;copy # seconddatafile 3 to $HOME/prd3.dbf;sql alter s
21、ystem archive log current;4.2备份与备份集RMAN 的常规备份是产生只有RMAN 才能识别的备份集,所以,除了copy 命令之外的其他备份,都是RMAN 产生的备份集以及对应的备份片。一个备份数据库的例子,开启两个通道,将数据库备份到磁带run allocate channel t1 type SBT_TAPE;allocate channel t2 type SBT_TAPE;backupfilesperset 2format df_%t_%s_%pdatabase;RMAN 也可以实现多个镜相的备份Runallocate channel d1 type disk
22、;allocate channel d2 type disk;allocate channel d3 type disk;SET BACKUP COPIES 3;BACKUP DATAFILE 7 FORMAT /tmp/%U,?/oradata/%U,?/%U;以下是常见的备份归档的例子RMANsql alter system archive log current;RMANbackup archivelog all delete input;RMAN backup archivelog from time 01-jan-00 until time 30-jun-00;RMAN backup
23、 archivelog like oracle/arc/dest/log%;10RMAN backup archivelog all;RMAN backup archivelog from logseq 20 until logseq 50 thread 1;RMAN backup archivelog from scn 1 until scn 9999;在RAC环境中,因为数据库是共享的,所以可以连接到一个实例就可以备份整个数据库,但是,因为归档日志可以备份在本地,所以RAC归档日志的备份就变的复杂一些,我们可以通过连接到两个实例的通道来备份两个实例的归档日志。runALLOCATE CHA
24、NNEL node_c1 DEVICE TYPE DISK CONNECT sys/passdbin1;ALLOCATE CHANNEL node_c2 DEVICE TYPE DISK CONNECT sys/passdbin2;sql ALTER SYSTEM ARCHIVE LOG CURRENT;backup archivelog all delete input format /u01/dbbak/%U_%s.bak filesperset =5;4.3 常见备份参数1、Keep参数可以长期的保持特殊的备份或者拷贝,让它们不受默认备份保持策略的影响,如RMAN BACKUP DATA
25、BASE KEEP UNTIL TIME2 to_date(31-MAR-2002,DD_MM_YYYY) nologs;RMAN BACKUP TABLESPACE SAMPLE KEEP FOREVER NOLOGS;其中NOLOGS 表示可以不保留该备份以来的归档日志,默认是LOGS,表示保留该备份以来的参数,如果想让该备份永久有效,可以使用FOREVER参数。2、Tag参数指明了备份集的标志,可以达到30 个字符长度,如RMAN BACKUP DEVICE TYPE DISK DATAFILE 1 TAG2 wkly_bkup;在Oracle 92 版本以后,RMAN 自动提供一个TA
26、G,格式为TAGYYYYMMDDTHHMMSS如TAG20020208T133437,通过备份标志TAG,也可以很方便的从备份集进行恢复,如Restore database from tag=tag name4.4增量备份在说明增量备份之前,首先要理解差异增量与累计增量备份,以及增量备份的备份与恢复原理。差异增量,是默认的增量备份方式。11累计增量备份可以看到,差异增量是备份上级或同级备份以来变化的块,累计增量是备份上级备份以来变化的块。累计增量增加了备份的时间,但是因为恢复的时候,需要从更少的备份集中恢复数据,所以,为了减少恢复的时候,累计增量备份将比差异增量备份更有效。不管怎么样增量备份,
27、在Oracle 版本9 中,还是需要比较数据库中全部的数据块,这个过程其实也是一个漫长的过程,而且由于增量备份形成多个不同的备份集,使得恢复变的更加不可靠而且速度慢,所以增量备份在版本9 中仍然是鸡肋,除非是很大型的数据仓库系统,没有必要选择增量备份。Oracle 版本10在增量备份上做了很大的改进,可以使增量备份变成真正意义的增量,因为通过特有的增量日志,使得RMAN 没有必要去比较数据库的每一个数据块,当然,代价就是日志的IO 与磁盘空间付出,完全还是不适合OLTP系统。另外,版本10 通过备份的合并,使增量备份的结果可以合并在一起,而完全的减少了恢复时间。增量备份都需要一个基础,比如0
28、级备份就是所有增量的基础备份,0级备份与全备份的不同就是0 级备份可以作为其它增量备份的基础备份而全备份是不可以的,是否选择增量备份作为你的备份策略,最终,需要你自己有一个清醒的认识。以下是零级备份的例子backup incremental level 0 database;一级差异增量例子backup incremental level 1 database;一级累计增量例子backup incremental level 1 cumulative database;124.5备份检查我们可以通过Validate命令来检查是否能备份,如数据文件是否存在,是否存在坏块不能被备份,如:BACKU
29、P VALIDATE DATABASE;BACKUP VALIDATE DATABASE ARCHIVELOG ALL;4.6重新启动备份对于异常结束了的备份,很多人可能不想再重新开始备份了吧,特别是备份到90%以上,因为异常原因终止了该备份,那怎么办呢?RMAN 提供一个重新开始备份的方法,通过简单的命令,你就可以只备份那不到10%的数据了。RMAN BACKUP NOT BACKED UP SINCE TIME SYSDATE-142 DATABASE PLUS ARCHIVELOG;4.7 RMAN 动态性能视图以下是与RMAN 备份有关系的一些动态性能视图,信息是从控制文件中获取的。V
30、$ARCHIVED_LOGV$BACKUP_CORRUPTIONV$COPY_CORRUPTIONV$BACKUP_DATAFILEV$BACKUP_REDOLOGV$BACKUP_SETV$BACKUP_PIECEV$BACKUP_DEVICEV$CONTROLFILE_RECORD_SECTION这里还有一个视图,可以大致的监控到RMAN备份进行的程度。如通过如下的SQL脚本,将获得备份的进度。SQL SELECT SID, SERIAL#, CONTEXT, SOFAR, TOTALWORK,2 ROUND(SOFAR/TOTALWORK*100,2) %_COMPLETE3 FROM V$SESSION_LONGOPS4 WHERE OPNAME LIKE RMAN%5 AND OPNAME NOT LIKE %aggregate%6 AND TOTALWORK != 07 AND SOFAR TOTALWORK;SID SERIAL# CONTEXT SOFAR TOTAL WORK %_COMPLETE- - - - - -13 75 1 9470 15360 61.6512 81 1 15871 28160 56.3613
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100