RMAN 备份与恢复深入解析.docx

上传人:b****5 文档编号:12026984 上传时间:2023-04-16 格式:DOCX 页数:53 大小:90.74KB
下载 相关 举报
RMAN 备份与恢复深入解析.docx_第1页
第1页 / 共53页
RMAN 备份与恢复深入解析.docx_第2页
第2页 / 共53页
RMAN 备份与恢复深入解析.docx_第3页
第3页 / 共53页
RMAN 备份与恢复深入解析.docx_第4页
第4页 / 共53页
RMAN 备份与恢复深入解析.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

RMAN 备份与恢复深入解析.docx

《RMAN 备份与恢复深入解析.docx》由会员分享,可在线阅读,更多相关《RMAN 备份与恢复深入解析.docx(53页珍藏版)》请在冰豆网上搜索。

RMAN 备份与恢复深入解析.docx

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;

全库非

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1