RMAN深入学习.docx
- 文档编号:12311912
- 上传时间:2023-04-18
- 格式:DOCX
- 页数:18
- 大小:24.33KB
RMAN深入学习.docx
《RMAN深入学习.docx》由会员分享,可在线阅读,更多相关《RMAN深入学习.docx(18页珍藏版)》请在冰豆网上搜索。
RMAN深入学习
前言:
网上有不少朋友对RMAN的用法和概念提出了疑问。
这篇文章主要介绍RMAN的常用方法,其中包含了作者一些自己的经验,里面的实验也基本全在WIN2K和ORACLE8.1.6环境下测试成功(因为这个环境比较容易实现)。
本文借鉴了网上一些高手的相关文章,希望大侠们不要见怪,此处一并谢过。
想真正熟练掌握RMAN,必须经过较长时间的实践磨练才可以,尤其需要在工程中获得宝贵的故障解决经验。
本人水平有限,还望众多高手指出不足之处,不胜感谢!
您可以在非商业用途范围内任意传播此文档,但请不要更改里面的内容。
作者:
Sandybillows
MSN:
shatao2000@
Sandybillows
2003年8月于南京
1.WHATISRMAN?
什么是RMAN?
4
2.TERMINOLOGY专业词汇解释4
2.1.BACKUPSETS备份集合4
2.2.BACKUPPIECES备份片4
2.3.IMAGECOPIES镜像备份4
2.4.FULLBACKUPSETS全备份集合4
2.5.INCREMENTALBACKUPSETS增量备份集合4
2.6.FILEMULTIPLEXING5
2.7.RECOVERYCATALOGRESYNCING恢复目录同步5
3.THERECOVERYCATALOG恢复目录5
3.1.恢复目录的概念5
3.2.建立恢复目录5
3.3.使用恢复目录的优势6
4.STARTINGRMAN启动RMAN6
4.1.使用不带恢复目录的RMAN6
4.2.使用带恢复目录的RMAN7
4.3.使用RMAN7
5.注册或者注销目标数据库7
5.1.注册目标数据库7
5.2.注销目标数据库8
6.将已有的备份操作9
6.1.加入目录数据库9
6.2.从目录数据库中删除9
7.在非归档模式下备份10
7.1.数据库完全备份的例子10
7.2.备份表空间的例子11
7.3.备份单独数据文件11
7.4.备份数据文件12
7.5.备份控制文件12
8.归档模式下的备份12
8.1.BACKINGUPARCHIVEDLOGS备份归档日志12
8.2.BACKINGUPTHEONLINELOGS备份联机日志13
9.INCREMENTALBACKUPS增量备份14
9.1.LEVEL0——增量备份策略的基础14
9.2.使用增量备份的案例14
10.RECOVERY恢复15
10.1.DATABASEOPEN,DATAFILEDELETED数据库打开时,文件被删除15
10.2.COMPLETERESTORE(LOSTONLINEREDO)ANDROLLFORWARD-DATABASECLOSED完全还原(丢失联机日志)并且前滚-数据库关闭15
10.3.RESTOREOFASUBSETOFDATAFILES,COMPLETERECOVERY还原数据文件的子集,完全恢复16
11.SCRIPTS脚本16
12.CORRUPTIONDETECTION17
13.CHANNELS通道17
14.REPORT&LISTCOMMANDS18
14.1.LIST18
14.2.REPORT18
15.小提示19
1.WhatisRMAN?
什么是RMAN?
RMAN可以用来备份和还原数据库文件、归档日志和控制文件。
它也可以用来执行完全或不完全的数据库恢复。
注意:
RMAN不能用于备份初始化参数文件和口令文件。
RMAN启动数据库上的Oracle服务器进程来进行备份或还原。
备份、还原、恢复是由这些进程驱动的。
RMAN可以由OEM的BackupManagerGUI来控制,但在本文章里不作重点讨论。
2.Terminology专业词汇解释
2.1.Backupsets备份集合
备份集合有下面的特性:
包括一个或多个数据文件或归档日志
以oracle专有的格式保存
有一个完全的所有的备份片集合构成
构成一个完全备份或增量备份
2.2.Backuppieces备份片
一个备份集由若干个备份片组成。
每个备份片是一个单独的输出文件。
一个备份片的大小是有限制的;如果没有大小的限制,备份集就只由一个备份片构成。
备份片的大小不能大于使用的文件系统所支持的文件长度的最大值。
2.3.Imagecopies镜像备份
镜像备份是独立文件(数据文件、归档日志、控制文件)的备份。
它很类似操作系统级的文件备份。
它不是备份集或备份片,也没有被压缩。
2.4.Fullbackupsets全备份集合
全备份是一个或多个数据文件中使用过的数据块的的备份。
没有使用过的数据块是不被备份的,也就是说,oracle进行备份集合的压缩。
2.5.Incrementalbackupsets增量备份集合
增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以来被修改过的数据块。
与完全备份相同,增量备份也进行压缩。
2.6.Filemultiplexing
不同的多个数据文件的数据块可以混合备份在一个备份集中。
2.7.Recoverycatalogresyncing恢复目录同步
使用恢复管理器执行backup、copy、restore或者switch命令时,恢复目录自动进行更新,但是有关日志与归档日志信息没有自动记入恢复目录。
需要进行目录同步。
使用resynccatalog命令进行同步。
RMAN>resynccatalog;
RMAN-03022:
正在编译命令:
resync
RMAN-03023:
正在执行命令:
resync
RMAN-08002:
正在启动全部恢复目录的resync
RMAN-08004:
完成全部resync
3.Therecoverycatalog恢复目录
3.1.恢复目录的概念
恢复目录是由RMAN使用、维护的用来放置备份信息的仓库。
RMAN利用恢复目录记载的信息去判断如何执行需要的备份恢复操作。
恢复目录可以存在于ORACLE数据库的计划中。
虽然恢复目录可以用来备份多个数据库,建议为恢复目录数据库创建一个单独的数据库。
恢复目录数据库不能使用恢复目录备份自身。
3.2.建立恢复目录
第一步,在目录数据库中创建恢复目录所用表空间:
SQL>createtablespacerman_tsdatafile'd:
\oracle\oradata\rman\rman_ts.dbf'size20M;
表空间已创建。
第二步,在目录数据库中创建RMAN用户并授权:
SQL>createuserrmanidentifiedbyrmandefaulttablespacerman_tstemporarytablespacetempquotaunlimitedonrman_ts;
用户已创建。
SQL>grantrecovery_catalog_ownertorman;
授权成功。
SQL>grantconnect,resourcetorman;
授权成功。
第三步,在目录数据库中创建恢复目录
C:
\>rmancatalogrman/rman
恢复管理器:
版本8.1.6.0.0-Production
RMAN-06008:
连接到恢复目录数据库
RMAN-06428:
未安装恢复目录
RMAN>createcatalogtablespacerman_ts;
RMAN-06431:
恢复目录已创建
注意:
虽然使用RMAN不一定必需恢复目录,但是推荐使用。
因为恢复目录记载的信息大部分可以通过控制文件来记载,RMAN在恢复数据库时使用这些信息。
不使用恢复目录将会对备份恢复操作有限制。
3.3.使用恢复目录的优势
可以存储脚本;
记载较长时间的备份恢复操作;
4.StartingRMAN启动RMAN
RMAN为交互式命令行处理界面,也可以从企业管理器中运行。
为了使用下面的实例,先检查环境符合:
thetargetdatabaseiscalled"his"andhasthesameTNSalias
userrmanhasbeengranted"recovery_catalog_owner"privileges
目标数据库的连接用户为internal帐号,或者以其他SYSDBA类型帐号连接
therecoverycatalogdatabaseiscalled"rman"andhasthesameTNSalias
theschemacontainingtherecoverycatalogis"rman"(samepassword)
在使用RMAN前,设置NLS_DATE_FORMAT和NLS_LANG环境变量,很多RMANLIST命令的输出结果是与日期时间相关的,这点在用户希望执行以时间为基准的恢复工作也很重要。
下例是环境变量的示范:
NLS_LANG=SIMPLIFIEDCHINESE_CHINA.ZHS16GBK
NLS_DATE_FORMAT=DD-MON-YYYYHH24:
MI:
SS
为了保证RMAN使用时能连接恢复目录,恢复目录数据库必须打开,目标数据库至少要STARTED(unmount),否则RMAN会返回一个错误,目标数据库必须置于归档模式下。
4.1.使用不带恢复目录的RMAN
设置目标数据库的ORACLE_SID,执行:
%rmannocatalog
RMAN>connecttarget
RMAN>connecttargetinternal/
4.2.使用带恢复目录的RMAN
%rmanrman_tsrman/rman@rman
RMAN>connecttarget
%rmanrman_tsrman/rman@rmantargetinternal/
4.3.使用RMAN
一旦连接到目标数据库,可以通过交互界面或者事先存储的脚本执行指定RMAN命令,
下面是一个使用RMAN交互界面的实例:
RMAN>resynccatalog;
RMAN-03022:
正在编译命令:
resync
RMAN-03023:
正在执行命令:
resync
RMAN-08002:
正在启动全部恢复目录的resync
RMAN-08004:
完成全部resync
使用脚本的实例:
RMAN>executescriptalloc_1_disk;
创建或者替代存储的脚本:
RMAN>replacescriptalloc_1_disk{
2>allocatechanneld1typedisk;
3>}
5.注册或者注销目标数据库
5.1.注册目标数据库
数据库状态:
恢复目录状态:
打开
目标数据库:
加载或者打开
目标数据库在第一次使用RMAN之前必须在恢复目录中注册:
第一步,启动恢复管理器,并且连接目标数据库:
C:
\>rmantargetinternal/oracle@hiscatalogrman/rman@rman
恢复管理器:
版本8.1.6.0.0-Production
RMAN-06005:
连接到目标数据库:
HIS(DBID=3021445076)
RMAN-06008:
连接到恢复目录数据库
第二步,注册数据库:
RMAN>registerdatabase;
RMAN-03022:
正在编译命令:
register
RMAN-03023:
正在执行命令:
register
RMAN-08006:
注册在恢复目录中的数据库
RMAN-03023:
正在执行命令:
fullresync
RMAN-08002:
正在启动全部恢复目录的resync
RMAN-08004:
完成全部resync
5.2.注销目标数据库
RMAN提供了一个注销工具,叫DBMS_RCVCAT工具包,请注意一旦注销了该目标数据库,就不可以使用恢复目录中含有的备份集来恢复数据库了。
为了能注销数据库,需要获得数据库的标识码(DB_ID)和数据库键值(DB_KEY)。
其中连接目标数据库时将会获得DB_ID。
C:
\>rmantargetinternal/oracle@hiscatalogrman/rman@rman
恢复管理器:
版本8.1.6.0.0-Production
RMAN-06005:
连接到目标数据库:
HIS(DBID=3021445076)
RMAN-06008:
连接到恢复目录数据库
其中DBID=3021445076,利用DBID=3021445076查询数据库键值码:
连接到目标数据库,查询db表:
SQL>select*fromdb;
DB_KEYDB_IDCURR_DBINC_KEY
----------------------------------
130214450762
获得DB_KEY=1,这样,该目标数据库DB_KEY=1,DBID=3021445076,利用两个值使用DBMS_RCVCAT工具包就可以注销数据库:
SQL>executedbms_rcvcat.unregisterdatabase(1,3021445076);
PL/SQL过程已成功完成。
至此,注销数据库操作完成。
6.将已有的备份操作
6.1.加入目录数据库
数据库状态:
恢复目录:
打开
目标数据库:
加载或者打开
如果存在8.x版本以前创建的备份数据想注册到目标数据库,可以采用如下手工方式加入到恢复目录中,
RMAN>catalogdatafilecopy'/oracle/..../system01.dbf';
使用如下命令显示恢复目录中包含的文件
RMAN>listcopyofdatabase;
6.2.从目录数据库中删除
第一步:
查看备份信息:
RMAN>listbackup;
RMAN-03022:
正在编译命令:
list
备份集列表
关键字Recid标记LV集合标记集合计数完成时间
-----------------------------------------------------------------------
110425013644550501364446206-8月-03
备份段列表
关键字Pc#Cp#状态完成时间段名
----------------------------------------------------------------------
110611AVAILABLE06-8月-03D:
\ORACLE\ORA81\DATABASE\
02EU4DMU_1_1
数据文件包括列表
文件名称LV类型检查点SCN检查点时间
----------------------------------------------------------------------
3D:
\ORACLE\ORADATA\HIS\USERS01.DBF0Full16005206-8月-03
备份集的关键字为1104。
第二步:
定义delete通道:
RMAN>allocatechannelfordeletetypedisk;
RMAN-03022:
正在编译命令:
allocate
RMAN-03023:
正在执行命令:
allocate
RMAN-08030:
分配的通道:
delete
RMAN-08500:
通道delete:
sid=19devtype=DISK
第三步:
删除backupset备份集
RMAN>changebackupset1104delete;
RMAN-03022:
正在编译命令:
change
RMAN-08073:
已删除备份段
RMAN-08517:
备份段handle=D:
\ORACLE\ORA81\DATABASE\02EU4DMU_1_1recid=2stamp=50
1364447
RMAN-03023:
正在执行命令:
partialresync
RMAN-08003:
启动部分恢复目录的resync
RMAN-08005:
完成部分resync
注意:
部分执行删除备份集、备份片或者维护恢复目录的命令,需要先指定通道,如:
RMAN>allocatechannelfordeletetypedisk;
或者RMAN>allocatechannelformaintenancetypedisk;
7.在非归档模式下备份
数据库状态:
恢复目录:
打开
目标数据库:
例程启动或者数据库加载
恢复目录数据库需要打开,目标数据库必须启动(或者加载)。
因为目标数据库不在归档模式下,所以当进行备份恢复操作的时候数据库无法打开。
不可以将表空间置于热备份模式上进行等同于文件系统级的拷贝,如果在非归档模式,数据库打开的状态下不能进行数据文件的备份。
7.1.数据库完全备份
RMAN>run{
2>#backupthecompletedatabasetodisk
3>allocatechanneldev1typedisk;
4>backup
5>full
6>tagfull_db_backup
7>format'/oracle/backups/db_t%t_s%s_p%p'
8>(database);
9>releasechanneldev1;
10>}
行#
2:
表明该行为注释行(#是注释符)
3&9:
Seesection15–Channels通道定义
5:
Fullbackup(defaultiffullorincrementalnotspecified)完全备份模式(缺省模式)
6:
Meaningfulstring(<=30chars)(备份集标识,<=30个字符)
7:
Filenametouseforbackuppieces,includingsubstitutionvariables.备份片使用的文件名,可以包含代替变量。
8:
Indicatesallfilesincludingcontrolfilesaretobebackedup表明备份所有数据文件包括控制文件
通过下面的命令显示恢复目录中记载的备份集信息:
RMAN>listbackupsetofdatabase;
7.2.备份表空间
RMAN>run{
2>allocatechanneldev1typedisk;
3>backup
4>tagtbs_users_read_only
5>format'/oracle/backups/tbs_users_t%t_s%s'
6>(tablespaceusers)
7>}
使用下列命令来显示恢复目录中该表的备份信息:
RMAN>listbackupsetoftablespaceusers;
假设USERS表空间在备份后被置为READONLY表空间,以后的全库备份就可以不用备份该表空间,为了达到这个目的,可以在以后的备份中指定'skipreadonly'。
注意,目标数据库不需要一定打开,只要加载就可以,因为表空间的信息存储在控制文件中。
7.3.备份单独数据文件
RMAN>run{
2>allocatechanneldev1type'SBT_TAPE';
3>backup
4>format'%d_%u'
5>(datafile'/oracle/dbs/sysbigdb.dbf');
6>releasechanneldev1;
7>}
行#
2:
使用MML(mediamanagerlayer)分配磁带驱动器,必须指定类型为SBT_TAPE;
注意因为没有指定标识,所以标识为空;
使用下面的命令显示恢复目录中备份的表空间:
RMAN>listbackupsetofdatafile1;
7.4.备份数据文件
RMAN>run{
2>allocatechanneldev1type'SBT_TAPE';
3>copydatafile'/oracle/dbs/temp.dbf'to'/oracle/backups/temp.dbf';
4>releasechanneldev1;
5>}
使用下面的命令显示恢复目录中的文件拷贝:
RMAN>listcopyofdatafile'/oracle/dbs/temp.dbf';
拷贝数据文件和备份数据文件是不一样的,数据文件拷贝是一个该文件的镜像。
文件的备份产生一个备份集。
7.5.备份控制文件
RMAN>run{
2>allocatechanneldev1type'SBT_TAPE';
3>backup
4>format'cf_t%t_s%s_p%p'
5>tagcf_monday_night
6>(currentcontrolfile);
7>releasechanneldev1;
8>}
注意:
数据库完全备份将自动备份控制文件。
8.归档模式下的备份
数据库状态:
恢复目录:
打开
目标数据库:
例程启动,数据库加载或者打开
备份操作使用的命令与非归档模式下基本一样。
8.1.Backinguparchivedlogs备份归档日志
下面的脚本备份归档日志:
RMAN>run{
2>allocatechanneldev1typedisk;
3>backup
4>format'/oracle/backups/log_t%t_s%s_p%p'
5>(archivelogall);
6>releasechanneldev1;
7>}
下面的脚本归档日志从#90to100:
RMAN>run{
2>allocatechanneldev1typedisk;
3>backup
4>format'/oracle/backups/log_t%t_s%s_p%p'
5>(archivelogfromlogseq=90untillogseq=100thread1);
6>releasechanneldev1;
7>}
下面的脚本备份在24小时内产生
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RMAN 深入 学习