情感测试
情感测试

您现在的位置: 情感测试简介_情感测试玩法 > 情感测试题目 > RMAN备份与恢复

RMAN备份与恢复

发布时间:2021-8-16 15:19:45   点击数: 3 次
北京去哪家医院看白癜风好 http://m.39.net/pf/bdfyy/tslf/

一数据库版本

SQLselect*fromvversion;

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-ProductiononTueMay:57:

Copyright(c),,Oracle.Allrightsreserved.

connectedtotargetdatabase:BASE(DBID=)这个dbid要记好了,很多时候我们需要它

RMAN

还可以先登陆rman,进入后在连接数据库

[oracle

linuxdbbase]rman

RecoveryManager:Release10.2.0.4.0-ProductiononTueMay:00:

Copyright(c),,Oracle.Allrightsreserved.

RMANconnecttarget/

connectedtotargetdatabase:BASE(DBID=)每个数据库都有一个唯一dbid

RMAN

RMAN连接远程数据库

[oracle

linuxdbbase]rmantargetsys/oracle

base后缀连接串即可

RecoveryManager:Release10.2.0.4.0-ProductiononTueMay:10:

Copyright(c),,Oracle.Allrightsreserved.

connectedtotargetdatabase:BASE(DBID=)

RMAN

退出RMAN

RMANexit

RMANquit

这两个命令都可以退出,这是给初学者一点点引航,大侠请肃静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是动态参数可以直接修改,不用重启数据库

SQLshowparametercontrol

NAMETYPEVALUE

------------------------------------------------------------------------------------------

control_file_record_keep_timeinteger30

2.启动归档模式

SYS

basearchiveloglist

DatabaselogmodeNoArchiveMode

AutomaticarchivalDisabled

ArchivedestinationUSE_DB_RECOVERY_FILE_DEST

Oldestonlinelogsequence10

Currentlogsequence12

首先我们先要创建一个存放archivelog的目录

Oracle10g11g默认归档、闪回、备份都存放在flash_recovery_area中,默认大小2G,一般在生产环境中为了更方便管理这些重要文件,为其专门创建目录存放。

[oracle

linuxdboracle]mkdirarchdata创建一个archivelog目录

路径:/opt/oracle/archdata

登陆sqlplus,设置归档路径

[oracle

linuxdbarchdata]sqlplus/assysdba

SYS

basealtersystemsetlog_archive_dest_1=location=/opt/oracle/archdatascope=both;已经生效

Systemaltered.

SQLselectdest_name,destination,status,errorfromvarchive_destwheredest_name=LOG_ARCHIVE_DEST_1;

DEST_NAMEDESTINATIONSTATUSERROR

---------------------------------------------------------------

LOG_ARCHIVE_DEST_1/opt/oracle/archdataVALID

已经生效

重启数据库mount状态,开启归档

SYS

baseshutdownimmediate

Databaseclosed.

Databasedismounted.

ORACLEinstanceshutdown.

SYS

basestartupmount

ORACLEinstancestarted.

TotalSystemGlobalAreabytes

FixedSizebytes

VariableSizebytes

DatabaseBuffersbytes

RedoBuffersbytes

Databasemounted.

SYS

basealterdatabasearchivelog;开启归档模式

Databasealtered.

SYS

basealterdatabaseopen;打开数据库

Databasealtered.

凡是alterdatabase操作都是修改“控制文件”内容,走到那说到那嘿

[oracle

linuxdbarchdata]ll刚刚开启归档还没有生成日志,我们手工切换一下

总用量0

SQLaltersystemswitchlogfile;手动切换不会触发checkpoint,自动切换会触发checkpoint

Systemaltered

[oracle

linuxdbarchdata]ll这时已经有归档日志生成了

总用量

-rw-r-----1oracleoinstall月:_13_.dbf

-rw-r-----1oracleoinstall月:_14_.dbf

SQLselectsequence#,name,archived,appliedfromvarchived_log;数据库层面查看

SEQUENCE#NAMEARCHIVEDAPPLIED

--------------------------------------------------------------------------

13/opt/oracle/archdata/1_13_.dbfYESNO

14/opt/oracle/archdata/1_14_.dbfYESNO

SYS

basearchiveloglist;

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..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-ProductiononWedMay:48:

Copyright(c),,Oracle.Allrightsreserved.

connectedtotargetdatabase:BASE(DBID=)有dbid证明已连接到目标库

RMANshowall;

usingtargetdatabasecontrolfileinsteadofrecoverycatalog使用控制文件来代替恢复目录数据库存放rman信息

RMANconfigurationparametersare:

CONFIGURERETENTIONPOLICYTOREDUNDANCY1;#default

CONFIGUREBACKUPOPTIMIZATIONOFF;#default

CONFIGUREDEFAULTDEVICETYPETODISK;#default

CONFIGURECONTROLFILEAUTOBACKUPOFF;#default

CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO%F;#default

CONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;#default

CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;#default

CONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;#default

CONFIGUREMAXSETSIZETOUNLIMITED;#default

CONFIGUREENCRYPTIONFORDATABASEOFF;#default

CONFIGUREENCRYPTIONALGORITHMAES;#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创建保存目录

RMANconfigurechanneldevicetypediskformat/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创建保存目录

RMANconfigurecontrolfileautobackupon;启动控制文件自动备份

newRMANconfigurationparameters:

CONFIGURECONTROLFILEAUTOBACKUPON;

newRMANconfigurationparametersaresuccessfullystored

RMANconfigurecontrolfileautobackupformatfordevicetypediskto/opt/oracle/backup/control/cf_%F;配置控制文件自动备份保存目录和格式

newRMANconfigurationparameters:

CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO/opt/oracle/backup/control/cf_%F;

newRMANconfigurationparametersaresuccessfullystored

(3)配置备份介质保留期为7天

RMANconfigureretentionpolicytorecoverywindowof7days;

newRMANconfigurationparameters:

CONFIGURERETENTIONPOLICYTORECOVERYWINDOWOF7DAYS;

newRMANconfigurationparametersaresuccessfullystored

设置好后我们再来看一下rman环境变量

RMANshowall;

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

CONFIGUREENCRYPTIONALGORITHMAES;#default

CONFIGUREARCHIVELOGDELETIONPOLICYTONONE;#default

CONFIGURESNAPSHOTCONTROLFILENAMETO/opt/oracle/product/10.2.0/db_1/dbs/snapcf_base.f;#default

我们目前配置这4个变量就可以了,其它的什么时候用什么时候做或者直接在命令行中指定。

四备份与恢复实例

1.用RMAN分别作数据库,表空间和数据文件的备份和数据库,表空间和数据文件损坏后的恢复实例

数据库级备份与恢复

全库压缩备份与全库非压缩备份应用场景:

如果你的系统有专用“备份磁阵”或者有足够的磁盘空间来让您随心所欲的用,那说明你很幸运,遇到一个不差钱的boss,往往事与愿违,我们可以自由支配的磁盘空间非常有限,这也验证了国人勤俭节约的优良传统。在有限的空间里如何装下更多的备份呢,这里就用上了压缩属性,把原来很大的文件尽可能压缩,提高空间利用率,当然备份和恢复的时间窗口会长一些,这就是时间换空间的精髓。

Comeon我们先来备个全库吧

全库压缩备份脚本

backupas

转载请注明:http://www.zmax-alibaba.com/qgtm/137965.html

网站简介 | 发布优势 | 服务条款 | 隐私保护 | 广告合作 | 合作伙伴 | 版权申明 | 网站地图

当前时间: