RMAN备份与恢复文档格式.docx
- 文档编号:17889308
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:14
- 大小:22.19KB
RMAN备份与恢复文档格式.docx
《RMAN备份与恢复文档格式.docx》由会员分享,可在线阅读,更多相关《RMAN备份与恢复文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
ListofBackupSets
===================
BSKeyTypeLVSizeDeviceTypeElapsedTimeCompletionTime
-------------------------------------------------------------
1Full6.80MDISK00:
00:
0206-DEC-08
BPKey:
1Status:
AVAILABLECompressed:
NOTag:
TAG20081206T201041
PieceName:
/home/oracle/flash_recovery_area/ORA10G/backupset/2008_12_06/o1_mf_ncsnf_TAG20081206T201041_4mntz78s_.bkp
ControlFileIncluded:
CkpSCN:
782019Ckptime:
06-DEC-08
SPFILEIncluded:
Modificationtime:
BS(backupset),piece是一个文件,一个BS包含多个piece.
3.rman中缺省的参数,可以通过showall;
来进行查看(RMANconfigurationparameters),我们在使用backupdatabase命令中,可以把这些defaultvalue用固定的值来进行替代.
4.我们可以把备份的文件才备份的目录中拷贝到磁带上,然后删除备份目录下面的备份文件,如果下次需要恢复的话,只要把文件重新拷回到用来的备份目录就可以了
5.查看controlfile文件中的备份信息(因为我们做的备份是在nocatalog模式下),controlfile在/u01/oracle/oradata/ora10g目录下,由于controlfile是个二进制文件,要查看controlfile文件中的内容,用stringscontrol03.ctl,发现control03.ctl中有rman备份的信息了
====================0级增量备份===============
概念:
全备份和0级增量备份。
全备份和0级增量备份几乎是一样的。
唯一的区别,0级增量备份能作为增量备份的基础,而全备份不能作为增量备份的基础。
其它方面完全一致
1.backupincrementallevel=0(leve0)database;
(增量为0的备份)
2.backupincrementallevel1(level=1)database;
(增量为1的备份)
在上面的备份中,我们备份了datafile,controlfile和parameterfile.没有备份的文件有归档日志,重做日志和口令文件没有备份.口令文件不需要备份,我们用orapw来创建一个
新的口令文件.rman在nocatalog模式下,不能够对redologfile进行备份
===================备份archivelog在nocatalog模式下=================
命令:
backupdatabaseplusarchivelogdeleteinput(deleteinput的意思在备份完成后,删除archivelog文件,这个选项可要可不要,这个命令也可以用backupincrementallevel=0(1,2...)来进行备份)
=======================备份表空间====================
backuptablespacetablespacename
如果我们不知道tablespace的名字,在rman中,可要通过reportschema命令,来查看表空间的名字
MAN>
reportschema;
Reportofdatabaseschema
ListofPermanentDatafiles
===========================
FileSize(MB)TablespaceRBsegsDatafileName
---------------------------------------------------------------
1480SYSTEM***/home/oracle/oradata/ora10g/system01.dbf
225UNDOTBS1***/home/oracle/oradata/ora10g/undotbs01.dbf
3250SYSAUX***/home/oracle/oradata/ora10g/sysaux01.dbf
45USERS***/home/oracle/oradata/ora10g/users01.dbf
5200PERFSTAT***/home/oracle/oradata/ora10g/perfstat.dbf
ListofTemporaryFiles
=======================
FileSize(MB)TablespaceMaxsize(MB)TempfileName
---------------------------------------------------------------
120TEMP32767/home/oracle/oradata/ora10g/temp01.dbf
========================备份控制文件====================
backupcurrentcontrolfile
backupdatabaseincludecurrentcontrolfile
========================备份镜像========================
在rman的备份中有两种方式:
备份集(backupset)和备份镜像(imagecopies).镜像备份主要是文件的拷贝:
copydatafile...to...
我们在rman>
reportschema;
rman>
copydatafile5to'
/u01/rmanbak/tbso1bak.dbf'
;
(copy5对应的schme:
perfstat.dbf)
它会把tbs作为一个拷贝。
我们用listbackupset来看,不能够查看我们刚备份的tbs01bak.dbf'
因为它不是backupset.我们用listcopy就能够查看我们刚才刚刚备份的文件
=======================单命令与批命令=================
单命令:
批命令:
run{
2>
allocatechannelcha1typedisk;
3>
backup
4>
format'
/u01/rmanbak/full_%t'
5>
tagfull-backup//标签可以顺便起,没关系
6>
database;
7>
releasechannelcha1;
8>
}
这个run中有3条命令,分别用分号来进行分割.
format:
%c:
备份片的拷贝数(从1开始编号);
%d:
数据库名称;
%D:
位于该月中的天数(DD);
%M:
位于该年中的月份(MM);
%F:
一个基于DBID唯一的名称,这个格式的形式为c-xxx-YYYYMMDD-QQ,其中xxx位该数据库的DBID,YYYYMMDD为日期,QQ是一个1-256的序列;
%n:
数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8;
%u:
是一个由备份集编号和建立时间压缩后组成的8字符名称。
利用%u可以为每个备份集产生一个唯一的名称;
%p:
表示备份集中的备份片的编号,从1开始编号;
%U:
是%u_%p_%c的简写形式,利用它可以为每一个备份片段(既磁盘文件)生成一个唯一的名称,这是最常用的命名方式;
%t:
备份集时间戳;
%T:
年月日格式(YYYYMMDD);
channel的概念:
一个channel是rman于目标数据库之间的一个连接,"
allocatechannel"
命令在目标数据库启动一个服务器进程,同时必须定义服务器进程执行备份和恢复操作使
用的I/O类型
通道控制命令可以用来:
控制rman使用的OS资源
影响并行度
指定I/O带宽的限制值(设置limitreadrate参数)
指定备份片大小的限制(设置limitkbytes)
指定当前打开文件的限制值(设置limitmaxopenfiles)
=================================RMAN一周典型备份方案============================
1.星期天晚上-level0backupperformed(全备份)
2.星期一晚上-level2backupperformed
3.星期二晚上-level2backupperformed
4.星期三晚上-level1backupperformed
5.星期四晚上-level2backupperformed
6.星期五晚上-level2backupperformed
7.星期六晚上-level2backupperformed
如果星期二需要恢复的话,只需要1+2,
如果星期四需要恢复的话,只需要1+4,
如果星期五需要恢复的话,只需要1+4+5,
如果星期六需要恢复的话,只需要1+4+5+6.
自动备份:
备份脚本+crontab
bakl0
bakl1
bakl2
执行脚本:
rmantarget/msglog=bakl0.logcmdfile=bakl0(/表示需要连接的目标数据库,msglog表示日志文件,cmdfile表示的是脚本文件)
rmantarget/msglog=bakl1.logcmdfile=bakl1
rmantarget/msglog=bakl2.logcmdfile=bakl2
实例:
rmantargetsystem/oracle@ora10g(/)msglog=/u01/rmanbak/bakl1.logcmdfile=/u01/rmanbak/bakl0
完整的命令:
/u01/oracle/product/10.2.0/bin/rmantargetsystem/oracle@ora10g(/)msglog=/u01/rmanbak/bakl1.logcmdfile=/u01/rmanbak/bakl0
把备份脚本放到/u01/rmanbak/script目录下面,vibakl0,bakl0的内容为:
run{
allocatechannelcha1typedisk;
backup
incrementallevel0
format'
/u01/rmanbak/inc0_%u_%T'
(u表示唯一的ID,大T是日期,小t是时间)
tagmonday_inc0//标签可以顺便起,没关系
database;
releasechannelcha1;
,类似就可以写出bakl1,bakl2相应的脚本.
自动备份
crontab
crontab-e-uoracle(改命令的意思是编辑oracle用户的定时执行(-e,edit-uoracle,oracle用户))
分时日月星期(0代表星期天)
4523**0rmantarget/msglog=bakl0.logcmdfile=bakl0(星期天的23:
45会以oracle用户的身份来执行命令)
4523**1rmantarget/msglog=bakl2.logcmdfile=bakl2
4523**2rmantarget/msglog=bakl2.logcmdfile=bakl2
4523**3rmantarget/msglog=bakl1.logcmdfile=bakl1
4523**4rmantarget/msglog=bakl2.logcmdfile=bakl2
4523**5rmantarget/msglog=bakl2.logcmdfile=bakl2
4523**6rmantarget/msglog=bakl2.logcmdfile=bakl2
然后启动crontab,启动crontab的命令:
root>
servicecrondrestart
=======================RMAN恢复================
在非catalog模式下,备份的信息存储在controlfile文件中,如果controlfile文件发生毁坏,那么就不能能够进行恢复,
使用在备份的时候需要把controlfile也进行自动备份
showall;
usingtargetdatabasecontrolfileinsteadofrecoverycatalog
RMANconfigurationparametersare:
CONFIGURERETENTIONPOLICYTOREDUNDANCY1;
#default
CONFIGUREBACKUPOPTIMIZATIONOFF;
CONFIGUREDEFAULTDEVICETYPETODISK;
CONFIGURECONTROLFILEAUTOBACKUPOFF;
CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'
%F'
CONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;
CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;
CONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;
CONFIGUREMAXSETSIZETOUNLIMITED;
CONFIGUREENCRYPTIONFORDATABASEOFF;
CONFIGUREENCRYPTIONALGORITHM'
AES128'
CONFIGUREARCHIVELOGDELETIONPOLICYTONONE;
CONFIGURESNAPSHOTCONTROLFILENAMETO'
/home/oracle/product/10.20/dbs/snapcf_ora10g.f'
其中CONFIGURECONTROLFILEAUTOBACKUPOFF;
没有对controlfile进行autobackup,使用我们需要运行下面命令来对controlfile进行自动备份
CONFIGURECONTROLFILEAUTOBACKUPON;
showall;
手动备份控制文件:
Dbid表示database的一个ID,将来用于恢复spfile和controlfile时候要用到.
connecttarget/
connectedtotargetdatabase:
ORA10G(DBID=3988862108)
这个Dbid=3988862108
listbackup;
查看以前备份的信息
deletebackupset24;
//24代表backupset的编号
backupformat'
/u01/rmanbak/full_%T_%U.bak'
databaseplusarchivelog;
(进行一次全备份)
验证备份:
validatebackupset3;
//3代表backupset的编号
口令文件丢失(不属于rman备份的范畴),我们只需要用一个命令来重建这个文件就可以了:
orapwfile=orapwsidpassword=passentries=5;
//口令文件的路径:
/u01/oracle/product/10.20/db_1/dbs目录下
oracle>
cd/u01/oracle/product/10.20/db_1/dbs
rmorapwora10g;
(文件删除,模拟丢失)
orapwdfile=orapwora10gpassword=oracleentries=5;
(重新建立一个文件),entries的意思(DBA的用户最多有5个)
SPFILE丢失:
startupnomount;
setdbid3988862108;
restorespfilefromautobackup;
shutdownimmediate;
startup;
模拟操作:
mvspfileora10g.oraspora10g.ora
rmantarget/;
shutdownimmediate;
startupnomount;
startupfailed:
ORA-01078:
failureinprocessingsystemparameters
LRM-00109:
couldnotopenparameterfile'
/home/oracle/product/10.20/dbs/initora10g.ora'
执行该命令,如果没有找到的话,那可能是文件的路径发生错误.可以通过直接赋予它的文件
restorespfilefrom'
/u01/oracle/flash_recovery_area/ORA10G/autobackup/2008_12_09/o1_mf_s_673025706_4mw7xc79_.bkp
在dbs/目录下产生spfileora10g.ora文件。
证明spfile已经恢复好
startup;
(如果该命令不能够启动数据库,那么需要setdbid3988862108)
controlfile丢失:
restorecontrolfilefromautobackup;
alterdatabasemount;
recoverdatabase;
alterdatabaseopenresetlogs;
注意:
在做了a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RMAN 备份 恢复