用友股份-LE服务支持部技术方案--《RMAN-oracle最实用的备份与恢复工具初探》建立日期:2013-06-01修改日期:xxxx-xx-xx文档属性:客户文控编号:LE-DY-JS-2013-00562/16文档控制创建记录审阅人姓名所属部门职位审阅签字发布人姓名所属部门发布时间日期作者所属部门邮件地址版本2013-06-01V1.03目录RMAN-oracle最实用的备份与恢复工具初探........................................................................4一.使用RMAN的前提,修改数据库为归档模式:..................................................................4二.连接到RMAN....................................................................................................................5三.rman的report和list命令...........................................................................................5四.rman的copy和backup命令....................................................................................6五.rman的backup备份集和备份片................................................................................8六.rman的Backup备份数据文件.......................................................................................9七.rman的backup备份控制文件与二进制参数文件..................................................11八.rman的backup备份归档日志文件...........................................................................12九.rman的恢复目录的配置...............................................................................................13十.rman的控制文件恢复与数据文件完全恢复...............................................................144RMAN-oracle最实用的备份与恢复工具初探RMAN是oracle数据恢复的王者,借助归档日志以及联机日志文件可以把数据尽可能的恢复到最新状态.想要使用RMAN把数据恢复到最新状态,控制文件,数据文件,日志文件缺一不可.一.使用RMAN的前提,修改数据库为归档模式:altersystemsetlog_archive_format='ARC%S_%R.%T'scope=spfile;altersystemsetlog_archive_dest_1='location=d:\arc'scope=spfile;connect/assysdbashutdownimmediatestartupmountAlterdatabasearchivelog;Alterdatabaseopen;查看归档日志目录及状态:select*fromv$archive_processes;5select*fromv$archived_log;查看联机日志目录及状态:Select*fromv$log;二.连接到RMAN方法一:先进入RMAN的提示界面,再连接到数据库(间接登录)。D:\oracle\102\BIN>rmanRMAN>connecttarget/方法二:直接到数据库,连接到本地的数据库(直接连接)D:\oracle\102\BIN>rmantarget/方法三:直接到数据库,连接到远程的数据库D:\oracle\102\BIN>rmantargetsys/sys@oral_IP三.rman的report和list命令reportschema;--罗列出所有数据文件的信息reportneedbackupdays3;--罗列出三天以上没有备份的文件6listcopyofdatafile文件号;--查看使用copy命令备份的某个数据文件现有备份listbackupofdatafile文件号;--查看使用backup命令备份的某个数据文件现有备份文件号由report命令查询四.rman的copy和backup命令1.copycopydatafile'D:\ORACLE\ORADATA\O10\USERS01.DBF'to'e:\bk\u1.cp';copy可以把asm的数据文件变成物理文件;Copy命令备份文件的所有块,包含崭新的没有装过数据的块;等同于热备份,所以rman使用copy命令产生的备份可以使用手工来恢复;copy备份所有的数据块;备份的文件是一对一的,不能将多个文件打包到一个文件中;7只能备份到磁盘,不能备份到磁带;不能使用压缩的特性;不能使用增量的特性;2.backupbackupdatafile4format'c:\bk\u1.%s';Backup命令是rman特有的;只备份使用过的数据块,外加一个文件头,文件头里描述了该文件的信息;使用backup命令备份的数据只有使用backup来恢复;backup备份所有使用过的数据块;backup备份的文件能将多个文件打包到一个文件中。但必须是相同类型的文件,数据文件和数据文件,归档的日志文件和归档的日志文件,控制文件单独打包;既能备份到磁盘,也能备份到磁带,大部分的时候是备份到带库;8能使用压缩的特性;能使用增量的特性。五.rman的backup备份集和备份片1.备份集Set逻辑的,由备份片组成%s代表备份集2.备份片Piece物理的文件,大小可以限制,不指明每个集合有一个片%p代表备份片%d代表数据库的名称%u代表唯一标识,这里是区分大小写的。3.备份片的大小限制限制通道的大小,告诉数据库使用一个进程d1做备份,通过限制进程的写信息来限制每个备份片的大小,一般限制备份片大小的目的是使得备份片可以存放在一个磁带上.9备份集是逻辑的,有多个备份片组成,备份片是物理的。默认情况下一个备份集对应一个物理的备份片,一个备份集中可以包含多个备份的数据文件。或者通过调整RMAN参数来修改系统默认的备份片大小:CONFIGURECHANNELDEVICETYPEdiskMAXPIECESIZE1G;六.rman的Backup备份数据文件1.备份单个数据文件Dos>d:Dos>mkdirbkDos>cdoracle/db_1/binDos>RMANtarget/RMAN>RUN{ALLOCATECHANNELd1TYPEdisk;--占用进程通道d1setlimitchanneld1kbytes=10000;--设置通道大小10backupdatafile4FORMAT'd:\bk\%s_%p';}--备份4号数据文件2.备份所有数据文件,并且每三个数据文件放入一个备份集backupdatabaseformat'c:\bk\%d_%s_%p'filesperset3;3.10g的新特性,压缩backup备份文件backupascompressedbackupsetformat'c:\arc\f4_%u'datafile4tag='users_full';11七.rman的backup备份控制文件与二进制参数文件1.多备份控制文件没有错误,很小,但很重要手动备份backupcurrentcontrolfileformat'd:\bk\c1.%s';自动备份设置参数,之后每当数据库的结构改变的时候,系统都会自动备份控制文件CONFIGURECONTROLFILEAUTOBACKUPON;--开启自动备份控制文件CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'd:\bk\%F';--指定自动备份路径2.备份二进制控制文件二进制参数文件在备份sytem表空间的时候会自动备份backupspfileformat'd:\bk\spfile.%s';12八.rman的backup备份归档日志文件备份归档日志文件listarchivelogall;listcopyofarchivelogall;listbackupofarchivelogall;listcopyofarchivelogsequencebetween264and265thread=1;copyarchivelog'F:\oracle\oradata\zl9\arch\ARC264.LOG'to'd:\bk\a.cp';BACKUPARCHIVELOGALLDELETEINPUTformat'd:\bk\arc%s.bk';backuparchivelogsequencebetween264and265thread=1format'd:\bk\arc%s.bk';backuparchivelogsequencebetween50and52thread=1like'%0586360856%'format'c:\bk\arc%s.bk';一定要自动清除归档文件,否则归档目录满则数据库挂起BACKUPARCHIVELOGALLDELETEINPUTformat'd:\bk\arc%s.bk';13如果上边的语句有问题,则:changearchivelogallcrosscheck;deletearchivelogall;九.rman的恢复目录的配置1.创建catalog,实现rman的全自动,万无一失createtablespacermandatafile‘?\rman.dbf'size20m;createuserRmanidentifiedbyRmandefaulttablespacerman;grantrecovery_catalog_owner,connect,resourcetoRman;DOS>RMANCATALOGRMAN/RMANRMAN>createcatalog;exit;dos>RMANTARGETSYS/SYS@3catalogrman/rmanrman>registerdatabase;2.创建备份脚本,备份所有数据文件,控制文件,参数文件,归档文件CREATEscriptb0{14backupincrementallevel0format'D:\bk\%d_%s_%p'filesperset3(databaseincludecurrentcontrolfile);sql"altersystemarchivelogcurrent";BACKUPARCHIVELOGALLDELETEINPUTformat'd:\bk\arc%s.bk';}3.运行脚本备份run{executescriptb0;}十.rman的控制文件恢复与数据文件完全恢复1.Rman的恢复一定要有控制文件来支持,如果控制文件损坏一定要先在nomount状态下恢复控制文件。Startupnomount15RESTORECONTROLFILEFROM'C:\bk\?.BKP';如果创建了catalog,只需如此RESTORECONTROLFILE;2.恢复单个数据文件,以4号数据文件为例Restoredatafile4;Recoverdatafile4;3.恢复所有数据文件Restoredatabase;Recoverdatabase;4.将文件恢复到其他目录RUN{16SETNEWNAMEFORdatafile'D:\ORACLE\ORADATA\orcl\nnc_data01.DBF'to'e:\bk\nnc_data01.DBF';RESTORE(tablespacennc_data01);SWITCHdatafile8;--文件号对应nnc_data01RECOVERTABLESPACEnnc_data01;SQL"altertablespacennc_data01online";}