OracleRMAN命令详解.docx
- 文档编号:6085378
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:84
- 大小:1.51MB
OracleRMAN命令详解.docx
《OracleRMAN命令详解.docx》由会员分享,可在线阅读,更多相关《OracleRMAN命令详解.docx(84页珍藏版)》请在冰豆网上搜索。
OracleRMAN命令详解
RMAN命令详解
命令概述
当用RMAN执行各种操作时,它可以使用独立命令(StandaloneCommand)和作业命令(JobCommand)两种类型的命令。
独立命令是指可以单独执行的命令,在RMAN中,除了SET和SWITCH等少数命令外,大部分命令都是可以单独执行的。
如:
RMAN>backupformat‘/backup/nicholas/%d_%s.bak’tablespacesystem;
作业命令是指以成组方式执行的命令,这些命令组成一个run模块,以脚本的方式被执行。
当需要使用多个RMAN命令来完成某项任务时,应该以作业命令的方式执行。
在RMAN中除了少数几个命令外,大部分命令都能用来构成命令模块。
如:
RMAN>run{
2>allocatechannelc1typedisk;
3>backupformat'/backup/nicholas/%d_%s.bak'tablespacenicholas;
4>releasechannelc1;
5>}
在RMAN提示符下不仅可以运行RMAN命令,还可以执行DML语句。
当运行DML语句时,必须以关键字sql开始:
RMAN>sql“createtablespaceuser02
2>datafile‘’/opt/oracle/oradata/nicholas/users01.db’’size100m”
注意,如果SQL字符串包含单引号,则需要用两个单引号,并且SQL字符串需要用双引号引起来。
否则只需要将SQL用单引号引起来即可。
当使用恢复目录存放RMAN资料库时,可以在恢复目录中建立存储脚本,执行必须将它们放在run块内运行。
如:
RMAN>run{executescriptrecov_01;}
在RMAN中还可以运行操作系统命令,同样也要将这些OS命令放在run模块中,除了要用引号将命令引起来之外,还必须在要命令前加上host关键字。
如:
RMAN>run{host'ls-l$ORACLE_HOME';}
在产品数据库环境中使用RMAN时,最好将需要执行的命令或命令模块放在批处理文件中,由RMAN自动调用执行。
同时,还可以使用log参数来保存日志信息。
如:
[oracle@localhost~]$rmantargetsys/yk2009@nicholasnocatalog@scripts.scrlogm.log
RMAN子句
allocOperandList
说明:
allocOperandList子句用于控制RMAN和数据库实例之间的通道。
它主要应用在ALLOCATECHANNEL、ALLOCATECHANNELFORMAINTENANCE和CONFIGURE命令中。
语法结构:
allocOperandList子句包括以下选项:
●CONNECT:
指定连接字符串;
●AUXILIARYFORMAT:
在辅助实例上创建的镜像拷贝格式;
●NEW:
在由辅助实例的初始化参数DB_CREATE_FILE_DEST所指定的目录中创建一个新的镜像拷贝;
●FORMAT:
指定备份片的格式;
●MAXOPENFILES:
控制在BACKUP命令中可以同时打开的最大数据文件个数(默认值为8);
●MAXPIECESIZE:
指定备份片的最大尺寸;
●PARMS:
指定磁带设备的通道参数;
●RATE:
指定每秒可以读取的最大字节数;
●SEND:
用于发送厂商特定的命令字符串。
示例:
1、为磁盘通道设置一个默认的备份格式
RMAN>CONFIGURECHANNELDEVICETYPEDISKFORMAT=‘/backup/Nicholas/%u.bak’
2、为数据库备份指定默认的位置和格式后进行备份。
RUN
{
ALLOCATECHANNELd1DEVICETYPEDISKFORMAT='/disk1/bkup_%U';
BACKUPDATABASE;
}
3、备份时限制备份片的最大尺寸
RMAN>run{
2>ALLOCATECHANNELd1DEVICETYPESBTMAXPIECESIZE800M;
3>BACKUPDATABASE;
4>RELEASECHANNELd1;
5>}
archivelogRecordSpecifier
说明:
archivelogRecordSpecifier子句用于指定在RMAN操作中要使用的归档日志文件。
语法结构:
archivelogRecordSpecifier子句有以下几种选项:
●ALL:
使用所有的归档日志文件;
●archlogRange:
指定某一范围内的归档日志文件,范围可以通过时间、日志序列号和SCN来定义。
archlogRange子句的语法结构如下:
●LIKE:
使用符合文件名定义的归档日志文件。
示例:
1、备份所有归档日志
RMAN>BACKUPARCHIVELOGALL;
2、对指定序列号范围内的归档日志进行备份
RMAN>BACKUPARCHIVELOGFROMSEQUENCE=84UNTILSEQUENCE=86;
3、对指定SCN范围内的归档日志进行备份
RMAN>BACKUPARCHIVELOGSCNBETWEEN10AND20;
4、对指定日期后所产生的归档日志进行备份
RMAN>BACKUPARCHIVELOGFROMTIME‘sysdate-1’;
completedTimeSpec
说明:
completedTimeSpec子句与RMAN维护命令LIST、CROSSCHECK和DELETE一起使用,用于指定在某个时间范围内完成的备份集或镜像。
在COMPLETED子句中可以使用日期时间函数SYSDATE和TO_DATA。
语法格式:
在completedTimeSpec子句的参数中有下面几个时间段可供选择:
●AFTER,在特定时间后完成的备份或镜像;
●BEFORE,在特定时间前完成的备份或镜像;
●BETWEEN…AND,在特定时间段内完成的备份或镜像。
示例:
1、列出10天前的备份信息
RMAN>LISTBACKUPCOMPLETEDBEFORE'sysdate-10';
2、对10天前所生成的备份进行交叉检验
RMAN>CROSSCHECKBACKUPCOMPLETEDAFTER'sysdate-10';
3、删除5天以前的备份信息
RMAN>DELETEBACKUPCOMPLETEDBETWEEN'sysdate-20'AND‘sysdate-5’;
connectStringSpec
说明:
connectStringSpec子句用于在连接到目标数据库、恢复目录和辅助数据库时指定用户名、密码和网络服务名。
语法结构:
datafileSpec
说明:
datafileSpec子句通过一个文件名或绝对文件号来指定一个数据文件。
语法结构:
示例:
1、通过文件名来指定一个要备份的文件。
RMAN>backupascopydatafile'+DATAFILE/nikolai/datafile/users.259.698859687'
2>format'+FLASH_RECOVERY/nikolai/backup/users_%u.cpy';
2、通过绝对文件号来指定一个要备份的文件。
RMAN>backupascopydatafile4format'+FLASH_RECOVERY/nikolai/backup/users_%u.cpy';
deviceSpecifier
说明:
deviceSpecifier子句用于指定存储备份的设备类型。
RMAN支持两种设备类型:
DISK和media_device,前者是磁盘,后者表示顺序读取的存储设备,通常指的就是磁带。
语法结构:
示例:
1、将数据库备份到磁盘设备。
RMAN>BACKUPDEVICETYPEDISKDATABASE;
2、为介质管理设备分配一个磁带设备作为维护通道。
RMAN>ALLOCATECHANNELFORMAINTENANCEDEVICETYPEsbt;
fileNameConversionSpec
说明:
fileNameConversionSpec子句用于描述复制数据库或备用数据库的数据文件名和目标数据库的数据文件名之间的映射关系,其用法与初始化参数DB_FILE_NAME_CONVERT完全相同。
语法格式:
其中,string_pattern用于指定成对的匹配关系,它必须是一个偶数对,前面的文件名是目标数据库中的文件名,后面的是转换后的文件名。
示例如下:
RMAN>run{
2>BACKUPASCOPYDEVICETYPEDISK
3>TABLESPACEnicholas
4>DB_FILE_NAME_CONVERT=(‘/OPT/ORACLE/ORADATA/users’,‘/backup/newdisk1’);
5>}
下面的示例将ASM磁盘组的路径转换为文件系统中的路径:
run{
configurecontrolfileautobackupon;
configurecontrolfileautobackupformatfordevicetypediskto‘/backup/nikolai/autobackup/%F’;
backupascopydb_file_name_convert=(‘+DATAFILE1/nikolai’,‘/backup/nikolai’)database;
}
forDbUniqueNameOption
说明:
forDbUniqueNameOption子句用于指定一个DataGuard环境中的数据库列表。
使用该子句后,RMAN命令所执行的操作都针对列表中的数据库。
语法结构:
示例:
列出一个备用数据库中的期满备份。
RMAN>CONNECTCATALOGrman@catdb;
recoverycatalogdatabasePassword:
password
connectedtorecoverycatalogdatabase
RMAN>SETDBID3257174182;
RMAN>LISTEXPIREDBACKUPFORDB_UNIQUE_NAMEstandby1;
foreignlogRecordSpecifier
说明:
foreignlogRecordSpecifier子句允许指定一个外部归档日志集合用于RMAN操作。
语法结构:
它有以下几种语法格式:
●FOREIGNARCHIVELOGALL:
使用所有的外部归档日志文件;
●FOREIGNARCHIVELOGarchlogRange:
指定某一范围内的外部归档日志文件,范围可以通过时间、日志序列号和SCN来定义。
archlogRange子句的语法结构如下:
●FOREIGNARCHIVELOGLIKE‘string_pattern’:
使用符合文件名定义的外部归档日志文件。
示例:
交叉检验所有的外部归档日志:
RMAN>crosscheckforeignarchivelogall;
formatSpec
说明:
FORMAT子句用于设置备份集或镜像文件的命名格式。
语法结构:
文件名称可以采用通配符来定义,下表中包含了所有可以在文件名中使用的通配符:
通配符
说明
%a
数据库的活动ID号
%c
当生成多重备份时,用于指定备份片的副本号
%d
数据库名称
%D
用DD格式表示的格林尼治时间当前日期
%e
归档日志序列号
%f
绝对文件号
%F
将DBID、日、月、年和序列号组合为一个独特的,可重复生成的名称
%h
归档日志线程号
%I
数据库的DBID
%M
用MM格式表示的格林尼治时间当前月份
%N
表空间的名称
%n
数据库名称,右端用X字符填补,使名字的总长度为8个字符
%p
备份集内备份片的编号,如果要建立多个备份片,则该符号是必须的
%s
备份集的编号,这是必须的;
%t
备份集的时间戳
%T
用YYYYMMDD格式表示的格林尼治时间当前年月日
%u
生成一个8个字符长度的,由备份集编号、备份片副本编号和创建时间表示的名称
%U(默认)
由系统自动生成的唯一备份文件名。
对于备份片来说,格式为:
%u_%p_%c;对于镜像文件来说,格式为:
data-D_%d_id-%I_TS-%N_FNO-%f_%u;对于归档日志来说,格式为:
arch-D_%d-id-%I_S-%e_T-%h_A-%a_%u;对于控制文件来说,格式为:
cf-D_%d-id-%I_%u
%Y
用YYYY格式表示的格林尼治时间当前年份
keepOption
说明:
keepOption子句用于从备份冗余策略中保持或取消某些备份集或镜像文件。
只有在使用恢复目录时才能使用keepOption子句。
语法格式:
KEEP表示从冗余策略中保持特定备份集或镜像文件,也就是说,文件过期后不会马上删除,而是仍然会保持一段时间;NOKEEP取消备份集或镜像文件所有拥有的保持特权;FOREVER指定备份集或镜像永不过期;UNTILTIME指定备份集或镜像的保留时间;RESTOREPOINT通过指定一个表示SCN的还原点来将备份恢复到一个指定的状态。
示例:
1、创建一个永远保留的数据库备份
RMAN>BACKUPTAGQ107DATABASEKEEPFOREVER;
2、备份所有的归档日志并保留至一个指定的日期
RMAN>BACKUPKEEPUNTILTIME'01-JAN-08'ARCHIVELOGALL;
3、取消所有归档日志的保留特权
RMAN>CHANGEBACKUPOFARCHIVELOGALLNOKEEP;
4、将备份集42保留到两个月之后
RMAN>CHANGEBACKUPSET42KEEPUNTILTIME‘sysdate+60’;
5、取消备份集42的保留特权
RMAN>CHANGEBACKUPSET42NOKEEP;
listObjList
说明:
listObjList子句列出需要的数据库文件和归档日志文件,供CHANGE、CROSSCHECK、DELETE和LIST等其他RMAN命令使用。
语法结构:
它包含下面一些子句:
●archivelogRange:
指定要处理的归档日志;
●CONTROLFILE:
指定当前控制文件;
●DATABASESKIPTABLESPACEtablespace_name:
指定要跳过的表空间;
●dbObject:
指定当前数据库、需要的数据文件或表空间名称,其语法结构如下:
●foreignlogRecordSpecifier:
以操作系统文件方式存储的外部归档日志文件。
●SPFILE:
指定当前服务器参数文件。
示例:
1、列出所有数据文件备份集,但跳过表空间users
RMAN>LISTBACKUPOFDATABASESKIPTABLESPACEusers;
2、验证日志序列号在95~100之间的所有备份集
RMAN>CROSSCHECKBACKUPOFARCHIVELOG
2>FROMSEQUENCE95UNTILSEQUENCE100;
3、删除所有包含SPFILE的备份集
RMAN>DELETEBACKUPOFSPFILE;
maintQualifier
说明:
maintQualifier子句列出需要的数据库文件和归档日志文件,供LIST、CROSSCHECK、DELETE和SWITCH命令使用。
语法结构:
maintQualifier子句包含下面一些选项:
●completedTimeSpec:
备份集或镜像文件的完成时间;
●DEVICETYPE:
设备通道的类型;
●LIKE:
备份集或镜像文件的名称匹配格式;
●BACKEDUPintegerTIMESTODEVICETYPE:
该选项只针对归档日志的备份,它用于限制归档日志在指定设备通道上被成功备份的次数;
●TAG:
备份集或镜像文件的标志名。
示例:
1、校验在过去十天内的所有备份集
RMAN>CROSSCHECKBACKUP
2>COMPLETEDBETWEEN'sysdate-10'and'sysdate';
2、列出在/backup/nicholas目录中的所有镜像文件
RMAN>LISTCOPYLIKE'/backup/nicholas';
3、删除备份次数超过2次的所有归档日志
RMAN>DELETEARCHIVELOGALLBACKUPUP2TIMES
2>TODEVICETYPEDISK;
4、列出标记为users_bak的所有备份集
RMAN>LISTBACKUPOFDATABASETAGusers_bak;
maintSpec
说明:
maintSpec子句用于指定CHANGE、CROSSCHECK和DELETE等RMAN命令所操纵的备份文件。
语法结构:
maintSpec子句包含下面一些选项:
●BACKUP:
所维护的备份集;
●archivelogRecordSpec:
所维护的归档日志;
●COPY:
所维护的镜像文件;
●foreignRecordSpecifier:
所维护的外部归档日志;
●recordSpec:
列出要维护的其他数据库备份文件。
示例:
1、交叉校验表空间users的备份集
RMAN>CROSSCHECKBACKUPOFTABLESPACEusers;
2、将数据文件5的镜像改为不可用
RMAN>CHANGECOPYOFDATAFILE5UNAVAILABLE;
obsOperandList
说明:
obsOperandList子句用于REPORT和DELETE命令,作用是报告或删除满足条件的备份或镜像。
语法结构:
obsOperandList子句包含下列选项:
●RECOVERYWINDOWOFintegerDAYS:
用于将一个时间窗口内不再需要的备份和镜像标记为obsolete;
●REDUNDANCY:
用于将超过冗余次数的备份或镜像标记为obsolete。
示例:
1、列出10天内执行恢复操作所不需要的备份集和镜像
RMAN>REPORTOBSOLETERECOVERYWINDOWOF10DAYS;
2、删除冗余次数超过2的备份集和镜像
RMAN>DELETEOBSOLETEREDUNDANCY2;
recordSpec
说明:
recordSpec子句专门用于RMAN命令CHANGE、CROSSCHECK、DELETE和LIST中,其作用是列出它们所维护的对象。
语法结构:
recordSpec子句包含下面的选项:
●ARCHIVELOG:
归档日志;
●BACKUPSET:
备份集;
●BACKUPPIECE:
备份片;
●PROXY:
代理副本;
●CONTROLFILECOPY:
控制文件镜像副本;
●DATAFILECOPY:
数据文件镜像副本。
示例:
1、列出所有的数据文件镜像
RMAN>listdatafilecopyall;
2、校验备份集71,72
RMAN>CROSSCHECKBACKUPSET71,72;
3、设置备份片106为不可用
RMAN>CHANGEBACKUPPIECE106UNAVAILABLE;
4、删除控制文件镜像13
RMAN>DELETENOPROMPTCONTROLFILECOPY13;
sizeSpec
说明:
为指定备份集或镜像指定一个尺寸。
语法格式:
tempfileSpec
说明:
tempfileSpec子句通过文件名或绝对文件号来指定一个临时文件。
语法结构:
示例:
通过指定一个不同的临时文件名来改变默认的临时文件。
SHUTDOWNIMMEDIATE
STARTUPMOUNT
RUN
{
SWITCHTEMPFILE'/disk1/oradata/prod/temp01.dbf'
TO'/disk2/temp01.dbf';
}
ALTERDATABASEOPEN;
untilClause
说明:
untilClause子句指定一个以SCN、日志序列号或时间表示的上限,它广泛地应用于各种RMAN命令中。
语法结构:
untilClause子句包含以下选项:
●UNTILSCN:
以SCN作为上限值;
●UNTILSEQUENCE:
以日志序号作为上限值;
●UNTILTIME:
以一个表示时间的字符串作为上限值。
示例:
1、执行一个不完全恢复,将数据库恢复到指定的SCN。
STARTUPFORCEMOUNT
RUN
{
SETUNTILSCN1418901;#setto1418901torecoverdatabasethroughSCN1418900
RESTOREDATABASE;
RECOVERDATABASE;
}
ALTERDATABASEOPENRESETLOGS;
2、报告旧的备份。
REPORTOBSOLETEUNTILTIME'SYSDATE-7';
RMAN命令
@调用脚本文件
说明:
@命令用于运行RMAN命令文件。
RMAN命令文件是一个包含RMAN命令模块的脚本文件,通过将频繁执行的命令放在文件中,可以减少不必要的代码输入,有利于RMAN的自动执行。
语法格式:
filename需要包含完整的文件路径,否则RMAN会在当前目录下寻找该命令文件。
示例:
rmantargetsys/yk2009@nicholasnocatalog@/opt/oradata/script.cmd
或
RMAN>@/opt/oradata/script.cmd
@@在脚本文件中调用另一个脚本文件
说明:
@@命令用于在一个命令文件中调用另一个命令文件。
语法格式:
filename需要包含完整的路径名,否则RMAN会在当前目录下寻找该命令文件。
示例:
假设script2.cmd文件的内容如下:
@@script1.cmd#在script2.cmd中调用script1.cmd
DELETENOPROMPTOBSOLETE;
则可以在RMAN命令行中调用:
RMAN>@/opt/oradata/script2.cmd
ADVISEFAILURE显示故障建议
说明:
ADVISEFAIURE命令可以用来显示数据恢复顾问所建议的故障修复
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OracleRMAN 命令 详解
![提示](https://static.bdocx.com/images/bang_tan.gif)