Rman备份步骤.docx
《Rman备份步骤.docx》由会员分享,可在线阅读,更多相关《Rman备份步骤.docx(12页珍藏版)》请在冰豆网上搜索。
Rman备份步骤
1.恢复管理器(RecoveryManager,RMAN)是一个与操作系统无关的数据库备份工具,可以跨越不同的操作系统进行数据库备份。
RMAN必须运行在一个数据库上。
与常用的数据库备份、逻辑数据库备份不同,RMAN使用数据库对数据库进行备份的原理。
在RMAN中,可以使用COPY命令将数据库文件复制到磁盘或磁带上,也可以用BACKUP命令对整个数据库、一个指定的表空间、控制文件、日志文件进行备份。
上面写的哪些东西估计也没有什么用下面说说怎么用那些东西
首先要创建恢复目录(recoberycatalog)只有建立了目录,rman才能重目录数据库文件中工作呀
1.先要创建恢复目录数据库可以通过企业管理器建立
包括系统表空间,rbs表空间,临时表空间,日志文件设置,catalog表空间,2创建rman用户
SQL>Createuserrmanidentifieybyrmandefaulttablespacecattbstemporarytablespacetemp;
SQL>Grantconnect,resourcetorman;
SQL>Grantrecovery_catalog_ownertorman;
3创建恢复目录
$rmancatalog
RMAN>createcatalog;创建个目录很简单哈哈
然后开始配置rman通道
先说什么是通道RMAN在执行数据库备份与恢复操作时,都要使用操作系统进程,启动操作系统进程是通过分配通道来实现的,每分配一个通道RMAN启动一个服务器进程。
手动分配通道
Run{Allocatechannelora_sbt_1devicetypesbtrate200k;#rate限定通道的传输速率/秒
Allocatechannelora_sbt_2devicetypesbtrate500k;#ora_sbt_2通道名可任意取Backup
(tablespacesystem,userschannelora_sbt_1)
(tablespaceexamplechannelora_sbt_2);}
自动通道配置
在RUN外部使用backup,restore,delete命令,或在RUN中使用这些命令但未定义通道时RMAN自动使用自动通道配置。
例:
backuptablespaceusers;
run{restoretablespaceexamples;}
定义自动通道语法如下:
Configuredevicetypesbt/diskparallelismn
Configuredefaultdevicetypetodisk/sbt
Configurechanneldevicetype
Configurechannelndevicetype
再说几个例子看看怎么用这些东西
例:
分配3个磁盘通道2个磁带通道
RMAN>Configuredevicetypediskparallelism3;
RMAN>configuredevicetypesbtparallelism2;
例:
指定通道的默认设备
RMAN>configuredefaultdevicetypetodisk;磁盘设备或
RMAN>configuredefaultdevicetypetosbt;磁带设备
例:
自动通道的参数配置
RMAN>Configurechanneldevicetypediskformat=’/backup/%U’maxpiecesize200M;RMAN>Configurechanneldevicetypesbtformat=’/store/%U.dbf’maxpiecesize
200M;
Format参数指定备份集的存储目录及格式,maxpiecesize指定每个备份集的最大字节数。
也可指定某一个通道的配置
RMAN>Configurechannel2devicetypesbtformat=’/%s_%t.dbf’maxpiecesize
200M
上面还有很多的%哪些是一些参数有个表给大家
%c表示备份片中的文件备份片号。
%d指定数据库名
%D以DD格式显示日
%M以MM格式显示月份
%Y以YYYY格式显示年度
%F结全数据库标识DBID、日、月、年及序列构成的惟一的自动产生的名称
%n字符串在数据库名右边拉加若干字母构成8个字符长度的字符串,如ora9i自动形成为ora9iXXX
%p文件备份片号,在备份集中的备份文件片编码,从1开始每次增加1。
%s备份集号,此数字是控制文件中随备份集增加的一个计数器,从1开始。
%t指定备份集的时间戳,是一个4字节值的秒数值。
%t与%s结全构成惟一的备份集名称
%T指定年、月、日,格式为YYYYMMDD
%u指定备份集编码及备份集创建的时间构成的8个字符的文件名称
%U指定一个便于使用的由%u_%p_%c构成的确保不会重复的备份文件名称,RMAN默认使用%U格式
%%指定字符串‘%’,如%%Y表示为%Y
对了还有这么一个功能时这样的
Connect:
设置数据库实例,RMAN充许连接到多个不同的数据库实例上。
例:
定义三个通道分别连接3个数据库实例。
Configurechannel1devicetypesbtconnect=’sys/passwc@prod1’;
Configurechannel2devicetypesbtconnect=’sys/passwc@prod2’;
Configurechannel3devicetypesbtconnect=’sys/passwc@prod3’;
rman备份数据库
对oracle来说备份数据库就是备份表空间里的数据物理文件也就是数据文件(datafile)控制文件(controlfile)
日志文件(logfile)
1)查看数据文件:
SQL>select*fromv$datafile;
2)查看控制文件:
SQL>select*fromv$controlfile;
3)查看日志文件:
SQL>select*fromv$logfile。
个人感觉备份数据和控制就好了那个日志文件没有用过不知道有什么大用个人意见仅供参考
备份也就是使用copy命令有两种办法一个时手动通道备份一个是自动通道备份命令
1.使用多个手工通道备份数据文件及控制文件
RMAN>run
{
Allocatechanneldev1devicetypedisk;
Allocatechanneldev2devicetypedisk;
Allocatechanneldev3devicetypedisk;
Copy
Datafile‘/oracle/oradata/ora9i/tools01.dbf’to/backup/tools01.dbf.cp’,
‘/oracle/oradata/ora9i/user01.dbf’to/backup/user01.dbf.cp’,
Currentcontrolfileto‘/backup/control01.ctl.cp’;
}
2.使用自动通道备份数据文件及控制文件
Copy
Datafile1to‘/backup/datafile_1.dbf.cp’,
Datafile2to‘/backup/datafile_2.dbf.cp’,
Datafile3to‘/backup/datafile_3.dbf.cp’,
Currentcontrolfileto‘/backup/control_cp.ctl’;
备份数据文件的备份文件及归档日志文件
Copy
Datafilecopy‘/backup/tools01.dbf.cp’to‘/disk2/backup/tools01.dbf.cp’,Archivelog‘/oracle/archive/ora9i_1.arc’to‘/backup/archive/ora9i_1.arc.cp’;
显示copy备份结果
RMAN>listcopy;显示使用copy命令备份的文件信息
RMAN>listcopyofdatabase;显示使用copy命令备份的数据库信息
RMAN>listcopyoftablespaceusres;显示使用copy命令备份的指定表空间信息RMAN>listcopylike‘/backup/%’;显示使用copy命令备份的指定备份文件信息下面付加一个backup命令详解
Backup命令语法:
RMAN>backup(
是备份增量级,可以取值为full或incremental,full表示全备份,incremental表示增量备份,共有4级增量
(1、2、3、4)0是全备份,归档日志不能增量备份。
是备份对象,包括以下方面:
Database全部数据库
Tablespace表空间
Datafile数据文件
Archivelog[all]归档日志文件
Currentcontrolfile控制文件
Datafilecopy[tag]使用copy命令备份的数据文件
Controlfilecopy使用copy命令备份的控制文件
Backupset[all]使用backup命令备份的文件
Tag标记
Format文件存储格式
Includecurrentcontrolfile备份控制文件
Filesperset每个备份集所包含的文件
Channel指定备份通道
Delete[all]input备份结束后是否删除归档日志
Maxsetsize备份集的最大尺寸
Skip[offline、readonly、inaccessible]可以选择备份条件,可不备份特殊属性的表空间
rman恢复数据库
1、restore命令
restore命令将copy及backup命令备份的文件复制到目标数据库,如果是copy命令备份的文件,则直接将文件复制到指定的目录,如果是备份集
则实施数据的恢复,恢复的结果自动产生目标数据库的物理结构文件。
语法:
RMAN>restore
Datafile、tablespace、database、controlfileto、archivelogall
Channel=channel_id
Parms=’channel_parms’
Frombackupset|datafilecopy
Untilclause
Fromtag=’tag_name’
Validate
Checklogical
Checkreadonly
2、recover命令
recover命令将restore命令恢复到目标数据库中的数据文件实施数据库同步恢复。
语法:
Recover
Datafile、tablespace、database
Deletearchivelog
Checkreadonly
Noredo
Checklogical
Fromtag
Archivelogtag=’tag_name’
下面举几个列子说明一下恢复备份通道都弄到一起具体怎么用,
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>}
还原数据库RMAN>run{
2>allocatechanneldev1typedisk;
3>restoredatabase;
4>sql"alterdatabasemount";
5>recoverdatabase;
6>sql"alterdatabaseopenresetlogs";
7>releasechanneldev1;
8>}
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>run{
2>allocatechanneldev1typedisk;
3>sql"altertablespaceusersofflineimmediate";
4>restoretablespaceusers;
5>recovertablespaceusers;
6>sql"altertablespaceusersonline";
7>releasechanneldev1;
8>}
3.备份数据文件RMAN>run{
2>allocatechanneldev1type"SBT_TAPE";
3>copydatafile"/oracle/dbs/temp.dbf"to"/oracle/backups/temp.dbf";
4>releasechanneldev1;
5>}
还原数据文件RMAN>run{
2>allocatechanneldev1typedisk;
3>sql"altertablespaceusersofflineimmediate";
4>restoredatafile?
/oracle/backups/temp.dbf?
;
5>recoverdatafile?
/oracle/backups/temp.dbf?
;
6>sql"altertablespaceusersonline";
7>releasechanneldev1;
8>}
另外备份联机日志联机日志不能用RMAN来备份,必须先将其归档。
为了实现这点,必须在RMAN中执行如下SQL语句:
RMAN>run{
2>allocatechanneldev1typedisk;
3>sql"altersystemarchivelogcurrent";
4>backup
5>format"/oracle/backups/log_t%t_s%s_p%p"
6>(archivelogfromtime"sysdate-1"alldeleteinput);
7>releasechanneldev1;
8>}
上面的脚本可以在执行完一个完整的联机数据库备份后执行,确保所有的重做日志可以将数据库恢复到一个一致性的状态。
注意:
不可以标识归档日志备份集。
rman总结
rman作为oracle备份最为方便的工具,以下就总结几条常用的命令,希望能方便大家,也希望可以申请授权:
1、首先使用rman前,需要建一个目录数据库
2、createtablespcermandatafile'/data/oradata/test/rman.dbf'size20m;
3、createuserrmanidentifiedbyrmandefaulttablespacermantemporarytablespacetemp;
4、grantconnect,resource,recovery_catalog_owertorman;
以上建库和建用户基本成功,接着:
1、rmantargetsys/manager@ora8catalogrman/rman@rman
2、registerdatabase(同步数据库,如果数据库做了alterdatabaseopenresetlogs,就需要resetdatabase,如果有库结构变化,就需要
resynccatalog)
3、createscriptback{
allocatechanneln1typedisk;
backupdatabase
format'/data/backup/ora8_%d_%s_%p';
releasechanneln1;}
4、如果是备份固定的文件或表空间也可以
createscriptback_file{
allocatechanneln1typedisk;
copy
datafil
e4to'/data/backup/users.dbf';
releasechanneln1;}
createscriptback_tablespace{
allocatechannelm1typedisk;
backuptablespaceusers
format'/data/backup/users_%t_%s_%p';
releasechanneln1;}
使用copy就是文件镜像保存,使用backup就是用oracle专有的格式保存,支持压缩等等,此处就不细说了!
5、执行备份
run{executescriptback;}
等等!
以上说了备份数据库,下面是恢复数据库
1、rmantargetsys/manager@ora8catalogrman/rman@rman
2、run{
allcotechanneln1typedisk;
sql"altertablespceusersofflineimmediate";
restoretablespaceusers;
recovertablespaceusers;
sql"altertablespaceuseronline";
releasechanneln1;}
3、run{
allocatechanneln1typedisk;
restoredatabase;
recoverdatabase;
sql"alterdatabaseopenresetlogs";
releasechanneln1;}
4、run{
allocatechanneln1typedisk;
restoredatafile4;
releasechanneln1;}
以上都是一些基本的rman操作,如有错误之处,希望被指出。