rman命令

D:\>RMAN HELP


参数       值          说明
-----------------------------------------------------------------
target       加引号的字符串  目标数据库连接字符串
目录      加引号的字符串  恢复目录的连接字符串
nocatalog    无           如果已指定, 则没有恢复目录
cmdfile      加引号的字符串  输入命令文件的名称
log        加引号的字符串  输出消息日志文件的名称
跟踪        加引号的字符串  输出调试信息日志文件的名称
append       无           如果已指定, 日志将以附加模式打开
debug        可选参数  激活调试
msgno        无           对全部消息显示 RMAN-nnnn 前缀
send         加引号的字符串  将命令发送到介质管理器
pipe         字符串         管道名称的构建块
timeout      整数        等待管道输入的秒数
checksyntax  无           检查命令文件中的语法错误


--连接本地数据库
D:\>SET ORACLE_SID=ORCL(本地单实例可以省略这一步)
D:\>RMAN TARGET /
C:\>rman target '/ as sysdba'


--连接远程数据库
rman target sys/change_on_install@testdb


--写日志
rman target / log d:/logs/rman_log.txt


--RMAN中重启数据库
RMAN> SHUTDOWN IMMEDIATE
RMAN> STARTUP


命令为3种 ,独立命令,作业命令,SQL命令


--RMAN中执行sql,select不出结果
SQL 'SELECT SYSDATE FROM DUAL';
SQL 'CREATE TABLE T AS SELECT * FROM DUAL';
SQL 'SELECT OWNER,TABLE_NAME FROM USER_TABLES';


--列出RMAN所有参数
RMAN> SHOW ALL;
RMAN> SHOW DEVICE TYPE;


RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\S
NCFORCL.ORA'; # default


--LIST命令
RMAN> list backup;
RMAN> LIST BACKUP OF DATABASE;
RMAN> LIST COPY OF TABLESPACE 'SYSTEM';


--DELETE删除命令
RMAN> delete obsolete;
RMAN> delete expired backup;
RMAN> delete expired copy;
RMAN> delete backupset 19;
RMAN> delete backuppiece 'd:/backup/DEMO_19.bak';
RMAN> delete backup;
RMAN> delete datafilecopy 'd:/backup/DEMO_19.bak';
RMAN> delete copy;
RMAN> delete archivelog all delete input;
RMAN> delete backupset 22 format = ''d:/backup/%u.bak'' delete input;  


--RMAN备份形式
  1、镜像复制(Image Copies)
  2、备份集(Backup Sets)
--RMAN命令执行方式(4种)
方式1:
RMAN>backup database;
方式2:
RMAN>RUN{
···
}
方式3:
C:/>rman TARGET / @backup_db.rman
RMAN> @backup_db.rman
RMAN> RUN { @backup_db.rman }
方式4:
C:/>rman cmdfile=backup_db.rman


--备份整个数据库
RMAN> BACKUP DATABASE;  --存放的目录D:\oracle\product\10.2.0\flash_recovery_area\ORCL\BACKUPSET\2014_04_19
RMAN> BACKUP DATABASE FORMAT 'D:/BACKUP/%U';  --FORMAT命名规则
RMAN> list backup of database;


--备份表空间
RMAN> BACKUP TABLESPACE TS_LHJ01;
RMAN> LIST BACKUP OF TABLESPACE TS_LHJ01;


--备份数据文件
select file_name,file_id,tablespace_name from dba_data_files


RMAN> BACKUP DATAFILE 6,7,8,9,10;
RMAN> LIST BACKUP OF DATAFILE 9;


--备份控制文件
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> BACKUP CURRENT CONTROLFILE;
RMAN> BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;  / BACKUP DATAFILE 4 INCLUDE CURRENT CONTROLFILE;
RMAN> LIST BACKUP OF CONTROLFILE;


RMAN> SQL 'ALTER DATABASE BACKUP CONTROLFILE TO ''/tmp/wilson.bin'''


CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE   DISK TO 'd:/backup/%F';
在备份期间,将产生一个控制文件的快照,用于控制文件的读一致性,这个快照可以通过如下配置:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:/BACKUP/SNCFJSSWEB.ORA';




--备份参数文件spfile
BACKUP SPFILE FORMAT '/U01/BACKUP/SP_%U';






--备份归档文件
RMAN> BACKUP ARCHIVELOG ALL;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;   --通过plus archivelog方式备份时,rman会自动对当前的archivelog进行归档
RMAN> LIST BACKUP OF ARCHIVELOG ALL;
--PLUS ARCHIVELOG执行的步骤
1>.运行ALTER SYSTEM ARCHIVE LOG CURRENT语句对当前redolog进行归档。
2>.执行BACKUP ARCHIVELOG ALL命令备份所有已归档日志。
3>.执行BACKUP命令对指定项进行备份。
4>.再次运行ALTER SYSTEM ARCHIVE LOG CURRENT对当前redolog归档。
5>.对新生成的尚未备份的归档文件进行备份。


如果数据库运行于不归档模式下,只能在数据库干净关闭的情况下才能进行一致性的增量备份;
如果数据库运行于归档模式下,那即可以在数据库关闭状态进行,也可以在数据库打开状态进行备份。


BACKUP ARCHIVELOG ALL FORMAT 'XXX/XXX/ar_%t_%s_%p' DELETE ALL INPUT;
BACKUP ARCHIVELOG FROM TIME 'SYSDATA-15' UNTIL TIME 'SYSDATE-7';
BACKUP ARCHIVELOG SEQUENCE BETWEEN 99 AND 199 THREAD 1 DELETE INPUT;


--增量备份
RMAN> BACKUP INCREMENTAL LEVEL=0 DATABASE;
RMAN> BACKUP INCREMENTAL LEVEL=1 TABLESPACE TS_LHJ01;
RMAN> BACKUP INCREMENTAL LEVEL=1 TABLESPACE SYSTEM DATAFILE 'F:/ORAHOME1/ORADATA/JSSWEB/USERS01.DBF';
RMAN> BACKUP INCREMENTAL LEVEL=2 CUMULATIVE DATABASE;
RMAN> BACKUP INCREMENTAL LEVEL=2 CUMULATIVE TABLESPACE TS_LHJ01;


注:Rman默认创建的增量备份是Differential方式,如果要建立Cumulative方式的增量备份,在执行BACKUP命令时显式指定即可


--Differential(差异增量)与Cumulative(累积增量)的区别
RMAN 中的Differential(差异增量)与Cumulative(累积增量)两种方式间的区别是什么?
差异增量每次都是从上一次增量备份为起点到目前的数据变化
累积增量每次都是从全备开始为起点一直到目前数据的变化
一般的情况来说 差异用的多


--Duplexed方式备份(双工备份)
在生成备份集的同时,向指定位置生成指定份数(最大不超过4份)的备份集复制


方法1:
RMAN> BACKUP COPIES 3 DATABASE;--上述命令将会在全库备份的同时,自动生成当前备份集的2份拷贝到默认备份目录。
测试时出错:ORA-19806: 在恢复区内不能进行双重备份
解决方法:
只要换一个地方或换一个备份文件名字备份就可以了,在执行的命令后加上 format (df_%d_%U)
U表示不重复的意思


BACKUP COPIES 2 DATAFILE 5 FORMAT '/XX/XX1/D_%U','/XX/XX2/D_%U';


方法2:
RUN{
SET BACKUP COPIES 2;
BACKUP DEVICE TYPE DISK FORMAT 'D:\oracle\BACKUP1\%U','D:\oracle\BACKUP2\%U'
TABLESPACE TS_LHJ01,USERS;
}
--上述命令将生成两份备份集,分别存储到D:\oracle\BACKUP1和D:\oracle\BACKUP2目录。
 format (df_%d_%U)
方法3:
3、通过CONFIGURE ..... BACKUP COPIES命令设置预定义的备份Duplexed方式。
RMAN> CONFIGURE DEFAULT DEVICE TYPE TO DISK;
RMAN> CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;
RMAN> CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;


上述命令将disk设置上数据文件与归档文件的拷备数量设置为2,当再执行BACKUP DATABASE备份时,即会自动生成2份数据文件的备份集。
仅适用于数据文件与归档重做日志文件和备份,并且,只有在使用自动分配的通道时才能够使用CONFIGURE ... BACKUP COPIES命令设置的配置。


RMAN支持的IO设备类型有两种:磁盘(DISK)和磁带(SBT),默认情况下为磁盘。


CONFIGURE DEFAULT DEVICE TYPE TO DISK;
CONFIGURE DEFAULT DEVICE TYPE TO SBT;


在这里需要注意的一点是:如果IO设备发生变化,相关配置项也需要修改。例如:
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;


--备份策略


--删除备份集report xx,delete xx
RMAN> report obsolete;  --列出过时的备份文件,包括日志文件,控制文件,数据文件
RMAN> delete obsolete;  
RMAN 保留策略将应用于该命令
将 RMAN 保留策略设置为冗余 1
已废弃的备份和副本报表


注意:
如果被判断为废弃的备份是一个单独数据文件的镜像复制,那么在执行DELETE命令时将直接删除这个镜像复制文件。
如果被判断为废弃的备份是一个备份集中的一部分,则必须等到整个备份集中所有其它文件都被废弃之后,才能删除这个备份集。


RMAN> report schema;  --列出所有数据文件
RMAN> list backup of datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF';




--删除失败时处理办法
RMAN> CROSSCHECK BACKUPSET 5;
RMAN> DELETE BACKUPSET 5;




RMAN中提供了两种备份保留策略:基于时间,和基于冗余数量 


--两种备份策略:基于时间和冗余数量 
--保留7天
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;  --SYSDATE-(SELECT CHECKPOINT_TIME FROM V$DATAFILE)>=7
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3;


RMAN> CONFIGURE RETENTION POLICY TO NONE;
RMAN> CONFIGURE RETENTION POLICY CLEAR; --恢复默认值


--备份优化,能不备份的就不备份
l CONFIGURE BACKUP OPTIMIZATION参数置为on;
2 执行的BACKUP DATABASE或BACKUP ARCHIVELOG命令中带有ALL或LIKE参数。
3 分配的通道仅使用了一种设备类型,也就是没有同时分配使用sbt与disk的多个通道。
(sbt与disk就像一条是公路,一条是海路,而通道则相当于你选择了走公路之后,还得选择是走北三环,还是走北五环,还是两条一块走)


RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
RMAN是如何判断要备份的文件是否需要被优化呢?
假如某库在上午9点被执行过一次全库备份,等下午3点再次执行全库备份时,备份的文件没有变动而且也已经被备份过时,
才会跳过这部分文件。所以理论上备份优化仅对于只读表空间或offline表空间起作用。当然对于已经备份过的archivelog文件,它也会跳过


--配置并行度
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;


指定在以后的备份与恢复中,将采用并行度为2,同时开启2个通道进行备份与恢复,当然也可以在run中指定通道来决定备份与恢复的并行程度。
并行的数目决定了开启通道的个数。如果指定了通道配置,将采用指定的通道,如果没有指定通道,将采用默认通道配置。
默认情况下,自动分配通道的并行度为1,如果你通过设置PARALLELISM设置了并行通道为2,那么在run块中,
如果你没有单独通过ALLOCATE CHANNEL命令指定通道,它会默认使用2条并行通道,
如果你在run命令块中指定了数个ALLOCATE CHANNEL,那么rman在执行备份命令时会以你设置的channel为准,而不管configure中配置了多少个并行通道。
需要注意的一点是,在backup命令中有一个FILESPERSET参数,该参数是指rman建立的每个备份集中所能包含的备份片段(即磁盘文件)的最大数,
该参数默认值为64,如果在执行backup命令时没有指定该参数值,那么rman会仅使用第一个通道来执行备份,其它通道将处于空闲状态。
关于通道数与FILESPERSET值之间也有一个大小关系,逻辑稍显复杂这些就不多废话了,总之一条,filesperset值不要小于你设定的通道数。


CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度
CONFIGURE MAXSETSIZE 配置备份集的最大尺寸,该配置限制通道上备份集的最大尺寸。单位支持bytes,K,M,G。默认值是unlimited。


--动态性能视图
V$ARCHIVED_LOG:本视图包含了所有归档重做日志文件的创建情况,备份情况以及其他信息。
V$BACKUP_CORRUPTION:这个视图显示了RMAN在哪些备份集中发现了损坏的数据坏。
在你使用BACKUP VALIDATE命令对备份集进行检查时如果发现了损坏的数据块,RMAN将在这个视图中写入记录。
V$COPY_CORRUPTIO:本视图显示了哪些镜像复制备份文件已经被损坏。
V$BACKUP_DATAFILE:本视图通常用来获取每个数据文件中非空白数据块的数量,从而帮助你创建出大小基本相等的备份集。
另外,在视图中也包含了数据文件中损坏的数据块的信息。
V$BACKUP_REDOLOG:本视图显示了在现有的备份集中饮食有哪些归档重做日志文件。
V$BACKUP_SET:本视图显示了已经创建的备份集的信息。
V$BACKUP_PIECT:本视图显示了已经创建的备份片段的信息。


--查rman完成进度
Select sid,
       serial#,
       context,
       sofar,
       totalwork,
       round(sofar / totalwork * 100, 2) "% Complete"
  From v$session_longops
 where opname like 'RMAN:%'
   and opname not like 'RMAN:aggregate%'


--完成备份操作的服务进程的SID与SPID信息
Select sid, spid, client_info
  from v$process p, v$session s
 where p.addr = s.paddr

   and client_info like '%id=rman%'



--批处理脚本!!
1、每天夜间1点执行;
2、数据库全备,同时备份控制文件及归档日志文件,备份文件保存至:D:/backup/目录下,并在完成归档日志文件备份后,自动删除已备份的归档日志;
3、备份保留7天,过期则自动删除;
4、保留操作日志备查;


以Windows环境为例(linux环境下与此基本类似,rman的脚本您甚至连改都不用改,就把调用rman脚本的命令行改改就行了):


1、编写rman批处理文件
保存至:E:/oracleScript/backup/database_backup_jssweb.rman
RUN {
 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:/backup/%F';
 ALLOCATE CHANNEL CH1 DEVICE TYPE DISK FORMAT 'd:/backup/%U';
 BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10
   PLUS ARCHIVELOG FILESPERSET 20
   DELETE ALL INPUT;
 RELEASE CHANNEL CH1;
 }
 ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
 CROSSCHECK BACKUPSET;
 DELETE NOPROMPT OBSOLETE;


SKIP选项   说明
SKIP INACCESSIBLE:表示跳过不可读的文件。我们知道一些offline的数据文件只要存在于磁盘上就仍然可被读取,但是可能有些文件已经被删除或移到它处造成不可读,加上这个参数就会跳过这些文件;
SKIP OFFLINE:跳过offline的数据文件;
SKIP READONLY:跳过那些所在表空间为read-only的数据文件;
注意哟,你从网上搜索rman备份脚本,可能有些脚本中会出现一项:sql 'alter system archive log current';这句是让archivelog日志归档,实际上完全没必要,我们在第三节的时候讲过,通过plus archivelog方式备份时,rman会自动对当前的archivelog进行归档。
2、编写dos批处理
保存至:E:/oracleScript/backup/database_backup_jssweb.bat
设定要备份的数据库sid为jssweb,将日志按照日期输出到E:/oracleScript/backup/logs/目录。
set oracle_sid=jssweb
rman target / msglog E:/oracleScript/backup/logs/%date:~0,10%.log cmdfile=E:/oracleScript/backup/database_backup_jssweb.rman
3、设定执行计划
控制面板->任务计划中添加计划,运行E:/oracleScript/backup/database_backup_jssweb.bat,设定日程安排中的时间。


参考:http://blog.csdn.net/junsisi/article/details/1788490



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值