您的位置:首页 > 其它

官方文档 恢复备份指南二 Getting Started with RMAN

2014-06-26 22:05 537 查看
本章对RMAN进行基本的熟悉和了解

1.OverviewoftheRMANEnvironment

RMAN运行时需要的最小环境:
targetdatabase:RMAN用target命令连接的数据库,在该数据库上执行备份和恢复操作,并备份信息(RMANreposity资源库)记录在target数据库的控制文件中.
RMANclient:rman客户端,即RMAN可执行程序.在$ORACLE_HOME/bin下

RMAN运行时可能需要的其它环境:
fastrecoveryarea:默认的RMAN备份保存地点,位于磁盘上,由DB_RECOVERY_FILE_DEST(位置)和DB_RECOVERY_FILE_DEST_SIZE(大小)参数一起决定.

mediamanager:介质管理器.与RMAN进行交互的程序(如磁带驱动器),实现顺序读写、设置标签、加载数据等,一般又叫SBT(SYSTEMBACKUPTOTAPE),就是磁驱
recoverycatalog:恢复目录,用来保存一个或多个target数据库的备份信息.如果target数据库的控制文件丢失,可以从catalog中读备份信息,从而进行数据库的恢复。控制文件中的备份信息会过期,但是catalog中的不会过期,除非手动删除

2.StartingRMANandConnectingtoaDatabase

RMAN连接数据库也需要用户名和密码,与SQLPLUS一样.需要注意的是,用RMAN连接target数据时,需要SYSDBAS权限,并且SYSDBA不写在命令上。如:

%rman
RMAN>CONNECTTARGETSYS@prod





也可以用操作系统验证登录:

%rman
RMAN>CONNECTTARGET/

connectedtotargetdatabase:PROD(DBID=39525561)

3.ShowingtheDefaultRMANConfiguration(RMAN的默认配置)
RMAN预先做了一些配置。showall可以显示配置
RMAN>showall;

4.BackingUpaDatabase(备份数据库)
用backup命令备份数据库,如果不手动指定设备和保存位置,会用配置好的设备来备份和保存备份文件。备份文件默认放在磁盘上的fastrecoveryarea.如果指定了format,则保存到format的位置,并且会自动给备份文件命名.
默认情况下,生成的文件是备份集,而不是copy(镜像).备份集一个或多个备份片(pieces),备份片只能由RMAN读定,其它程序无法访问.备份集包括了所有使用过的块(不包括未使用的块),备份集可以保存磁盘或磁带上
backupascopy备份生生成一个镜像,镜像是数据文件的复制,相当于操作系统的cp命令.注意:用操作系统cp命令复制数据文件是无效的,因为文件中的数据块是不一致的,用RMAN进行镜像备份是有效的,因为RMAN可以读取镜像和归档来保证数据块的一致性.

5.BackingUpaDatabaseinARCHIVELOGMode备份归档数据库
数据库运行在归档模式下,可以在数据库打开时备份(在线备份),如果运行在非归档模式下,只能在关闭后备份或才用EXPEXPDP进行逻辑备份.在线的备份称为不一致的备份,在进行恢复时需要使用日志文件来保证数据文件的一致性.可以把归档日志也备份下来:

RMAN>BACKUPDATABASEPLUSARCHIVELOG;

6.BackingUpaDatabaseinNOARCHIVELOGMode备份非归档的数据
在非归档下备份数据库,数据库必须先一致的关闭(shutdownnormalshutdowntransactionshutdonwimmediate),然后再启动到mount,再用RMAN备份,只有这样样,备份集才是一致的有效的.
过程如下:

RMAN>SHUTDOWNIMMEDIATE;
RMAN>STARTUPFORCEDBA;
RMAN>SHUTDOWNIMMEDIATE;
RMAN>STARTUPMOUNT;
RMAN>BACKUPDATABASE;或者RMAN>BACKUPASCOPYDATABASE;
RMAN>ALTERDATABASEOPEN;

7.TypicalBackupOptions典型的备份操作
RMAN支持多种备份选项,如:

OptionDescriptionExample
FORMAT


Specifiesalocationandnameforbackuppiecesandcopies.Youmustusesubstitutionvariablestogenerateuniquefilenames.

Themostcommonsubstitutionvariableis
%U
,whichgeneratesauniquename.Othersinclude
%d
fortheDB_NAME,
%t
forthebackupsettimestamp,
%s
forthebackupsetnumber,and
%p
forthebackuppiecenumber.

指定备份集搁置和名称格式.默认的名称格式是%U.%d表示DB_NAME,%t表示备份时的时间戳,%s设置备份集序号,p%设置备份片序号

BACKUP
FORMAT'AL_%d/%t/%s/%p'
ARCHIVELOGLIKE'%arc_dest%';

TAG


Specifiesauser-definedstringasalabelforthebackup.Ifyoudonotspecifyatag,thenRMANassignsadefaulttagwiththedateandtime.TagsarealwaysstoredintheRMANrepositoryinuppercase.

为本次备份设置一个别名,以便恢复时使用

BACKUP
TAG'weekly_full_db_bkup'
DATABASEMAXSETSIZE10M;

8.MakingIncrementalBackups增量备份
增量备份是指在上一次完全备份的基础上只备份修改过的块,通常比完全备份要块.如果没有完全备份,首次执行增量备份会进行完全备份作为0级增量备份.
增量备份分为两种:差异增量备份和累积增量备份.区别是,差异增量备份会备份同级别或以下级别备份以来修改的块,而累积备份只备份自身级别以下级别的备份.在执行恢复时,RMAN以上次的0级别和完全备份为起点来执行恢复.
执行增量备份:

BACKUPINCREMENTALLEVEL0DATABASE;
BACKUPINCREMENTALLEVEL1CUMULATIVEDATABASE;
BACKUPINCREMENTALLEVEL1DATABASE;

9.MakingIncrementallyUpdatedBackups增量更新备份
增量更新备份:以镜像备份为基础,将修改过的块合并到原来的镜像里做为一个新的镜像使用.过程如下
1.首先执行镜像备份,指定一个tag
2.执行1级的增量备份,指定上镜像同样的tag.BACKUPFORRECOVEROFCOPY只备份上次镜像以来修改的块.
增量更新备份包含了镜像备份以来修改的块,所以恢复的时候用的更快.
增量更新备份选项:

BACKUPOptionDescriptionExample
FORRECOVEROFCOPYWITHTAG
'
tag_name
'


Use
TAG
toidentifythetagofthedatafilecopyservingasbasisforthebackupstrategy.RMANautomaticallyassignsthesametagtoeverylevel1backupofthiscopy.

Ifnolevel0datafilecopywiththespecifiedtagexistsineitherthecurrentorparentdatabaseincarnation,thenRMANcreatesalevel0datafilecopywiththespecifiedtag.

指定tag,然后RMAN会自动合并镜像.如果没有执行过镜像备份,则RMAN创建镜像备份

BACKUP
INCREMENTALLEVEL1
FORRECOVEROFCOPY
WITHTAG'incr_update'
DATABASE;

FORRECOVEROFCOPYDATAFILECOPYFORMAT'
format
'


SpecifieswhereRMANcreatesthedatafilecopyifacopydoesnotexist.Ifyouaddanewdatafiletothedatabase,thenyoudonotneedtochangeyourscript,becauseRMANautomaticallycreatesthelevel0copyrequiredbytheincrementalbackuproutine.

备份数据文件镜像.

BACKUP
INCREMENTALLEVEL1
FORRECOVEROFCOPY
DATAFILECOPYFORMAT
'/disk2/df1.cpy'
DATABASE;

如:

RECOVERCOPYOFDATABASE
WITHTAG'incr_update';
BACKUP
INCREMENTALLEVEL1
FORRECOVEROFCOPYWITHTAG'incr_update'
DATABASE;

10.ValidatingDatabaseFilesandBackups验证数据文件和备份
VALIDATE
验证数据文件是否存在,是否有错误.CHECKLOGICAL命令验证数据文件是否有逻辑错误.
物理验证和逻辑验证数据文件和归档日志:

BACKUPVALIDATECHECKLOGICAL
DATABASEARCHIVELOGALL;

验证数据块:

VALIDATEDATAFILE4BLOCK10TO13;

验证备份集:

VALIDATEBACKUPSET3;

11.ScriptingRMANOperationsRMAN脚本
可以把RMAN命令保存在文本中执行.如:

#my_command_file.txt
CONNECTTARGET/
BACKUPDATABASEPLUSARCHIVELOG;
LISTBACKUP;
EXIT;

调用

%rman
RMAN>@/my_dir/my_command_file.txt#runsspecifiedcommandfile
或者
%rman@/my_dir/my_command_file.txt

12.ReportingonRMANOperationsRMAN报告
list和report命令可以显示备份相关信息,showall显示RMAN配置
1)list命令
listbackup和listcopy

listbackup:

OptionExampleExplanation
BY
BACKUP


LIST
BACKUP
OF
DATABASE
BY
BACKUP


Organizestheoutputbybackupset.Thisisthedefaultmodeofpresentation.

BY
FILE


LIST
BACKUP
BY
FILE


Liststhebackupsaccordingtowhichfilewasbackedup.

SUMMARY


LIST
BACKUP
SUMMARY


Displayssummaryoutput.

其它list选项:

OptionExampleExplanation
EXPIRED


LIST
EXPIRED
COPY


显示存在不RMAN资源库但不在磁盘上的备份


ListsbackupsthatarerecordedintheRMANrepositorybutthatwerenotpresentattheexpectedlocationondiskortapeduringthelast
CROSSCHECK
command.Anexpiredbackupmayhavebeendeletedbyanoperatingsystemutility.

RECOVERABLE


LIST
BACKUPRECOVERABLE


显示可用的备份或镜像


Listsdatafilebackupsorcopiesthathavestatus
AVAILABLE
intheRMANrepositoryandthatcanberestoredandrecovered.

如:

LISTBACKUPOFDATABASE;
LISTCOPYOFDATAFILE1,2;
LISTBACKUPOFARCHIVELOGFROMSEQUENCE10;
LISTBACKUPSETOFDATAFILE1;

2)report
report选项:

OptionExampleExplanation
NEED
BACKUP


REPORT
NEED
BACKUPDATABASE


在当前的保留策略下需要备份的文件

Showswhichfilesneedbackingupundercurrentretentionpolicy.Useoptional
REDUNDANCY
and
RECOVERY
WINDOW
parameterstospecifydifferentcriteria.

OBSOLETE


REPORT
OBSOLETE


报告过期的备份

Listsbackupsthatareobsoleteundertheconfiguredbackupretentionpolicy.Usetheoptional
REDUNDANCY
and
RECOVERY
WINDOW
parameterstooverridethedefault.

SCHEMA


REPORT
SCHEMA


显示表空间和数据文件


Reportsthetablespacesanddatafilesinthedatabaseatthecurrenttime(default)oradifferenttime.

UNRECOVERABLE


REPORT
UNRECOVERABLE


显示无法恢复的数据文件


Listsalldatafilesforwhichanunrecoverableoperationhasbeenperformedagainstanobjectinthedatafilesincethelastbackupofthedatafile.

12.MaintainingRMANBackups维护RMAN备份
用来维护RMAN资源库的命令包括:
CATALOG
,
CHANGE
,
CROSSCHECK
,
DELETE
.
1)Cross-checkingBackups用crosscheck来检测备份
crosscheck用来检查备份集或状态是否有效并同步到控制文件.应该在删除备份集或镜像前做crosschek.备份在磁盘时,crosscheck检查文件头是否有效,有磁带时,会查询资源库.
检测备份和镜像:

CROSSCHECKBACKUP;
CROSSCHECKCOPY;

2)DeletingObsoleteBackups删除过期备份

delete命令用来从磁盘和磁带删除过期的备份和镜像,并修改控制文件和catalog里的备份信息.在交互式下,delete会先显示需要删除的文件,在用户确认后删除.如:

RMAN>deleteobsolete;

RMAN保留策略将应用于该命令
将RMAN保留策略设置为冗余1
分配的通道:ORA_DISK_1
通道ORA_DISK_1:SID=139设备类型=DISK
删除以下已废弃的备份和副本:
类型关键字完成时间文件名/句柄
----------------------------------------------------------------
存档日志512-5月-14D:\APP\WJ\PRODUCT\11.1.0\DB_1\RDBMS\ARC00059_0817241642.001
存档日志712-5月-14D:\APP\WJ\PRODUCT\11.1.0\DB_1\RDBMS\ARC00060_0817241642.001
存档日志912-5月-14D:\APP\WJ\PRODUCT\11.1.0\DB_1\RDBMS\ARC00061_0817241642.001
存档日志1112-6月-14D:\APP\WJ\FLASH_RECOVERY_AREA\ARC00075_0817241642.001
存档日志1213-6月-14D:\APP\WJ\FLASH_RECOVERY_AREA\ARC00076_0817241642.001
存档日志1313-6月-14D:\APP\WJ\FLASH_RECOVERY_AREA\ARC00077_0817241642.001
存档日志1420-6月-14D:\APP\WJ\FLASH_RECOVERY_AREA\ARC00078_0817241642.001
存档日志1523-6月-14D:\APP\WJ\FLASH_RECOVERY_AREA\ARC00079_0817241642.001

是否确定要删除以上对象(输入YES或NO)?no

13.DiagnosingandRepairingFailureswithDataRecoveryAdvisor数据恢复顾问
DRA可以检测永久性的错误,提供修复建议或者自动执行修复.
failure指被HealthMonitor检测出的数据块错误.每个错误有错误优先级和错误状态.如
CRITICAL
,
HIGH
,or
LOW
OPEN
or
CLOSED.

listfailure会显示错误,advisorfailure提供错误修改建议,reparitfailure尝试修改错误.
如:

RMAN>LISTFAILURE;

ListofDatabaseFailures
=========================

FailureIDPriorityStatusTimeDetectedSummary
-----------------------------------------------
142HIGHOPEN23-APR-07Oneormorenon-systemdatafilesaremissing
101HIGHOPEN23-APR-07Datafile1:'/disk1/oradata/prod/system01.dbf'
containsoneormorecorruptblocks

RMAN>
ADVISEFAILURE;

ListofDatabaseFailures
=========================

FailureIDPriorityStatusTimeDetectedSummary
-----------------------------------------------
142HIGHOPEN23-APR-07Oneormorenon-systemdatafilesaremissing
101HIGHOPEN23-APR-07Datafile1:'/disk1/oradata/prod/system01.dbf'
containsoneormorecorruptblocks

analyzingautomaticrepairoptions;thismaytakesometime
usingchannelORA_DISK_1
analyzingautomaticrepairoptionscomplete

MandatoryManualActions
========================
nomanualactionsavailable

OptionalManualActions
=======================
1.Iffile/disk1/oradata/prod/users01.dbfwasunintentionallyrenamedormoved,restoreit

AutomatedRepairOptions
========================
OptionRepairDescription
------------------------
1Restoreandrecoverdatafile28;Performblockmediarecoveryof
block56416infile1
Strategy:Therepairincludescompletemediarecoverywithnodataloss
Repairscript:/disk1/oracle/log/diag/rdbms/prod/prod/hm/reco_660500184.hm

首先尝试人工修复(在某些情况下人工修复比自动修复要快,如控制文件丢失),在人工修复不能完成的情况下使用自动修复
repair尝试修复错误,会将出现的错误一起修复.

RMAN>REPAIRFAILURE;

在执行修复前,会进行提示,确认后才会执行.在修复完成后,DRA会把已经修复的错误从当前的错误列表删除.

14.RewindingaDatabasewithFlashbackDatabase
用flashback将数据库闪回到某个点,不像介质恢复,不需要还原数据文件,速度很快.
在使用flashbackdatabase前,必须开启闪回日志(flashbacklog).闪回操作使用闪回日志把数据块的更新还原,不能用闪回来做介质恢复和数据文件丢失.
数据库必须在mount下进行闪回,
如下在RMAN中使用闪回:

SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
FLASHBACKDATABASETOSCN861150;

FLASHBACKDATABASE
TORESTOREPOINTBEFORE_CHANGES;

FLASHBACKDATABASE
TOTIMESTAMPTO_DATE(04-DEC-200903:30:00','DD-MON-YYYYHH24:MI:SS');

SQL"ALTERDATABASEOPENREADONLY";

SHUTDOWNIMMEDIATE;
STARTUPMOUNT;
ALTERDATABASEOPENRESETLOGS;



15.RestoringandRecoveringDatabaseFiles
1)还原和恢复数据库前需要做的准备.显示可以还原的最小SCN
RESTORE...PREVIEW文件命令用来显示可以进行恢复的最小SCN号,在执行这个命令时,RMAN只是读元数据并且备份的文件.

RMAN>RESTOREDATABASEPREVIEWSUMMARY;

Startingrestoreat21-MAY-07
allocatedchannel:ORA_DISK_1
channelORA_DISK_1:SID=80devicetype=DISK

ListofBackups
===============
KeyTYLVSDeviceTypeCompletionTime#Pieces#CopiesCompressedTag
-----------------------------------------------------------------
11BFADISK18-MAY-0712NOTAG20070518T181114
13BFADISK18-MAY-0712NOTAG20070518T181114
usingchannelORA_DISK_1

ListofArchivedLogCopiesfordatabasewithdb_unique_namePROD
=====================================================================

KeyThrdSeqSLowTime
----------------------------
47118A18-MAY-07
Name:/disk1/oracle/dbs/db1r_60ffa882_1_18_0622902157.arc

MediarecoverystartSCNis586534
RecoverymustbedonebeyondSCN587194tocleardatafilefuzziness
validationsucceededforbackuppiece
Finishedrestoreat21-MAY-07

2)RecoveringtheWholeDatabase恢复整个数据库
使用restoredatabase和recoverdatabase来还原和恢复数据.前提是必须要有可用的数据库备份.如果不想把文件还原在原来的位置,使用setnewname命令来指定新的位置

启动数据库到mount,如果无法启动到mount,执行
RMAN>STARTUPFORCEMOUNT;
RMAN>RESTOREDATABASE;
RMAN>RECOVERDATABASE;
RMAN>ALTERDATABASEOPEN;

3)RecoveringTablespaces恢复表空间
RESTORE
TABLESPACE
RECOVER
TABLESPACE
用来还原和恢复单个表空间,可以在数据库打开的情况下执行.首先,要把表空间脱机,然后执行restore再执行recover,再把表空间联机online
如果需要把数据文件还原到新的位置,设置setnewname,然后执行SWITCHDATAFILEALL,情相当于ALTERDATABASERENAMEFILE命令来更新控制文件信息.
注意:在执行表空间恢复时,不能将表空间设置为备份模式.

RMAN>SQL'ALTERTABLESPACEusersOFFLINE';
RUN
{
SETNEWNAMEFORDATAFILE'/disk1/oradata/prod/users01.dbf'
TO'/disk2/users01.dbf';
RESTORETABLESPACEusers;
SWITCHDATAFILEALL;#updatecontrolfilewithnewfilenames
RECOVERTABLESPACEusers;
}
RMAN>SQL'ALTERTABLESPACEusersONLINE';

3)RecoveringIndividualDataBlocks
用RMAN执行数据文件或备份后验证后,错误的数据块会记录在V$DATABASE_BLOCK_CORRUPTION中,错误信息会记录在alert,trace文件中.

RMAN>RECOVERCORRUPTIONLIST;--修复所有错误块
RMAN>RECOVERDATAFILE1BLOCK233,235DATAFILE2BLOCK100TO200;修复指定的错误块

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
章节导航