RMAN 备份与恢复深入解析.docx
- 文档编号:12026984
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:53
- 大小:90.74KB
RMAN 备份与恢复深入解析.docx
《RMAN 备份与恢复深入解析.docx》由会员分享,可在线阅读,更多相关《RMAN 备份与恢复深入解析.docx(53页珍藏版)》请在冰豆网上搜索。
RMAN备份与恢复深入解析
一数据库版本
SQL>select*fromv$version;
BANNER
----------------------------------------------------------------
OracleDatabase10gEnterpriseEditionRelease10.2.0.4.0-64bi
PL/SQLRelease10.2.0.4.0-Production
CORE10.2.0.4.0Production
TNSforLinux:
Version10.2.0.4.0-Production
NLSRTLVersion10.2.0.4.0-Production
二工具
1.Rman:
Oracle8i开始就在使用的oracle专业备份恢复工具,这也是广大DBA同志接触最多的备份工具,不仅可以备份单实例还可以在RAC模式下备份,俗话说RMAN在手烦恼没有,下面我们开始深入浅出来讲讲Rman的使用方法和备份策略。
Rman能够干什么:
(1)全库备份,这是必然要进行的操作,因为它是一切恢复的源泉
(2)增量备份,目的减少备份的数据量,分为差异和累计
(3)细粒度备份,表空间,数据文件,控制文件,参数文件,归档日志
(4)数据库克隆,使用备份来迁移数据库
(5)设计备份策略
(6)管理备份集
(7)自定义Rman脚本
(8)生成Rman报告
如何学习Rman:
很多人见了Rman不知道按照什么规则备份,因为Rman里面有很多参数需要设置,搞不好还会备份错误,备份策略如何设计等等一系列问题。
在这里我要说,遇到一个工具最快的掌握方法就是先用起来,用的好用的坏那是另一回事。
其实Rman原理并不复杂,就是复制数据库一系列文件打个包放在磁盘or磁带上,需要恢复的时候在拷贝回来。
Rman实践要比原理重要的多,因此“实操族”是Rman的最爱。
注意:
通过RMAN来备份和恢复数据库时,都必须先启动实例并加载数据库才行,这是给刚入门的朋友一点提示,如果你是大侠请自动忽视吧。
2.登陆RMAN和退出RMAN
RMAN连接本地数据库
[oracle@linuxdbbase]$rmantarget/一气呵成法
RecoveryManager:
Release10.2.0.4.0-ProductiononTueMay720:
57:
492013
Copyright(c)1982,2007,Oracle.Allrightsreserved.
connectedtotargetdatabase:
BASE(DBID=1845289414)这个dbid要记好了,很多时候我们需要它
RMAN>
还可以先登陆rman,进入后在连接数据库
[oracle@linuxdbbase]$rman
RecoveryManager:
Release10.2.0.4.0-ProductiononTueMay721:
00:
312013
Copyright(c)1982,2007,Oracle.Allrightsreserved.
RMAN>connecttarget/
connectedtotargetdatabase:
BASE(DBID=1845289414)每个数据库都有一个唯一dbid
RMAN>
RMAN连接远程数据库
[oracle@linuxdbbase]$rmantargetsys/oracle@base179后缀连接串即可
RecoveryManager:
Release10.2.0.4.0-ProductiononTueMay721:
10:
482013
Copyright(c)1982,2007,Oracle.Allrightsreserved.
connectedtotargetdatabase:
BASE(DBID=1843237732)
RMAN>
退出RMAN
RMAN>exit
RMAN>quit
这两个命令都可以退出,这是给初学者一点点引航,大侠请肃静and回避
三备份恢复前的一些准备工作
有备无患是DBA们的口头禅,如果你想做一个赏心悦目的DBA那就要把功课做充分,从下面入手
1.control_file_record_keep_time
control_file_record_keep_time初始化参数:
rman元数据在控制文件中保留的最小有效天数,默认为7天。
官方文档中描述它是控制文件保留rman元数据有效的最小天数,如果新增加一条记录到控制文件可重用区reusable,这时最老的记录尚没有超出最小保留天数,那么记录将控制文件的这一部分扩展。
如果将该参数设置为0,那么控制文件可重用区将永远不会扩展。
注意:
这个参数只应用于控制文件中可循环利用的部分,如归档日志文件,各种备份记录。
不应用于诸如数据文件,表空间,重做日志等,这些内容只有当其从对应的表空间中删除后才能重用。
最小天数的理解:
假设我们设置为7天,那如果我有10天前(甚至更早)的datafilebackup和controlfilebackup+至今的全部日志,就不能完全恢复了嘛?
这是否定的,因为rman元数据保留在控制文件可重用区,如果7天内的备份记录没有把可重用区装满,就算过了7天你的备份记录还是存在的,可以正常完全恢复。
如果7天内可重用区被装满了,控制文件会拿最老的备份记录来覆盖(但会保证最小天数内的记录是有效的)。
我们根据以往经验,把这个值设置为30天
语法:
altersystemsetcontrol_file_record_keep_time=30;
初始化参数control_file_record_keep_time是动态参数可以直接修改,不用重启数据库
SQL>showparametercontrol
NAMETYPEVALUE
------------------------------------------------------------------------------------------
control_file_record_keep_timeinteger30
2.启动归档模式
SYS@base>archiveloglist
DatabaselogmodeNoArchiveMode
AutomaticarchivalDisabled
ArchivedestinationUSE_DB_RECOVERY_FILE_DEST
Oldestonlinelogsequence10
Currentlogsequence12
首先我们先要创建一个存放archivelog的目录
Oracle10g&11g默认归档、闪回、备份都存放在flash_recovery_area中,默认大小2G,一般在生产环境中为了更方便管理这些重要文件,为其专门创建目录存放。
[oracle@linuxdboracle]$mkdirarchdata创建一个archivelog目录
路径:
/opt/oracle/archdata
登陆sqlplus,设置归档路径
[oracle@linuxdbarchdata]$sqlplus/assysdba
SYS@base>altersystemsetlog_archive_dest_1='location=/opt/oracle/archdata'scope=both;已经生效
Systemaltered.
SQL>selectdest_name,destination,status,errorfromv$archive_destwheredest_name='LOG_ARCHIVE_DEST_1';
DEST_NAMEDESTINATIONSTATUSERROR
---------------------------------------------------------------
LOG_ARCHIVE_DEST_1/opt/oracle/archdataVALID
已经生效
重启数据库mount状态,开启归档
SYS@base>shutdownimmediate
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
SYS@base>startupmount
ORACLEinstancestarted.
TotalSystemGlobalArea1610612736bytes
FixedSize2084296bytes
VariableSize385876536bytes
DatabaseBuffers1207959552bytes
RedoBuffers14692352bytes
Databasemounted.
SYS@base>alterdatabasearchivelog;开启归档模式
Databasealtered.
SYS@base>alterdatabaseopen;打开数据库
Databasealtered.
凡是alterdatabase操作都是修改“控制文件”内容,走到那说到那嘿
[oracle@linuxdbarchdata]$ll刚刚开启归档还没有生成日志,我们手工切换一下
总用量0
SQL>altersystemswitchlogfile;手动切换不会触发checkpoint,自动切换会触发checkpoint
Systemaltered
[oracle@linuxdbarchdata]$ll这时已经有归档日志生成了
总用量22208
-rw-r-----1oracleoinstall227363845月815:
351_13_814444678.dbf
-rw-r-----1oracleoinstall10245月815:
351_14_814444678.dbf
SQL>selectsequence#,name,archived,appliedfromv$archived_log;数据库层面查看
SEQUENCE#NAMEARCHIVEDAPPLIED
--------------------------------------------------------------------------
13/opt/oracle/archdata/1_13_814444678.dbfYESNO
14/opt/oracle/archdata/1_14_814444678.dbfYESNO
SYS@base>archiveloglist;
DatabaselogmodeArchiveMode归档模式
AutomaticarchivalEnabled自动归档启动
Archivedestination/opt/oracle/archdata归档日志目录
Oldestonlinelogsequence13旧在线日志序号,已经归档完的
Nextlogsequencetoarchive15下一个将要归档的日志序号
Currentlogsequence15当前在线日志序号
写的很清楚,从这里我们就可以判断归档日志的情况了,有多少归档,现在是几号日志,已经完成归档是几号等等。
3.安装rlwrap-0.37-1.el5.x86_64.rpm包
大家有没有在sqlplus中不能使用键盘的上下左右键,打错了连删除字符都不行,没天理啊,作为一名“键盘族”这是忍受不了的,熟可忍熟不可忍。
那有没有什么法宝可以解决这个看似小问题其实大问题的问题(周鸿祎说过任何理由都应该与用户体验为准绳)
rlwrap-0.37-1.el5.x86_64.rpm包就可以解决这个问题,但在安装这个包之前需要先安装2个依赖包
one:
readline-devel-6.0-4.el6.x86_64.rpm
two:
ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
oracle用户环境变量中添加
[oracle@linuxdb~]$vim.bash_profile
aliassqlplus="rlwrapsqlplus"添加一个别名
[oracle@linuxdb~]$..bash_profile环境变量生效
[oracle@linuxdb~]$sqlplus/assysdba登陆sqlplus见证奇迹的时刻来临
上下左右backspace全都可以使用了对吧是不是很爽啊~nicego~
4.RMAN环境变量
为什么要设置RMAN环境变量
答:
这是一个好问题,做什么事之前问一个“为什么”可以有助于你在别人面前提升自己多动脑的光辉形象:
)
进入正题,RMAN环境变量和OS环境变量有同工异曲之意,设置好后,对全局生效,不用每次都指定目录指定名称,这是懒人的福音~阿门!
不设置可不可以呢,oracle是个开放的软件,当然可以,这就需要在命令中写好参数一次性完成,下次再做继续再写,比较适合我这样喜欢狂敲键盘的人。
下面我们来配置配置吧~咚咚波
因RMAN配置信息都是放在数据库控制文件中的,因此我们先要连接到目标库才能显示环境变量
[oracle@linuxdb~]$rmantarget/
RecoveryManager:
Release10.2.0.4.0-ProductiononWedMay816:
48:
502013
Copyright(c)1982,2007,Oracle.Allrightsreserved.
connectedtotargetdatabase:
BASE(DBID=1845289414)有dbid证明已连接到目标库
RMAN>showall;
usingtargetdatabasecontrolfileinsteadofrecoverycatalog使用控制文件来代替恢复目录数据库存放rman信息
RMANconfigurationparametersare:
CONFIGURERETENTIONPOLICYTOREDUNDANCY1;#default
CONFIGUREBACKUPOPTIMIZATIONOFF;#default
CONFIGUREDEFAULTDEVICETYPETODISK;#default
CONFIGURECONTROLFILEAUTOBACKUPOFF;#default
CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'%F';#default
CONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;#default
CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;#default
CONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;#default
CONFIGUREMAXSETSIZETOUNLIMITED;#default
CONFIGUREENCRYPTIONFORDATABASEOFF;#default
CONFIGUREENCRYPTIONALGORITHM'AES128';#default
CONFIGUREARCHIVELOGDELETIONPOLICYTONONE;#default
CONFIGURESNAPSHOTCONTROLFILENAMETO'/opt/oracle/product/10.2.0/db_1/dbs/snapcf_base.f';#default
这只是一部分,如想多多学习请参考【参】Books->BackupandRecoveryReference->CONFIGURE
(1)配置RMAN默认备份介质保存目录/opt/oracle/backup
[oracle@linuxdboracle]$mkdirbackup创建保存目录
RMAN>configurechanneldevicetypediskformat'/opt/oracle/backup/DB_%U';
usingtargetdatabasecontrolfileinsteadofrecoverycatalog
使用目标库“控制文件”代替“恢复目录数据库”存放rman信息
oldRMANconfigurationparameters:
CONFIGURECHANNELDEVICETYPEDISKFORMAT'/opt/oracle/backup/DB_%U';
newRMANconfigurationparameters:
CONFIGURECHANNELDEVICETYPEDISKFORMAT'/opt/oracle/backup/DB_%U';
newRMANconfigurationparametersaresuccessfullystored
新RMAN配置参数生效
(2)配置控制文件自动备份并保存到/opt/oracle/backup/control
注:
当控制文件内容有变化时会自动触发备份
[oracle@linuxdbbackup]$mkdircontrol创建保存目录
RMAN>configurecontrolfileautobackupon;启动控制文件自动备份
newRMANconfigurationparameters:
CONFIGURECONTROLFILEAUTOBACKUPON;
newRMANconfigurationparametersaresuccessfullystored
RMAN>configurecontrolfileautobackupformatfordevicetypediskto'/opt/oracle/backup/control/cf_%F';配置控制文件自动备份保存目录和格式
newRMANconfigurationparameters:
CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/opt/oracle/backup/control/cf_%F';
newRMANconfigurationparametersaresuccessfullystored
(3)配置备份介质保留期为7天
RMAN>configureretentionpolicytorecoverywindowof7days;
newRMANconfigurationparameters:
CONFIGURERETENTIONPOLICYTORECOVERYWINDOWOF7DAYS;
newRMANconfigurationparametersaresuccessfullystored
设置好后我们再来看一下rman环境变量
RMAN>showall;
RMANconfigurationparametersare:
CONFIGURERETENTIONPOLICYTORECOVERYWINDOWOF7DAYS;恢复窗口7天
CONFIGUREBACKUPOPTIMIZATIONOFF;#default
CONFIGUREDEFAULTDEVICETYPETODISK;#default
CONFIGURECONTROLFILEAUTOBACKUPON;启动控制文件自动备份,目录和格式
CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'/opt/oracle/backup/control/cf_%F';
CONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;#default
CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;#default
CONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;#default
CONFIGURECHANNELDEVICETYPEDISKFORMAT'/opt/oracle/backup/DB_%U';备份介质保存目录
CONFIGUREMAXSETSIZETOUNLIMITED;#default
CONFIGUREENCRYPTIONFORDATABASEOFF;#default
CONFIGUREENCRYPTIONALGORITHM'AES128';#default
CONFIGUREARCHIVELOGDELETIONPOLICYTONONE;#default
CONFIGURESNAPSHOTCONTROLFILENAMETO'/opt/oracle/product/10.2.0/db_1/dbs/snapcf_base.f';#default
我们目前配置这4个变量就可以了,其它的什么时候用什么时候做或者直接在命令行中指定。
四备份与恢复实例
1.用RMAN分别作数据库,表空间和数据文件的备份和数据库,表空间和数据文件损坏后的恢复实例
数据库级备份与恢复
全库压缩备份与全库非压缩备份应用场景:
如果你的系统有专用“备份磁阵”或者有足够的磁盘空间来让您随心所欲的用,那说明你很幸运,遇到一个不差钱的boss,往往事与愿违,我们可以自由支配的磁盘空间非常有限,这也验证了国人勤俭节约的优良传统。
在有限的空间里如何装下更多的备份呢,这里就用上了压缩属性,把原来很大的文件尽可能压缩,提高空间利用率,当然备份和恢复的时间窗口会长一些,这就是时间换空间的精髓。
Comeon我们先来备个全库吧
全库压缩备份脚本
backupascompressedbackupsetfulldatabaseformat命令行中直接指定压缩选项即可
'/opt/oracle/backup/full_bk1_%u%p%s.rmn'includecurrentcontrolfile
plus
archivelogformat'/opt/oracle/backup/arch_bk1_%u%p%s.rmn'deleteallinput;
全库非
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RMAN 备份与恢复深入解析 备份 恢复 深入 解析