




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、OracleRMAN快速入门指南从http:/ RMANRMAN可以用来备份和还原数据库文件、归档日志和控制文件。它也可以用来执行完全或不完全的数据库恢复。注意:RMAN不能用于备份初始化参数文件和口令文件。RMAN启动数据库上的Oracle服务器进程来进行备份或还原。备份、还原、恢复是由这些进程驱动的。RMAN可以由OEM的BackupManagerGUI来控制,但在本文章里不作重点讨论。2 .Terminology 专业词汇解释2.1. Backupsets 备份集合备份集合有下面的特性:包括一个或多个数据文件或归档日志以oracle专有的格式保存有一个完全的所有的备份片集合构成构成一个完
2、全备份或增量备份2.2. Backuppieces 备份片一个备份集由若干个备份片组成。每个备份片是一个单独的输出文件。一个备份片的大小是有限制的;如果没有大小的限制,备份集就只由一个备份片构成。备份片的大小不能大于使用的文件系统所支持的文件长度的最大值。2.3. Imagecopies 镜像备份镜像备份是独立文件(数据文件、归档日志、控制文件)的备份。它很类似操作系统级的文件备份。它不是备份集或备份片,也没有被压缩。2.4. Fullbackupsets 全备份集合全备份是一个或多个数据文件中使用过的数据块的的备份。没有使用过的数据块是不被备份的,也就是说,oracle进行备份集合的压缩。2
3、.5. Incrementalbackupsets 增量备份集合增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以来被修改过的数据块。与完全备份相同,增量备份也进行压缩。2.6. Filemultiplexing不同的多个数据文件的数据块可以混合备份在一个备份集中。2.7. Recoverycatalogresyncing 恢复目录同步使用恢复管理器执行backup、copy、restore或者switch命令时,恢复目录自动进行更新,但是有关日志与归档日志信息没有自动记入恢复目录。 需要进行目录同步。 使用resynccatalog命令进行同步。RMANresyncc
4、atalog;RMAN-03022:正在编译命令:resyncRMAN-03023:正在执行命令:resyncRMAN-08002:正在启动全部恢复目录的resyncRMAN-08004:完成全部resync(a).恢复目录a.恢复目录的概念恢复目录是由RMAN使用、 维护的用来放置备份信息的仓库。RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。恢复目录可以存在于ORACLE数据库的计划中。虽然恢复目录可以用来备份多个数据库, 建议为恢复目录数据库创建一个单独的数据库。恢复目录数据库不能使用恢复目录备份自身。a.建立恢复目录第一步,在目录数据库中创建恢复目录所用表空间:SQLc
5、reatetablespacerman_tsdatafiled:oracleoradatarmanrman_ts.dbfsize20M;表空间已创建。第二步,在目录数据库中创建RMAN用户并授权:SQLcreateuserrmanidentifiedbyrmandefaulttablespacerman_tstemporarytablespacetempquotaunlimitedonrman_ts;用户已创建。SQLgrantrecovery_catalog_ownertorman;授权成功。SQLgrantconnect,resourcetorman;授权成功。第三步,在目录数据库中创建恢
6、复目录C:rmancatalogrman/rman恢复管理器:版本.0-ProductionRMAN-06008:连接到恢复目录数据库RMAN-06428:未安装恢复目录RMANcreatecatalogtablespacerman_ts;RMAN-06431:恢复目录已创建注意:虽然使用RMAN不一定必需恢复目录,但是推荐使用。因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信息。不使用恢复目录将会对备份恢复操作有限制。a.使用恢复目录的优势可以存储脚本;记载较长时间的备份恢复操作;(b).启动 RMANRMAN为交互式命令行处理界面,也可以从
7、企业管理器中运行。为了使用下面的实例,先检查环境符合:thetargetdatabaseiscalledhisandhasthesameTNSaliasuserrmanhasbeengrantedrecovery_catalog_ownerprivileges目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接therecoverycatalogdatabaseiscalledrmanandhasthesameTNSaliastheschemacontainingtherecoverycatalogisrman(samepassword)在使用RMAN前,设置NLS_
8、DATE_FORMAT和NLS_LANG环境变量,彳艮多RMANLIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。下例是环境变量的示范:NLS_LANG=SIMPLIFIEDCHINESE_CHINA.ZHS16GBKNLS_DATE_FORMAT=DD-MON-YYYYHH24:MI:SS为了保证RMAN使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。b.使用不带恢复目录的 RMAN设置目标数据库的ORACLE_SID,执行:%rmannocat
9、alogRMANconnecttargetRMANconnecttargetinternal/hisb.使用带恢复目录的 RMAN%rmanrman_tsrman/rmanrmanRMANconnecttarget%rmanrman_tsrman/rmanrmantargetinternal/hisb.使用 RMAN一旦连接到目标数据库, 可以通过交互界面或者事先存储的脚本执行指定RMAN命令,下面是一个使用RMAN交互界面的实例:RMANresynccatalog;RMAN-03022:正在编译命令:resyncRMAN-03023:正在执行命令:resyncRMAN-08002:正在启动全
10、部恢复目录的resyncRMAN-08004:完成全部resync使用脚本的实例:RMANexecutescriptalloc_1_disk;创建或者替代存储的脚本:RMANreplacescriptalloc_1_disk2allocatechannelditypedisk;3(c).注册或者注销目标数据库c.注册目标数据库数据库状态:恢复目录状态:打开目标数据库:加载或者打开目标数据库在第一次使用RMAN之前必须在恢复目录中注册:第一步,启动恢复管理器,并且连接目标数据库:C:rmantargetinternal/oraclehiscatalogrman/rmanrman恢复管理器:版本8
11、.-ProductionRMAN-06005:连接到目标数据库:HIS(DBID=3021445076)RMAN-06008:连接到恢复目录数据库第二步,注册数据库:RMANregisterdatabase;RMAN-03022:正在编译命令:registerRMAN-03023:正在执行命令:registerRMAN-08006:注册在恢复目录中的数据库RMAN-03023:正在执行命令:fullresyncRMAN-08002:正在启动全部恢复目录的resyncRMAN-08004:完成全部resyncc.注销目标数据库RMAN提供了一个注销工具,叫DBMS_RCVCAT工具
12、包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。其中连接目标数据库时将会获得DB_ID。C:rmantargetinternal/oraclehiscatalogrman/rmanrman恢复管理器:版本.0-ProductionRMAN-06005:连接到目标数据库:HIS(DBID=3021445076)RMAN-06008:连接到恢复目录数据库其中DBID=3021445076,利用DBID=3021445076查询数据库键值码,连接到目标数据库,查询db
13、表:SQLselect*fromdb;DB_KEYDB_IDCURR_DBINC_KEY130214450762获彳导DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:SQLexecutedbms_rcvcat.unregisterdatabase(1,3021445076);PL/SQL过程已成功完成。至此,注销数据库操作完成。(d).操作已有的备份d.加入目录数据库数据库状态:恢复目录:打开目标数据库:加载或者打开如果存在8.x版本以前创建的备份数据想注册到目标数据库,恢复目录中RMANcata
14、logdatafilecopy/oracle/.Zsystem01.dbf;使用如下命令显示恢复目录中包含的文件可以采用如下手工方式加入到RMANlistcopyofdatabase;d.从目录数据库中删除第一步:查看备份信息:RMANlistbackup;RMAN-03022:正在编译命令:list备份集列表关键字Recid标记LV集合标记集合计数完成时间110425013644550501364446206-8月-03备份段列表关键字Pc#Cp#状态完成时间段名110611AVAILABLE06-8月-03D:ORACLEORA81DATABASE02EU4DMU_1_1数据文件包括列表文
15、件名称LV类型检查点SCN检查点时间3D:ORACLEORADATAHISUSERS01.DBF0Full16005206-8月-03备份集的关键字为1104。第二步:定义delete通道:RMANallocatechannelfordeletetypedisk;RMAN-03022:正在编译命令:allocateRMAN-03023:正在执行命令:allocateRMAN-08030:分配的通道:deleteRMAN-08500:通道delete:sid=19devtype=DISK第三步:删除backupset备份集RMANchangebackupset1104delete;RMAN-03
16、022:正在编译命令:changeRMAN-08073:已删除备份段RMAN-08517:备份段handle=D:ORACLEORA81DATABASE02EU4DMU_1_1recid=2stamp=501364447RMAN-03023:正在执行命令:partialresyncRMAN-08003:启动部分恢复目录的resyncRMAN-08005:完成部分resync注意:部分执行删除备份集、备份片或者维护恢复目录的命令,需要先指定通道,如:RMANallocatechannelfordeletetypedisk;RMANallocatechannelformaintenancetype
17、disk;.在非归档模式下备份数据库状态:恢复目录:打开目标数据库:例程启动或者数据库加载恢复目录数据库需要打开,目标数据库必须启动(或者加载)。因为目标数据库不在归档模式下,所以当进行备份恢复操作的时候数据库无法打开。不可以将表空间置于热备份模式上进行等同于文件系统级的拷贝,如果在非归档模式,数据库打开的状态下不能进行数据文件的备份。数据库完全备份RMANrun2#backupthecompletedatabasetodisk3allocatechanneldev1typedisk;4backup5full6tagfull_db_backup7format/oracle/backups/db
18、_t%t_s%s_p%p8(database);9releasechanneldev1;10行#2:表明该行为注释行(#是注释符)3&9:Seesection15-Channels通道定义Fullbackup(defaultiffullorincrementalnotspecified)完全备份模式(缺省模式)Meaningfulstring(=30chars)(备份集标识,listbackupsetofdatabase;备份表空间RMANrun2allocatechanneldev1typedisk;3backup4tagtbs_users_read_only5format/oracle/b
19、ackups/tbs_users_t%t_s%s6(tablespaceusers)7使用下列命令来显示恢复目录中该表的备份信息:RMANlistbackupsetoftablespaceusers;假设USERS表空间在备份后被置为READONLY表空间, 以后的全库备份就可以不用备份该表空间,为了达到这个目的,可以在以后的备份中指定skipreadonlyo注意,目标数据库不需要一定打开,只要加载就可以,因为表空间的信息存储在控制文件中。备份单独数据文件RMANrun2allocatechanneldevltypeSBT_TAPE;3backup4format%d_%u5(datafile
20、/oracle/dbs/sysbigdb.dbf);6releasechanneldev1;7行#2:使用MML(mediamanagerlayer)分配磁带驱动器,必须指定类型为SBT_TAPE;注意因为没有指定标识,所以标识为空;使用下面的命令显示恢复目录中备份的表空间:RMANlistbackupsetofdatafile1;备份数据文件RMANrun2allocatechanneldev1typeSBT_TAPE;3copydatafile/oracle/dbs/temp.dbfto/oracle/backups/temp.dbf;4releasechanneldev1;5使用下面的命
21、令显示恢复目录中的文件拷贝:RMANlistcopyofdatafile/oracle/dbs/temp.dbf;拷贝数据文件和备份数据文件是不一样的,数据文件拷贝是一个该文件的镜像。文件的备份产生一个备份集。备份控制文件RMANrun2allocatechanneldev1typeSBT_TAPE;3backup4formatcf_t%t_s%s_p%p5tagcf_monday_night6(currentcontrolfile);7releasechanneldev1;8注意:数据库完全备份将自动备份控制文件。.归档模式下的备份数据库状态:恢复目录:打开目标数据库:例程启动,数据库加载或
22、者打开备份操作使用的命令与非归档模式下基本一样。Backinguparchivedlogs 备份归档日志下面的脚本备份归档日志:RMANrun2allocatechanneldev1typedisk;3backup4format/oracle/backups/log_t%t_s%s_p%p5(archivelogall)6releasechanneldev1;7下面的脚本归档日志从#90to100:RMANrun2allocatechanneldev1typedisk;3backup4format/oracle/backups/log_t%t_s%s_p%p5(archivelogfromlo
23、gseq=90untillogseq=100thread1);6releasechanneldev1;7下面的脚本备份在24小时内产生的归档日志,在备份完成后会自动删除归档日志。如果备份失败,归档日志不会被删除。RMANrun2allocatechanneldevltypedisk;3backup4format/oracle/backups/log_t%t_s%s_p%p5(archivelogfromtimesysdate-1alldeleteinput);6releasechanneldev1;7使用下面的命令显示恢复目录中的归档日志:RMANlistbackupsetofarchivel
24、ogall;注意:RMAN找到归档日志后会备份指定日志,如果无法找到日志,它也不会返回错误信息。Backinguptheonlinelogs 备份联机日志联机日志不能用RMAN来备份,必须先将其归档。为了实现这点,必须在RMAN中执行如下SQL语句:RMANrun2allocatechanneldev1typedisk;3sqlaltersystemarchivelogcurrent;4backup5format/oracle/backups/log_t%t_s%s_p%p6(archivelogfromtimesysdate-1alldeleteinput);7releasechanneld
25、ev1;8上面的脚本可以在执行完一个完整的联机数据库备份后执行,确保所有的重做日志可以将数据库恢复到一个一致性的状态。注意:不可以标识归档日志备份集。.增量备份N级别增量备份备份从最近的N级别或者更小级别以来的所有更改过的数据块内容。 增量备份分为两种,一种是累积增量备份,一种是非累积增量备份。累积增量备份包括自最后一次在更低级别进行备份以来所有改动过的数据块。非累积增量备份包括自前一次在同级或者更低级别进行备份以来改动过的数据块。9.1.Level0-增量备份策略的基础Level0是增量备份策略的基础-thebasisoftheincrementalbackupstrategyRMANrun
26、2allocatechanneldev1typedisk;3backup4incrementallevel05filesperset46format/oracle/backups/sunday_level0_%t7(database);8releasechanneldev1;9Line#4:0级备份5:定义每个backupset的最大文件数使用LIST语句查看,数据库备份集的列表显示中,type将显示Incremental,LV列将显示0。9.2.使用增量备份的案例一个典型的增量备份案例如下:星期天晚上-level0backupperformed星期一晚上-level2backupperfor
27、med星期二晚上-level2backupperformed星期三晚上-level1backupperformed星期四晚上-level2backupperformed星期五晚上-level2backupperformed星期六晚上-level2backupperformed星期天晚上-level0backupperformed10.恢复恢复案例如下:Databaseopen,datafiledeleted 数据库打开时,文件被删除数据文件在数据库打开时被删除。有两种方法可以对打开的数据库进行恢复:还原数据文件或者表空间。下面两个实例显示了该方法:Datafilerecovery数据文件恢复R
28、MANrun2allocatechanneldev1typedisk;3sqlaltertablespaceusersofflineimmediate;4restoredatafile4;5recoverdatafile4;6sqlaltertablespaceusersonline;7releasechanneldev1;8Tablespacerecovery表空间恢复RMANrun2allocatechanneldev1typedisk;3sqlaltertablespaceusersofflineimmediate;4restoretablespaceusers;5recovertabl
29、espaceusers;6sqlaltertablespaceusersonline;7releasechanneldev1;8注意:如果还原系统表空间文件,数据库必须关闭,因为系统表空间不可以脱机。Completerestore(lostonlineredo)androllforward-databaseclosed 完全还原(丢失联机日志)并且前滚-数据库关闭RMANrun2allocatechanneldevltypedisk;3setuntillogseq=105thread=1;4restorecontrolfileto/oracle/dbs/ctrltargdb.ctl;5repl
30、icatecontrolfilefrom/oracle/dbs/ctrltargdb.ctl;6restoredatabase;7sqlalterdatabasemount;8recoverdatabase;9sqlalterdatabaseopenresetlogs;10releasechanneldev1;11Notes:setuntil命令指明恢复到指定的日志文件。这一点在数据文件恢复时很重要,否则RMAN将试图恢复最近的数据文件,该数据文件可能在指定的日志以前。replicatecontrolfile复制还原的控制文件到INIT.ORA指定的控制文件。如果数据库使用WITHRESETL
31、OGS打开,则需要使用RESETDATABASE命令注册改变后的数据库。 在使用RESETLOGS命令打开数据库后强烈建议做一个完全的数据库备份。还原数据文件的子集,完全恢复RMANrun2allocatechanneldev1typedisk;3sqlalterdatabasemount;4restoredatafile2;5restoredatafile3;6restorearchivelogall;7recoverdatabase;8sqlalterdatabaseopen;9releasechanneldev1;1011.脚本创建或者取代脚本:RMANcreatescriptalloc
32、_disk2#Allocatesonedisk3allocatechanneldev1typedisk;4setlimitchanneldev1kbytes2097150maxopenfiles32readrate200;5RMANreplacescriptrel_disk2#releasesdisk3releasechanneldev1;5RMANreplacescriptbackup_db_full2#Performsacompletebackup3executescriptalloc_disk;4backup5.6executescriptrel_disk;7前两个脚本分别用来分配和回收
33、通道。alloc_disk脚本还额外指定了备份片的最大兆字节数, 备份时可以同时打开的输入文件的最大数目,以及每秒钟读每个输入文件的数据缓冲区的最大数目。第三个脚本调用先前存储的两个脚本进行数据库备份。运行存储脚本的示范:RMANrun2executescriptbackup_db_full;3注意:存储的脚本必须在.execute;.命令中调用。CorruptiondetectionRMAN可以备份包含损坏数据块的数据文件,查询视图V$COPY_CORRUPTION可以获得有关坏数据的信息。通过设置setmaxcorrupt可以跳过指定个数的坏块来避免备份失败。RMANreplacescri
34、ptbackup_db_full2#Performsacompletebackup3executescriptalloc_disk;4setmaxcorruptfordatafile1to0;5backup6.7executescriptrel_disk;8上面的脚本maxcorruptfordatafile1to0设置为0,所以如果有错误数据块在数据文件1中发现,上面的脚本执行就会失败。通道一个通道是RMAN和目标数据库之间的一个连接,allocatechannel命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份或者恢复操作使用的I/O类型V$BACKCORRUPTION和
35、通道控制命令可以用来:控制RMAN使用的O/S资源影响并行度指定I/O带宽的限制值(设置limitreadrate参数)定义备份片大小的限制(设置limitkbytes)指定当前打开文件的限制值(设置limitmaxopenfiles)Report&listcommandsListlist命令查询恢复目录并且产生格式化的查询内容:RMANlistbackupsetofdatafile1;KeyFileTypeLVCompletion_timeCkpSCNCkpTime1651FullOct0311:2432022Oct0311:242081FullOct2414:2752059Oct2414:
36、262191FullOct2414:3152061Oct2414:31RMANlistbackupsetofarchivelogall;KeyThrdSeqCompletiontime179194Oct0311:26179195Oct0311:26ReportREPORT命令同样可以查询恢复目录, 但是REPORT命令语法可以构建获得更为有用的信息的指令,REPORT命令输出可以保存到消息日志文件中,但是必须在连接恢复目录时指定MSGLOG或者LOG选项。可以列出所有数据库中不能恢复的文件列表:RMANreportunrecoverabledatabase;显示全部数据文件:RMANreportschema;RMAN-03022:正在编译命令:report数据库模式报表文件千字节表空间RBsegs名称1121472SYSTEMYESD:ORACLEORADATAHISSYSTEM01.DBF2327680RBSYESD:ORACLEORADATAHISRBS01.DBF3110592USERSNOD:ORACLEORADATAHISUSERS01.DBF473728TEMPNOD:ORACLEORADATAHISTEMP01.DBF512288TOOLSNOD:ORACLEORADATAHISTOOLS01.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- HY/T 0460.3-2024海岸带生态系统现状调查与评估技术导则第3部分:红树林
- 2025年艺术创作与理论评价考试题及答案
- x射线考试题及答案
- 武汉合唱团面试题及答案
- 网络工程师成功案例试题及答案
- 西方政治中的社会责任探讨试题及答案
- 机电工程2025年创新思维试题及答案
- 软件设计师考试心理素质提升方法及试题与答案
- 教育公平实证研究与政策建议试题及答案
- 反腐败斗争的政治环境与动力分析试题及答案
- 国能集团工会工作报告
- 河南大河网数字科技有限公司招聘笔试题库2025
- 补缴社保员工协议书
- 水电项目实施中的环境保护措施试题及答案
- 2025标准劳动合同范本及模板
- 2025届广东省佛山市顺德区龙江镇八下物理期末统考试题含解析
- 自动化办公试题及答案
- GB 7718-2025食品安全国家标准预包装食品标签通则
- 2025中考语文常考作文押题(10大主题+10篇范文)
- 安全工程安全系统工程课程设计
- 机械设计外文文献翻译、中英文翻译、外文翻译
评论
0/150
提交评论