Oracle数据库备份与恢复之四RMAN备份与恢复管理器Word下载.docx
《Oracle数据库备份与恢复之四RMAN备份与恢复管理器Word下载.docx》由会员分享,可在线阅读,更多相关《Oracle数据库备份与恢复之四RMAN备份与恢复管理器Word下载.docx(42页珍藏版)》请在冰豆网上搜索。
![Oracle数据库备份与恢复之四RMAN备份与恢复管理器Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/10/883b8206-b78e-430b-b8d2-c7dd6d17de0f/883b8206-b78e-430b-b8d2-c7dd6d17de0f1.gif)
的Script.CONTROL_FILE_RECORD_KEEP_TIME
(default=7):
控件文件中
信息保存的最短时间。
使用恢复目录的优势:
可以存储脚本,记载较长时间的备份恢复操作。
RMANRepository:
(RMAN
恢复目录数据库)
存放recoverycatalog(恢复目录)的数据库。
建议为恢复目录数据库创建一个单独的数据库。
MML:
(媒体管理库)
MediaManagementLayer(MML)是第三方工具或软件,用于管理对磁带的读写与文件的跟踪管理。
如果你想直接通过
备份到磁带上,就必须配置媒体管理层,媒体管理层的工具如备份软件可以调用RMAN来进行备份与恢复。
2.概念述语
BackupSets(备份集合)
备份集合的特性:
包括一个或多个数据文件或归档日志,以oracle专有的格式保存,有一个完全的所有的备份片集合构成,构成一个完全备份或增量备份。
BackupPieces(备份片)
一个备份集由若干个备份片组成。
每个备份片是一个单独的输出文件。
一个备份片的大小是有限制的;
如果没有大小的限制,
备份集就只由一个备份片构成。
备份片的大小不能大于使用的文件系统所支持的文件长度的最大值。
ImageCopies镜像备份
镜像备份是独立文件(数据文件、归档日志、控制文件)的备份。
它很类似操作系统级的文件备份。
它不是备份集或备份片,也没有被压缩。
FullbackupSets全备份集合
全备份是一个或多个数据文件中使用过的数据块的的备份。
没有使用过的数据块是不被备份的,也就是说,oracle
进行备份集合的压缩。
Incrementalbackupsets增量备份集合
增量备份是指备份一个或多个数据文件的自从上一次同一级别的或更低级别的备份以来被修改过的数据块。
与完全备份相同,增量备份也进行压缩。
Filemultiplexing
多个数据文件可以在一个备份集中。
Recoverycatalogresyncing
恢复目录同步
使用恢复管理器执行backup、copy、restore或者switch命令时,恢复目录自动进行更新,但是有关日志与归档日志信息没有自动记入恢复目录。
需要进行目录同步。
使用resynccatalog命令进行同步。
RMAN>
resynccatalog;
Incarnation
对应物
在不完全恢复完成之后,通常需要使用
resetlogs
选项来打开数据库。
resetlogs
表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始。
数据库的逻辑生存期也被称为一个对应物(incarnation)。
每次使用
选项来打开数据库后都会创建一个新的数据库对应物。
4.1.2RMAN的使用:
命令行接口与脚本
数据库状态:
RMAN恢复目录数据库:
必须OPEN目标数据库:
根据不同情况,必须MOUNT或OPEN
使用不带恢复目录的RMAN
设置目标数据库的
ORACLE_SID
,执行:
$rmannocatalogRMAN>
connecttargetRMAN>
connecttargetuser/pwd>
@db
2.
使用带恢复目录的RMAN
$rmancatalogrman/rmanRMAN>
connecttarget
//连接本地数据库作为目标数据库RMAN>
connecttargetuser/pwd>
@db//连接远程数据库或$rmancatalogrman/rmantargetuser/pwd>
3.
命令行接口
1、单个执行
backupdatabase;
2、运行一个命令块
RUN{2>
copydatafile10to3>
'
/oracle/prod/backup/prod_10.dbf'
;
4>
}
3、运行存储在恢复目录中的脚本:
RUN
{EXECUTESCRIPTbackup_whole_db};
4、运行外部脚本:
$rmancatalogrman/rmantarget/@backup_db.rman
$rmancmdfile=backup.rmanmsglog=backup.log
@backup_db.rman]
{@backup_db.rman}
如果在cron中执行,注意在脚本中设置正确的环境变量,例:
#setenvexportORACLE_HOME=/opt/oracle/product/9.2
exportORACLE_SID=test
exportNLS_LANG="
AMERICAN_AMERICA.zhs16gbk"
exportPATH=$PATH:
$ORACLE_HOME/binrmancmdfile=backup_db.rman
4.
使用脚本
创建或者取代脚本:
createscriptalloc_disk{
2>
#Allocatesonedisk
3>
allocatechanneldev1typedisk;
4>
setlimitchanneldev1kbytes2097150maxopenfiles32readrate200;
5>
}RMAN>
replacescriptrel_disk{2>
#releasesdisk3>
releasechanneldev1;
5>
}
删除脚本:
RMAN>
DELETESCRIPTLevel0Backup;
查看脚本:
PRINTSCRIPTLevel0Backup;
运行脚本:
RUN{EXECUTESCRIPTbackup_whole_db};
5.
运行OS命令
RMAN支持通过执行host命令暂时退出RMAN的命令提示符而进入到操作系统的命令环境。
6.
执行SQL语句
在
的命令提示符后输入
SQL
命令,然后在一对单引号(双引号亦可)中输入要执行的
语句,例如:
SQL'
ALTERSYSTEMCHECKPOINT'
对于SELECT语句,无法得到结果。
可以先执行host再用SQLPLUS.
4.2RMAN的配置
4.2.1
建立RecoveryCatalog恢复目录
(1)
在目录数据库中创建恢复目录所用表空间:
SQL>
createtablespacerman_tsdatafile'
/xxx/rman_ts.dbf'
size20M;
(2)
在目录数据库中创建RMAN
用户并授权:
create
user
rman
identified
by
default
tablespace
rman_ts
temporarytablespacetempquotaunlimitedonrman_ts;
SQL>
grantconnect,resource,recovery_catalog_ownertorman;
(3)
在目录数据库中创建恢复目录
$rmancatalogrman/rmanRMAN>
createcatalogtablespacerman_ts;
(4)
登记目标数据库:
一个恢复目录可以注册多个目标数据库,注册目标数据库的命令为:
$RMANcatalogrman/rmantargetuser/pwd@rcdb;
registerdatabase;
4.2.2
查看RMAN的默认设置SHOW命令
必须连接目标数据库RMAN>
showall
showchannel;
//
通道分配RMAN>
showdevicetype;
//IO设备类型
showretentionpolicy;
保存策略
showdatafilebackupcopies;
多个备份的拷贝数目
showmaxsetsize;
备份集大小的最大值
showexclude;
不必备份的表空间
showbackupoptimization;
备份的优化
4.2.3
配置RMAN的默认设置
配置备份集文件的格式
(format)
configurechanneldevicetypediskformat'
/u05/oracle/rmanback/%U'
备份文件可以自定义各种各样的格式,如下%c
备份片的拷贝数%d
数据库名称%D
位于该月中的第几天
(DD)
%M
位于该年中的第几月
(MM)
%F
一个基于
DBID
唯一的名称,这个格式的形式为
c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII
为该数据库的DBID,YYYYMMDD
为日期,QQ
是一个
1-256
的
序列%n
数据库名称,向右填补到最大八个字符%u
一个八个字符的名称代表备份集与创建时间%p
该备份集中的备份片号,从1
开始到创建的文件数%U
一个唯一的文件名,代表%u_%p_%c%s
备份集的号%t
备份集时间戳%T
年月日格式(YYYYMMDD)
配置默认IO设备类型
(devicetype)
IO
设备类型可以是磁盘或者磁带,在默认的情况下是磁盘,可以通过如下的命令进行重新配置。
configuredefaultdevicetypetodisk;
configuredefaultdevicetypetosbt;
注意,如果换了一种IO
设备,相应的配置也需要做修改,如RMAN>
configuredevicetypesbtparallelism2;
3.
配置自动分配的通道
(Chanel)
configurechanneldevicetypediskformat
/U01/ORACLE/BACKUP/%U在运行块中,手工指定通道分配,这样的话,将取代默认的通道分配。
Run{allocatechannelcqtypediskformat='
/u01/backup/%u.bak'
…
通道的一些特性:
读的速率限制
Allocatechannel……rate=integer最大备份片大小限制
Allocatechannel……maxpiecesize=integer最大并发打开文件数(默认16)
Allocatechannel……maxopenfile=integer
配置默认的保存策略
(RetentionPolicy)
保存策略是管理备份与副本有效期或者是否有效的一种方法。
恢复数据库的时候Oracle
不考虑失效的备份。
我们可以定义两种保存策略:
恢复窗口备份保存策略(recoverywindow
backup
retentionpolicy
)和冗余备份保存策略(redundancybackupretentionpolicy
)
备份策略保持
分为两个保持策略:
一个是时间策略,决定至少有一个备份能恢复到指定的日期
一个冗余策略,规定至少有几个冗余的备份。
恢复窗口备份保存策略这种保存策略类型的使用基于数据库可能恢复到的最早的日期。
例如,假设今天是星期一,此前存在
3
个备份。
第一个备份在昨天生成的,第二个备份是上星期四生成的,而最后一个备份是
10
天前备份的。
假如恢复窗口是
7
天,那么昨天和上星期四的备份是有效备份,而
天前的备份会成为废弃备份。
下面的命令将恢复窗口配置为7天:
configureretentionpolicytorecoverywindowof7days;
冗余备份保存策略使用这种保存策略,RMAN
会从最新备份开是保留
N
个数据备份,其余的废弃。
例如,如果有四个备份,而冗余数是
3,那么最早的那个备份将被废弃。
下面的命令将备份策略设置为
3:
configureretentionpolicytoredundancy3;
设置NONE可以把使备份保持策略失效,Clear
将恢复默认的保持策略RMAN>
configureretentionpolicytonone;
例:
保证至少有一个备份能恢复到
Sysdate-5
的时间点上,之前的备份将标记为ObsoleteRMAN>
configureretentionpolicytorecoverywindowof5days;
至少需要有三个冗余的备份存在,如果多余三个备份以上的备份将标记为冗余RMAN>
configureretentionpolicytoredundancy5;
配置多个备份的拷贝数目(backupcopies)
如果觉得单个备份集不放心,可以设置多个备份集的拷贝,如:
configuredatafilebackupcopiesfordevicetypediskto2;
configurearchivelogbackupcopiesfordevicetypediskto2;
如果指定了多个拷贝,可以在通道配置或者备份配置中指定多个拷贝地点:
/u01/backup/%U'
,'
/u02/backup/%U'
backupdatafilenformat'
设置并行备份(ARALLELISM)
RMAN支持并行备份与恢复,也可以在配置中指定默认的并行程度。
如:
configuredevicetypediskparallelism4;
指定在以后的备份与恢复中,将采用并行度为4,同时开启4个通道进行备份与恢复,当然也可以在RUN的运行块中手工分配多个通道来决定备份与恢复的并行程度。
并行的数目决定了开启通道的个数。
如果指定了通道配置,将采用指定的通道,如果没有指定通道,将采用默认通道配置。
还可以在BACKUP命令中使用指定FILESPERSET或者指定(datafile
1,4,5
channelc1tag=DF1)(datafile2,3,6channelc2tag=DF2)
7.
设置控制文件自动备份
(autobackupon)
通过如下的命令,可以设置控制文件的自动备份RMAN>
configurecontrolfileautobackupon;
对于没有恢复目录的备份策略来说,这个特性是特别有效的,控制文件的自动备份发生在任何backup
或者copy
命令之后,或者任何数据库的结构改变之后。
可以用如下的配置指定控制文件的备份路径与格式RMAN>
configurecontrolfileautobackupformatfortypediskto'
%f'
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,如下配置:
configuresnapshotcontrolfilenameto
/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f'
8.
设置备份优化选项
(optimization)
可以在配置中设置备份的优化,如RMAN>
configurebackupoptimizationon;
如果优化设置打开,将对备份的数据文件、归档日志或备份集运行一个优化算法。
4.2.4RMAN
会话的设置
set
命令与configure命令很相似,但是set命令设置不是永久的。
set
命令定义只应用于当前RMAN会话的设置。
可以用于RUN代码之外的命令有:
setechoon|off
显示或关闭
RMAN显示setDBIDdbidn
指定一个数据库的数据库标识符。
下面的set命令只能在RUN代码中使用:
setnewname:
用于TSPITR或者数据库复制操作,指定新的数据库文件名,将数据库移动到新的系统中并且文件名不同的时候可以用此命令。
setmaxcorruptfordatafile:
用于定义
RMAN操作失败之前允许的数据块讹误的数量setarchivelogdestination:
可以修改存储归档的重做日志
archive_log_dest_1的目的地。
set命令和until
子句:
可以定义数据库时间点恢复操作所使用的具体的时间点、SCN或者日志序列号,例:
setuntiltime"
to_date('
2005/08/0113:
00:
00'
,'
yyyy/mm/ddhh24:
mi:
ss'
)"
setbackupcopies:
使用该命令可以定义为备份集的每个备份片创建的镜像副本数。
例:
RUN{
setmaxcorruptfordatafile3to10;
setbackupcopies=2;
4.3Copy镜像拷贝与恢复
Copy镜像拷贝命令可以创建数据库数据文件、归档重做日志或者控制文件的精确副本。
副本与这些文件的区别仅在于名称和(或)位置的区别。
功能相当于用户管理的备份恢复中的热备份。
备份副本的好处是恢复比较快,恢复时可以不用拷贝,指定新位置即可。
Copy镜像拷贝至少要在mount
状态下运行。
Copy镜像拷贝可作为增量备份的
Level0
Oracle10g开始,允许使用单条命令"
backupascopy"
进行数据库拷贝。
4.3.1
备份
生成数据文件副本:
copydatafile3to'
d:
\backup\datafilecopy\users01.dbf.bak'
copydatafile'
\oracle\oradata\ora9i\users01.dbf'
to
\backup\datafilecopy\users01.dbf.bak'
生成控制文件副本:
copyc