oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx

上传人:b****5 文档编号:3257936 上传时间:2022-11-21 格式:DOCX 页数:51 大小:93KB
下载 相关 举报
oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx_第1页
第1页 / 共51页
oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx_第2页
第2页 / 共51页
oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx_第3页
第3页 / 共51页
oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx_第4页
第4页 / 共51页
oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx

《oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx》由会员分享,可在线阅读,更多相关《oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx(51页珍藏版)》请在冰豆网上搜索。

oracle备份恢复 之三思笔记一步一步学RMAN完整版.docx

oracle备份恢复之三思笔记一步一步学RMAN完整版

[三思笔记]一步一步学rman

一、进入rman

二、rman命令知多少

三、rman备份演练初级篇

四、rman备份演练进阶篇

五、rman外传-基础资料篇1

六、实战rman备份

七、rman外传-基础资料篇2

八、演练rman恢复

九、实战rman恢复

(1)丢失控制文件的恢复

十、实战rman恢复

(2)恢复到异机

11、rman笔记之综述

帖子评论请到:

打包下载请到:

何故

RMAN路

困难多处

刻苦勤学读

希望早日克服

参考资料数十部

不厌其烦尝试几度

刻苦终见回报幕

一丝恍然飘入

测试再加速

几见明路

再思故

顿悟

一步一步学RMAN

第一篇进入RMAN2007.6.15

哈哈~~~~~

天苍苍野茫茫,三思终于又出场。

要问三思来干啥,来把RMAN讲一讲。

吃喝玩乐间学习,心得体会一箩筐。

不管结论对与错,先把过程来分享。

如有异议务必提,共同学习共提高。

  en,写的还挺顺口,俺自满啊~~~~~以后俺要是找不着干dba的工作,俺就到说不得大师的玄幻世界里当吟唱诗人去。

  书归正传,在开始之前俺先强调一点,通过RMAN的方式不论要备份还是要恢复,都必须先启动实例并加载数据库。

(有人在抗议,说这太初级了。

俺说明一下,这是一个超级菜鸟摸爬滚打的心路历程,别说初级,连弱智的内容都有,所以俺友情提醒大虾们务必开启初级内容过滤功能,以妨过多占用您宝贵时间,什么?

你不会这一招,哎,我这里有秘制一目十行术,看你是大虾给你打8折,pm我吧)

  RMAN有两种操作方式,一种是类似dos,通过键盘操作的命令方式,第二种是类似windows通过鼠标操作的图形化界面方式。

图形化方式操作简单但也因此省略了一些具体过程,你可能成功操作但却不知道oracle究竟做了什么,怎么做的。

俺立志也是要做名oracle大虾地,所以第二种方式完全不在考虑之列,最多只是参考。

本篇后续内容所做的各项操作也都将以命令方式进行。

1、连接本地数据库

通过rman连接本地数据库非常简单,以windows平台为例,进入到命令提示符界面:

C:

\DocumentsandSettings\Administrator>setoracle_sid=jssweb

C:

\DocumentsandSettings\Administrator>rmantarget/

恢复管理器:

版本9.2.0.1.0-Production

Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.

连接到目标数据库:

JSSWEB(DBID=3391142503)

RMAN>

注:

如果本地库只有一个实例,则不需要指定oracle_sid。

Rman会自动连接到默认实例。

当然,你也可以先启动rman,然后再通过connect来连接目标数据库,如下:

 

C:

\DocumentsandSettings\Administrator>setoracle_sid=jssweb

C:

\DocumentsandSettings\Administrator>rman

恢复管理器:

版本9.2.0.1.0-Production

Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.

RMAN>connecttarget/

连接到目标数据库:

JSSWEB(DBID=3391142503)

RMAN>

 

2、连接远程数据库

如果要连接的目标数据库是一个远程数据库,那么必须在建立连接时指定一个有效的网络服务名,同时你本地的tnsname.ora文件中也必须已经建立了该网络服务名的正确配置。

示例如下:

C:

\DocumentsandSettings\Administrator>rmantargetsys/change_on_install@testdb

恢复管理器:

版本9.2.0.1.0-Production

Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.

连接到目标数据库:

TESTDB(DBID=2220262593)

RMAN>

当然,在这里你也可以同样先启动rman,再通过connect创建连接。

具体示例与上类似,如果再做演示那这个环节不仅是弱,而是超弱,即使坚定如我也承受不了如此强烈的呕吐加鄙视的欲望,所以还是做罢吧。

3、退出RMAN

哈哈,退出就太简单啦,敲个EXIT试试~~~~~~

还有一点各位新友也了解一下,对于以后写rman批处理会有帮助。

在启动rman时可以指定日志输出,之前的示例中均没有指定,rman就将执行结果直接打印到屏幕了,如果我们以后写了一堆超长的rman批处理放在后台执行,可能会希望能够把执行日志记录下来备查,这个时候日志输出功能就用上了。

这个功能也非常简单,如下:

C:

\DocumentsandSettings\Administrator>rmantarget/logd:

\logs\rman_log.txt

RMAN>

rman会将执行的结果直接输出到指定的d:

\logs\rman_log.txt文件,一旦脚本放入后台执行出现问题,我们可以根据rman_log文件来辅助分析。

一步一步学RMAN

第二篇RMAN命令知多少2007.6.18

菩萨蛮·命令知多少

上一节讲了怎么进,这节开讲知多少

内容虽不多,排列费思量。

RMAN贵灵活,应用是根本。

无须死硬记,策略定规则。

RMAN非常有意思,做为一个专业的备份工具,它几乎考虑到了备份及恢复过程中可能遇到的各种操作,由此它也提供了各种各样的命令来为这些操作提供便利。

一、启动、关闭数据库

在RMAN中执行关闭和启动数据库的命令与SQL环境下一模一样。

当然,在执行之前,你需要先连接到目标数据库,如例:

C:

\DocumentsandSettings\Administrator>rmantarget/

恢复管理器:

版本9.2.0.1.0-Production

Copyright(c)1995,2002,OracleCorporation.Allrightsreserved.

连接到目标数据库:

JSSWEB(DBID=3391142503)

RMAN>shutdownimmediate

正在使用目标数据库控制文件替代恢复目录

数据库已关闭

数据库已卸载

Oracle例程已关闭

RMAN>startup

已连接到目标数据库(未启动)

Oracle例程已启动

数据库已加载

数据库已打开

系统全局区域总计143727516字节

FixedSize453532字节

VariableSize109051904字节

DatabaseBuffers33554432字节

RedoBuffers667648字节

RMAN>

当然,你也可以执行startupmount,然后再利用alterdatabaseopen命令打开数据库以及shutdownnormal,shutdownabort等。

总之启动和关闭的命令跟SQL环境下相比就仨字儿:

完全一模一样。

二、执行操作系统命令

Rman支持通过执行host命令暂时退出rman的命令提示符而进入到操作系统的命令环境,如下例:

RMAN>host;

MicrosoftWindows[版本5.2.3790]

(C)版权所有1985-2003MicrosoftCorp.

C:

\DocumentsandSettings\Administrator>cd\

C:

\>exit

主机命令完成

RMAN>

执行完系统命令后可以再通过执行exit退出到rman命令提示符下。

三、执行SQL语句

在rman中执行sql语句稍嫌复杂。

在RMAN的命令提示符后输入SQL命令,然后在一对单引号(双引号亦可)中输入要执行的SQL语句,例如:

RMAN>SQL'ALTERSYSTEMARCHIVELOGALL';

需要注意的一点是,rman中的sql环境不能执行SELECT语句,或者说执行不报错,但你也看不到结果。

其实我们完全可以通过更取巧的方式来实现更强大的SQL操作,比如利用第二项介绍的内容,如下:

RMAN>host;

MicrosoftWindows[版本5.2.3790]

(C)版权所有1985-2003MicrosoftCorp.

C:

\DocumentsandSettings\Administrator>sqlplus/nolog

SQL*Plus:

Release9.2.0.1.0-Productionon星期四6月2817:

40:

242007

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.

SQL>conn/assysdba

已连接。

SQL>selectsysdatefromdual;

SYSDATE

----------

28-6月-07

SQL>exit

从Oracle9iEnterpriseEditionRelease9.2.0.1.0-Production

WiththePartitioning,OLAPandOracleDataMiningoptions

JServerRelease9.2.0.1.0-Production中断开

C:

\DocumentsandSettings\Administrator>exit

主机命令完成

RMAN>

萝卜青菜各有所爱,大家是爱萝卜还是爱青菜啊,爱萝卜的请选第一种,爱青菜的请选第二种。

我爱吃肉,我要找第三种出来~~~~~

四、定义RMAN配置

RMAN中具有一系列的默认配置,这些配置决定了备份和恢复时的一些选项(此节内容枯燥,眼神不好的同学请自觉跳过),比如:

4、自动分配通道的配置;

5、备份保留时间的配置;

6、备份集大小的限制;

7、启用或禁用备份优化功能;

8、镜像复制的备份数量;

9、是否将某个表空间排队在备份之外。

修改配置是通过CONFIGURE命令,具体用法非常简单,但由于可供configure的配置非常之多,这里不做详细介绍,在后续实际演练章节中会有体现。

当然,有心的朋友也可以通过google搜索一下,更有耐心的新友就等着看俺写的外传。

五、显示RMAN默认配置

Rman中可以利用show命令来显示当前的配置参数。

例如,通过SHOW ALL显示当前所有的配置。

RMAN>showall;

RMAN配置参数为:

CONFIGURERETENTIONPOLICYTORECOVERYWINDOWOF3DAYS;

CONFIGUREBACKUPOPTIMIZATIONOFF;#default

CONFIGUREDEFAULTDEVICETYPETODISK;#default

CONFIGURECONTROLFILEAUTOBACKUPON;

CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'd:

/backup/%F';

CONFIGUREDEVICETYPEDISKPARALLELISM1;#default

CONFIGUREDATAFILEBACKUPCOPIESFORDEVICETYPEDISKTO1;#default

CONFIGUREARCHIVELOGBACKUPCOPIESFORDEVICETYPEDISKTO1;#default

CONFIGUREMAXSETSIZETOUNLIMITED;#default

CONFIGURESNAPSHOTCONTROLFILENAMETO'F:

\ORAHOME1\DATABASE\SNCFJSSWEB.ORA';#

default

RMAN>

注:

配置项后面跟了#default的表示该项仍是初始配置,未被修改过。

该命令使用也相当灵活,其后跟上不同的类型的配置参数,即可以显示不同类型的配置,如:

SHOWCHANNEL;

SHOWDEVICETYPE;

SHOWDEFAULTDEVICETYPE;

六、列出备份信息

LIST命令用来查看通过RMAN生成的备份信息,照我看来,这个应用应该会非常少,大家了解即可(引申一下,不仅是list,俺基本认为备份这种操作,脚本一次定型,100年不许变,哪有DBA天天干备份恢复的,如果真是这样,那您这库。

)。

例如:

列出数据库中所有文件的备份信息:

RMAN>LISTBACKUPOFDATABASE;

列出指定表空间的备份信息:

RMAN>LISTCOPYOFTABLESPACE'SYSTEM';

列出指定数据文件的备份信息:

RMAN>LISTBACKUPOFDATAFILE'F:

\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA';

七、删除备份

用于删除RMAN备份记录及相应的物理文件。

当使用RMAN执行备份操作时,会在RMAN资料库中生成RMAN备份记录,并且RMAN备份记录被存放在目标数据库的控制文件中,如果配置了恢复目录,那么该备份记录也会被存放到恢复目录中。

1、删除陈旧备份

当使用RMAN执行备份操作时,RMAN会根据备份冗余策略确定陈旧备份。

RMAN>deleteobsolete;

2、删除EXPIRED备份

执行crosscheck命令核对备份集,那么会将该备份集标记为EXPIRED状态。

为了删除相应的备份记录,可以执行deleteexpiredbackup命令。

RMAN>deleteexpiredbackup;

3、删除EXPIRED副本

RMAN>deleteexpiredcopy;

4、删除特定备份集

RMAN>deletebackupset19;

5、删除特定备份片

RMAN>deletebackuppiece'd:

\backup\DEMO_19.bak';

6、删除所有备份集

RMAN>deletebackup;

7、删除特定映像副本

RMAN>deletedatafilecopy'd:

\backup\DEMO_19.bak';

8、删除所有映像副本

RMAN>deletecopy;

9、在备份后删除输入对象

RMAN>deletearchivelogalldeleteinput;

RMAN>deletebackupset22format=''d:

\backup\%u.bak''deleteinput;

八、批处理命令RUN

重头戏来了,大家鼓掌。

谢谢大家的掌声,RUN的用法虽然很简单,但run太重要了,是我们后面几乎经常都要遇到的,也正因此我不敢贸然下笔,于是我准备。

跳票,下章见~~

 

一步一步学RMAN

第三篇RMAN备份演练初级篇2007.6.21

 

  前面我们已经知道了如何进入rman,以及rman的一些基本命令,相信大家定会觉着rman操作的简单,事实也确实如此,但万不要因此小视rman的强大,简单往往意味着灵活,灵活对于那些有心人则意味着主动权尽在掌握。

一、RMAN备份形式

  1、镜像复制(ImageCopies)

镜像复制实际上就是数据文件、控制文件或归档文件的复制,与用户通过操作系统命令建立的文件复制实质一样,只不过RMAN是利用目标数据库中的服务进程来完成文件复制,而用户则是用操作系统命令。

所以镜像复制的方式体现不出RMAN的优势,也并非我们讨论的重点,大家了解一下即可(啥?

想知道镜像复制咋用?

卡,问村长去~~~~~)。

  2、备份集(BackupSets)

备份集是通过RMAN创建的逻辑备份对象。

一个备份集中可以包含多个数据文件、控制文件或归档文件。

备份集在物理上是由多个备份片段组成,每个备份片段是一个操作系统文件。

二、RMAN命令执行方式

  在进入演练之前,大家还有必要了解运行rman命令的方式,就目前已知的情况,共有4种运行方式。

  1、单个执行(没啥说的,之前的示例都是这种方式)

RMAN>backupdatabase;

  

  2、批处理(呵呵,跳票的补上)

RMAN>RUN{

.......................

.......................

}

  批处理方式实质是将原来单个执行的命令组合到一起,并放在run{}之间,这种方式最大的好处是所有在run中的命令被视为一个作业,如果作业中任何一条命令执行失败,则整个命令停止执行,即失败命令后的其它命令都不会再被执行。

这种方式是最常使用的方式,特别对于后台执行。

  3、运行脚本(又能细分为几种方式如下:

C:

\>rmanTARGET/@backup_db.rman

RMAN>@backup_db.rman

RMAN>RUN{@backup_db.rman}

  运行存储在恢复目录中的脚本(需要首先为rman创建恢复目录)

RMAN>RUN{EXECUTESCRIPTbackup_whole_db};

  看看,够灵活吧。

  4、操作系统脚本(linux,windows环境下小有差异,但只是操作系统命令的不同)

C:

\>rmancmdfile=backup_db.rman

明眼人看的出来,后两种其实是前面两种加上操作系统命令的综合应用。

三、对数据库进行全备

  1、使用backupdatabase命令执行备份

RMAN>BACKUPDATABASE;

  执行上述命令后将对目标数据库中的所有数据文件进行备份,由于没有显式指定FORMAT参数,rman会自动为每个备份片段命名,并保存在ORACLE_HOME/database目录下。

  当然,也可以通过显式指定format参数来自定义备份片段的命令规则,比如:

RMAN>BACKUPDATABASEFORMAT'D:

\BACKUP\%U';

(关于%U的格式说明,请参考本篇外传。

Ooo,外传好像还没写,没关系没关系,大家表着急,我保证大家在有生之年一定等的到的。

2、通过list命令查看刚刚创建的备份信息:

RMAN>listbackupofdatabase;

正在使用目标数据库控制文件替代恢复目录

备份集列表

===================

BS关键字类型LV大小设备类型经过时间完成时间

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

11Incr0827MDISK00:

01:

3026-6月-07

BP关键字:

11状态:

AVAILABLE标记:

TAG20070629T150701

段名:

D:

\BACKUP\0CILGG8L_1_1

备份集11中的数据文件列表

文件LV类型CkpSCNCkp时间名称

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

10Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\SYSTEM01.DBF

20Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\UNDOTBS01.DBF

30Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\DRSYS01.DBF

40Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\EXAMPLE01.DBF

50Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\INDX01.DBF

60Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\ODM01.DBF

70Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\TOOLS01.DBF

80Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\USERS01.DBF

90Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\XDB01.DBF

100Incr523357789626-6月-07F:

\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA;

四、备份表空间

只要实例启动并处于加载状态,不论数据库是否打开,都可以在rman中对表空间进行备份,而且不需要像手动备份那样先'ALTERTABLESPACE...BEGINBACKUP'。

例如:

RMAN>backuptablespacejweb;

启动backup于26-6月-07

使用通道ORA_DISK_1

通道ORA_DISK_1:

正在启动full数据文件备份集

通道ORA_DISK_1:

正在指定备份集中的数据文件

输入数据文件fno=00010name=F:

\ORAHOME1\ORADATA\JSSWEB\JWEB.ORA

通道ORA_DISK_1:

正在启动段1于26-6月-07

通道ORA_DISK_1:

已完成段1于26-6月-07

段handle=F:

\ORAHOME1\DATABASE\0JIM0BBV_1_1comment=NONE

通道ORA_DISK_1:

备份集已完成,经过时间:

00:

00:

15

完成backup于26-6月-07

启动ControlFileandSPFILEAutobackup于26-6月-07

段handle=D:

\BACKUP\C-3391142503-20070704-00comment=NONE

完成ControlFilean

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

当前位置:首页 > 小学教育 > 英语

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

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