rman备份恢复手册Word文档下载推荐.docx
《rman备份恢复手册Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《rman备份恢复手册Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
Rman共分以下几个部分:
rman引擎、target数据库、catalog数据库、媒体管理software。
Rman引擎起源于oracle8,位于$ORACLE_HOME/bin下,通过运行rman命令启动它来执行备份。
Target数据库,是rman将要备份和恢复的数据库。
Catalog数据库,用来保存备份和恢复信息的数据库,不建议建立在target数据库上。
媒体管理软件是第三方软件,如果需要向磁带的话,必须配置媒体管理软件。
其中rman引擎和target数据库是必须的。
由于rman在oracle9i后可以用target数据库的控制文件去存储元数据,因此catalog数据库是可选的。
而媒体管理器完成将数据写入磁盘或者磁带机。
3.启动运行rman
3.1.运行要求
1、资源要求
要求有更多的内存分配,要求process的数目。
2、环境变量要求
要求基本的环境变量:
oracle_sid,oracle_home、oracle_base、nls_lang、nls_date_format、path
3、权限要求
要求Sysdba权限,如果是在本地登陆,可以采用os认证,远程需要密码认证。
4、版本要求
Rman引擎必须和目标数据库版本一致。
如果使用了catalog,那么
创建catalog目录的脚本版本必须等于大于目标数据库的版本;
创建catalog目录的脚本版本必须等于大于catalog所在数据库的版本。
3.2.启动方式
Oracle9i不要求使用catalog,因此可以以nocatalog方式启动。
$ORACLE_HOME/bin/rmannocatalog
3.3.命令运行方式
1、单个运行
Backupdatabase;
2、运行一个数据块
Run{
Copydatafile10to‘/opt/oradata/rmanback/’;
};
3、运行脚本
Rmantargetnocatalog/
@rmanback
或者run{@rmanback};
或者运行存储在恢复目录的脚本
Run{executescriptbackup_db};
4、Sh方式
可以采用sh方式调用,此时需要注意环境变量
4.Rman的配置
在rman中有一个概念是通道,主要完成rman引擎产生的进程和备份媒体之间的io读写的途径。
如果要运行rman,必须对通道作配置。
Rman默认提供一个通道为备份恢复服务。
这个通道就是自动通道,存在默认的配置,但是不会符合你的备份策略,因此也需要要对它进行配置。
4.1.备份冗余策略
备份冗余策略是指备份时保留什么样的备份的策略,这里有两个,一个是按时间,一个是按照有效备份的个数。
configureretentionpolicytoredundancy3;
configureretentionpolicytorecoverywindowof7days;
configureretentionpolicytonone;
4.2.通道配置
配置自动通道的设备类型
configuredefaultdevicetypetodisk;
指定通道的并行策略
configuredevicetypediskparallelism1;
指定通道的类型,备份目录。
configurechanneldevicetypediskformat'
/opt/oradata/rmanbak/%U'
;
指定通道备份的冗余策略
configuredatafilebackupcopiesfordevicetypediskto1;
指定规定日志备份的冗余策略
configurearchivelogbackupcopiesfordevicetypediskto1;
控制文件备份策略
configurecontrolfileautobackupon;
控制文件备份设备类型格式,以及命名格式。
configurecontrolfileautobackupformatfordevicetypediskto'
%F'
configuresnapshotcontrolfilenameto'
/opt/oradata/rmanbak/snapcon_U01.f'
备份优化策略
configurebackupoptimizationon;
限制通道的大小
setlimitchannelt2kbytes2000000;
4.3.备份命令
备份数据库
对数据库作多个备份
backupdatabasecopies2;
限制备份的数据文件的大小
backupdatabasemaxsetsize2g;
备份控制文件
backupcurrentcontrolfile;
备份归档日志
backuparchivelogall;
备份归档日志后删除已经备份的归档日志
backuparchivelogalldeleteinput;
标志为weeklyfull的备份集的备份
backuptag'
weekly_full'
database;
检测数据库中能够被备份的逻辑和物理的数据文件的位置。
backupvalidatedatabase;
backupvalidatearchivelogall;
4.4.检查备份
检查数据库能够被备份的数据文件
reportschema;
reportneedbackup;
过期的备份、数据文件或者拷贝
reportobsolete;
不能获取状态的数据文件
reportunrecoverable;
检查硬盘上备份是否有效,是否过期
crosscheckbackup;
crosscheckarchivelogall;
4.5.删除备份
删除备份片1
deletebackuppiece1;
删除过期备份,删除过程中不提示
deletenopromptexpiredbackup;
删除过期备份
deleteexpiredbackup;
4.6.列出所有的备份
listbackup;
listarchivelogall;
4.7.备份的要求
必须设置归档模式
数据库置于mount,执行,启用归档日志
alterdatabasearchivelog;
5.rman恢复
5.1.模拟非系统数据文件丢失
当非系统数据文件损坏时,有两种恢复方式,一种是拥有数据文件备份、归档日志备份以及其他的相关文件,此时可以做到的是完全的恢复;
一种是有数据文件备份,但是归档日志不全。
5.1.1.拥有全部备份的恢复
在这种情况下,系统拥有全部的数据文件备份,归档日志备份以及其他相关文件,可以做到完全恢复。
下面模拟非系统文件的恢复。
$sqlplusrmantest/rmantest
SQL*Plus:
Release9.2.0.1.0-ProductiononMonMar2012:
45:
482006
Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.
Connectedto:
Oracle9iEnterpriseEditionRelease9.2.0.1.0-64bitProduction
WiththePartitioning,OLAPandOracleDataMiningoptions
JServerRelease9.2.0.1.0-Production
SQL>
selectcount(*)fromzxy;
COUNT(*)
----------
45056
!
$mvtools_1.dbftools_1.dbf.bak
$exit
createtabletestasselect*fromzxy;
createtabletestasselect*fromzxy
*
ERRORatline1:
ORA-01116:
errorinopeningdatabasefile4
ORA-01110:
datafile4:
'
/opt/oradata/opnview/tools_1.dbf'
ORA-27041:
unabletoopenfile
HP-UXError:
2:
Nosuchfileordirectory
Additionalinformation:
3
conn/assysdba
alterdatabasedatafile4offline;
Databasealtered.
exit
DisconnectedfromOracle9iEnterpriseEditionRelease9.2.0.1.0-64bitProductn
$rmannocatalogtarget/
RecoveryManager:
Release9.2.0.1.0-64bitProduction
Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.
connectedtotargetdatabase:
OPENVIEW(DBID=2554481560)
usingtargetdatabasecontrolfileinsteadofrecoverycatalog
RMAN>
restoredatafile4;
Startingrestoreat20-MAR-06
allocatedchannel:
ORA_DISK_1
channelORA_DISK_1:
sid=13devtype=DISK
startingdatafilebackupsetrestore
specifyingdatafile(s)torestorefrombackupset
restoringdatafile00004to/opt/oradata/opnview/tools_1.dbf
restoredbackuppiece1
piecehandle=/opt/oradata/rmanbak/0ohee5gf_1_1tag=TAG20060320T101647params=NUL
restorecomplete
Finishedrestoreat20-MAR-06
recoverdatafile4;
Startingrecoverat20-MAR-06
usingchannelORA_DISK_1
startingmediarecovery
mediarecoverycomplete
Finishedrecoverat20-MAR-06
RecoveryManagercomplete.
$sqlplus"
/assysdba"
Release9.2.0.1.0-ProductiononMonMar2013:
23:
302006
alterdatabasedatafile4online;
connectrmantest/rmantest
Connected.
Tablecreated.
45066
总结:
非系统数据文件丢失,整个恢复的过程数据库除了丢失的表空间,其他的均处于可用状态。
在恢复时,需要将坏掉的数据文件offline,然后恢复,完成后需要再online.
5.1.2.坏掉某个数据块的恢复
一般数据文件有问题,都可能是数据块出现了错误,在这种情况下,可以先使用dbv来检查数据文件。
可以通过dbfsize来检查数据文件的block大小。
createtabletestasselect*fromv$session;
createtabletestasselect*fromv$session
*
ORA-01658:
unabletocreateINITIALextentforsegmentintablespaceTOOLS
connect/assysdba
使用dbv工具检测数据文件,发现有一堆的错误。
然后使用rman恢复。
archivelogthread1sequence307isalreadyondiskasfile/opt/oracle/admin/C
archivelogthread1sequence308isalreadyondiskasfile/opt/oracle/admin/C
archivelogthread1sequence309isalreadyondiskasfile/opt/oracle/admin/C
startingarchivelogrestoretodefaultdestination
restoringarchivelog
archivelogthread=1sequence=306
piecehandle=/opt/oradata/rmanbak/0vhee66r_1_1tag=TAG20060320T102843params=NUL
archivelogfilename=/opt/oracle/admin/openview/arch/T0001S0000000306.ARCthrea6
archivelogfilename=/opt/oracle/admin/openview/arch/T0001S0000000307.ARCthrea7
将数据文件online
53:
032006
5.2.模拟回滚段损坏
当系统使用的是回滚段,而不是undo时,当回滚段出现异常时,系统不能写入数据,此时需要恢复回滚段。
恢复回滚段是,系统必须处于mount状态。
下面我们将回滚段所在的表空间RBS1_1.dbf更名
$mvRBS1_1.dbfRBS1_1.dbf.bak
insertintozxyselect*fromzxy;
368rowscreated.
/
insertintozxyselect*fromzxy
errorinopeningdatabasefile3
datafile3:
/opt/oradata/opnview/RBS1_1.dbf'
Release9.2.0.1.0-ProductiononWedMar2213:
30:
242006
shutdownimmediate
ORA-01089:
immediateshutdowninprogress-nooperationsarepermitted
shutdownabort
ORACLEinstanceshutdown.
startupmount
ORACLEinstancestarted
开始用rman恢复
$rmannocatalogtar