一,RMANR 连接到库 1),连接本地数据库 a,如果本地有多少实例,则需要设置环境变量ORACLE_SID,  windows 平台: set ORACLE_SID= INSTANACE NAME  UNIX/LINX平台: export ORACLE_SID=INSTANCE NAME 8i : $rman target / nocatalog  9i以上的数据库直接 rman target / 就可以了 nocatalog&catalog: 就是连接时,是以控制文件记录还是以恢复目录来记备份信息,这就二种连接的差别,catalog是需要配置的。

b,如果本地只有一个实例:且设置了环境变量:则无需指定实例了.

连接进入rman,如果使用操作系统验证,则用 rman target /                              如果没有使用操作系统验证: 则使用 rman target user/passwd 也可以直接rman,再在里面用connect 用户名/密码

2),连接远程数据库, 1、要确定数据库能够进行远程管理。 2、在本地创建一个到目标数据库的连接,同时给一个网络服务名比如叫做test 3、执行:rman target sys/password@test 4、本地版本要于远端版本一致或高 就可以了,记住@后面一定是网络服务名,rman target sys/密码@test

3),带日志的连接 rman target / log f:\rman_log.txt

4),暂退rman,回到操作系统的命令提示符 rman> host; $sqlplus "/ as sysdba" 这样就可以进入sql环境,退回exit ,exit 就又回到rman提示符

二,rman命令的执行方式 1),单个执行 rman>backup database;

2),批处理 rman>rman{ ...... }

3),运行脚本 a, 用命令行方式调用操作系统中保存的脚本 c:\ rman target / @backup_db.rman 或 c:\ rman target / cmdfile = backup_db.rman

b, 在rman中执行操作系统中保存的脚本文件 rman> @backup_db.rman

c, 运行存贮在catlog中的脚本(需要首先为rman创建恢复目录) rman > run { execute script backup_whole_db };

三,简单常见备份类型及解释 1).整库 rman> backup database     整库备份,生成二个备份片段,一个数据文件片段,一个控制文件和spfile,放在oracle 软件的安装目录下 rman> backup database format 'f:\bak_u%';     指定备份集的目录  rman> list backup of database;                           查看创建的全库备份

2).表空间 rman> backup tablespace users;                        表空间的备份,当然也可以format 到指定目录 rman> list backup of tablespace users;            查看users表空间的备份情况,注意如果做过全备份,全备份users表空间的信息也会显示出来 rman> delete backup 10;                                       删除编号为10的备份集

3),数据文件 rman> backup datafile 'f:\users01.dbf';                数据文件的备份 rman> backup datafile n                                         数据文件的备份,n 是数据文件的绝对编号(备份多个数据文件,中间用逗号隔开) rman> list backup of datafile n;                            n是数据文件的编号,通过dba_data_files (显示多个数据文件,编号用逗号隔开)

4),控制文件 rman> backup current controlfile;                         手工单独备份控制文件 rman> backup database include current controlfile;   备份任何东东的时候都可以包含备份控制文件,当然要加include current controlfile子句 rman> backup current controllfile include current controlfile 这样就可以备份二次控制文件 rman > configure controlfile autobackup on;     只要设置为on后,不管备份什么都会备份控制文件       备到哪里要根据参数决定。当设置为on后,controlfile 会自动备份到$ORACLE_HOME/dbs下, rman > list backup of controlfile                           查看控制文件的备份情况

5),归挡文件的备份 rman> backup archivelog all;                               备份所有可访问到的归档文件,当然这个all可以由其他关键字眼代替,until, scn, time,sequence                                                                                     来指定要备份的归档区间, rman>backup current controlfile plus archivelog; 当然备份任何东东加上plus archivelog,就可备份归档文件. 这二种备份方式的区别: 通常在线备份的时候,日志文件一直在不断生成,如何做到完全备份归档呢? a, backup archivelog all, 先alter system switch logfile, 立即备份这些归档,对后续生成的归档管不了 b, backup ... plus archivlog, 步骤是: 先switch logfile,backup archivelog all,,再执行备份项目备份,再switch logfile ,再backup archivelog all,     完全备份 rman> delete all input                      备份完后把archivelog 删掉

6),初始化参数文件的备份 通常在备份控制文件时,会自动备份spfile ,当然也可以专门手动备份 rman>backup spfile;

7),对备份集进行备份 rman>backup backupset all;                               对以前所有备份再进行备份一次,如果很多,这个过程很膨大 rman>bakcup backupset n;                                 n 指备份集的id号,当然可以指定多个,逗号隔开 rman>delete input 参数;                  删除某个备份集

呵呵,有以上简单备份的基础,相信写个块应该没问题了!

四,rman 命令综述 1) . show                                                                注:配置项后面跟了# default的表示该项仍是初始配置,未被修改过。 rman>show all;                                                     太多,检验自已的眼神 ~:~ 哈哈 rman>show controlfile autobackup;                  查看控制文件的配置参数

2). configure                                                                参考show all里面的参数,根据自身备份特性修改rman的初始参数 rman>configure retention policy to recovery window of n days;              基于时间的保留策略 rman>configure retention policy to redundancy n;                                     基于冗余数量的保留策略 rman>configure retention policy to none;                                                    取消备份保留策略 rman>configure backup optimization on;                                                    启用备份优化 rman>configure backup optimization off;                                                   关闭备份优化 rman>configure default device type to disk;                                                缺省备份设备磁盘 rman>configure default device type to sbt;                         缺省备份设备磁带 rman>configure device type disk parallelism 2;                                         备份通道为2,或并行度2,allocate channel可手工指定; rman>configure controlfile autobackup on;                                                备份任何自动备份控制文件 rman>configure controlfile autobackup off;                                                 自动备份控制文件关 rman>configure controlfile autobackup format for device type disk to ' f:\backup\%F';    自动备份的格式及路径设置 rman>configure snapshot controlfile name to 'f:\database\controlbak.ora';      在备份期间生在成控制文件的快照 rman>configure database / archivelog backup copies                            设置备份文件冗余度,即备份时生成copy rman>configure maxsetsize =...;                                                                   配置备份集的最大值 rman>configure encryption ....                                                                       设置备份密码,用于安全恢复 rman>configure encryption for database on/off;                                        启用或关闭此密码 rman>configure encryption algorithm 'ASE256';                                        指定加密算法为ASE256, rman>configure archivelog deletion policy to appled on standby;         在rac环境中,standby 端可删备份策略,默认只有primary端可删 rman>configure exclude for tablespace 'users';                备份进排除users表空间不备份 rman> configure ... clear;                                                                                 把更改项恢复到默认参数

3) .set命令                       我们讲了configure是全局的,那么set就是会话级的更改,牛吧 ! 块外运行的命令 rman>set echo on | off                                    显示或关闭rman显示 rman>set commang id to 'wangzz'              这时你在v$session 视图中,你会发现client_info 列值有id=wangzz的信息,方便你查看备份时状态. rman>set DBID n;                                           只能在nomount模式下执行,指定数据库的标识符 块内运行的命令 rman>run{           allocate channel c1 to device type disk;            set newname for datafile 4 to 'f:\123.dbf';              备份时把绝对文件重新命名并指定到新的地方,牛,这样也可以,i 服了u           .....           }

rman> run{           allocate ....           set until time "to_date('2010-02-01','yyyy-mm-dd');     设置恢复到某个时间点. 太强了,又汗一个.           ...          }

rman> run{           ...          set backup copies ;                             设定备份片段的冗余数          ...          }

rman> run{           ...          set archivelog destination to 'f:\...';         指定归档文件的备份路径,默认在log_archive_dest_1;                    ...          }

4) . list rman>list backup;                                                 下面就不作说明了,太简单了 rman>list backup of controfile; rman>list backup of datafile 'f:\user01.dbf' rman>list backup of datafile n; rman>list backup of archivelog all; rman>list device type disk backup;                    列出某个设备上的所有信息, rman>list copy of tablespace 'system'             列出系统表空间的(副本)备份信息, rman>list expired backup;                                   列出无效的备份

5) . delete  rman资料库(rman repository),这是一个逻辑概念,指rman备份恢复需要用到的数据信息,如备份集路径,归档文件路径等, 如果使用了恢复目录,则这部分数据保存于恢复目录中(recovery catalog),否则只会保存在目标数据库的控制文件中。 rman>delete obsolete;                                                     删除过期备份 rman>delete expired backup;                                          先crosscheck检查备份集,再标记失效的备份,再删除 rman>delete expired copy;                                              删除expired 副本 rman>delete backupset 19;                                             删除特定备份集  rman>delete backuppiece 'f:\backup\demo_19.bak'   删除特定备份片 rman>delete backup;                                                         删除所有备份集  rman>delete datafile copy 'f:\backup\demo_19.bak'    删除特定映像副本 rman>delete copy;                                                              删除所有映像副本 rman>backup archivelog all delete input;                      备份归档后删除归档 rman>delete backupset 22 format="f:\backup\%u.bak" delete input 备份备份集22后,删除原备份集的id 22;

附录:当在delete obsolete 时出现如下错误,主要原因是因为当前的备份设备类型( 如原默认是磁带,现变成磁盘了。用show all查看一下)不一致了。 RMAN-06091 no channel allocated for maintenance (of an appropriate type) 解决方法: 用下列命令组合就可以清除,你会明白意思的! rman> ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK; rman> delete obsolete; rman> allocate channel for maintenance device type 'sbt_tape' PARMS '...'; rman> delete obsolete; rman>allocate channel for maintenance type sbt_tape; rman>allocate channel for maintenance type disk; rman>delete obsolete device type disk;

6) , report 报表显示:                       就是对前面所有备份的信息进行分析 rman>report schema at time'sysdate-7';                      查看7天前数据库的模式  rman>report need backup;                                              查看所有需要备份的文件 rman>report need backup tablespace system;           查看指定表空间是否需要备份 rman>report obsolete;                                                      查看过期 RMAN> report schema;                           报告目标数据库的物理结构

7) , crosscheck                                                             检查备份或归档物理文件的状态,如果物理文件存在,并且控制文件或(恢复目录)中                                              有匹配记录,则有效,如果文件不存在,则expired无效. rman>crosscheck archivelog all;                               验证归档日志文件,当nls_lang=simplified chinese_china时,10g有一个bug,当提示                                              验证成功,要小心,这个说明是失败的,当提示验证失败时,反而是成功的。切记                                              当nls_lang=american_america时,就正常显示了 rman>crosscheck bakcup;                                          验证所有备份集

8) , change 修改状态                      修改备份文件或归档日志文件的状态,不是指物理文件,而是这些文件在控制文件                                              或恢复目录中对应记录的状态,有二种available & unavailable rman>change backupset n unavailable;                 备份集n为不可用 rman>change backup of tablespace user unavailable;      对user 表空间的备份集设为不可用, rman>change archivelog logseq=n unavailable;                  n为归档文件序号,可能通过list archivelog all 或查询v$ARCHIVED_LOG 获取,                                                      当然你也可以指定归档文件的详细路径 rman>change archivelog logseq=n delete;                            序列号为n的归档文件,被更改状态后直接删除

9),format 参数 %c:备份片的拷贝数(从1开始编号); %d:数据库名称;%D:位于该月中的天数 (DD); %M:位于该年中的月份 (MM); %F:一个基于DBID 唯一的名称,这个格式的形式为c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII 为该数据库的DBID,YYYYMMDD 为日期,QQ 是一个1-256 的序列; %n:数据库名称,并且会在右侧用x字符进行填充,使其保持长度为8; %u:是一个由备份集编号和建立时间压缩后组成的8字符名称。利用%u可以为每个备份集生成一个唯一的名称; %p:表示备份集中备份片段的编号,从1 开始编号; %U:是%u_%p_%c的简写形式,利用它可以为每一个备份片段(即磁盘文件)生成一个唯一名称,这是默认的命名方式; %s:备份集的号; %t:备份集时间戳; %T:年月日格式(YYYYMMDD);

有了上述基础,维护应该没什么问题了吧!

RMAN命令总结的更多相关文章

  1. RMAN命令DELETE操作总结

    本篇总结一下RMAN命令中的DELETE操作,DELETE命令用于删除RMAN备份记录以及相应的物理文件. To delete physical backups and copies as well ...

  2. Windows平台使用RMAN命令自动删除Oracle过期归档日志的方法

    自动删除Oracle过期归档日志的思路如下: 1.编写自动执行的bat脚本文件: 2.Windows设置定期执行计划 OracleArchLogClear.bat D:/Oracle/product/ ...

  3. oracle:通过shell来运行rman命令

    每次都手工输入一批rman命令来进行备份等操作是很繁琐的事,有什么简便的方法吗?可以的,你可以把这批rman命令写在 shell命令里面,需要的时候,运行一下sh即可.下面是一个简单的实例: RMAN ...

  4. RMAN命令详解和常用汇总

    RMAN命令详解和常用汇总转摘汇集,日后使用本文链接:https://blog.csdn.net/EVISWANG/article/details/50448370http://blog.itpub. ...

  5. 【Oracle】 RMAN命令汇总

    RMAN命令汇总 2013年写了关于RMAN命令的汇总,先转换为MD文档,温故而知新. 1.进入RMAN 进入本地数据库 [oracle@oracle-n1 ~]$ rman target / 进入远 ...

  6. RMAN命令LIST操作总结

    在使用RMAN备份.还原的过程中,我们经常需要查看备份的一些详细信息,例如,RMAN提供了LIST命令.关于LIST命令的详细信息 可以参考Oracle Database Backup and Rec ...

  7. RMAN命令

    一.启动.关闭数据库 在RMAN中执行关闭和启动数据库的命令与SQL环境下一模一样.当然,在执行之前,你需要先连接到目标数据库,如例: C:\Documents and Settings\Admini ...

  8. Oracle rman 命令详解

    一.list常用命令总结备忘 list命令列出控制文件.RMAN恢复目录中备份信息, 是我们对所有可见的数据库备份文件的一个最直观的了解的方法 list incarnation;    list ba ...

  9. Oracle之rman命令的使用全备输出信息的详解(51CTO风哥rman课程)

    rman连接数据库 rman target/ catalog rman/rman123456 运行全备命令 backup database; 查看备份集 list backupset;

随机推荐

  1. package.json中配置浏览器

    "browserlist":[ ">=1%", "last 2 versions" ],

  2. 如何在Oracle中一次执行多条sql语句 (.net C#)

    关键是不能换行,要加上begin ...sql... end;     每个SQL用:隔开,end后面必须加: 以下是拷贝于:http://www.cnblogs.com/teamleader/arc ...

  3. 一个有趣的python排序模块:bisect

    今天同事说到了一个python的排序模块bisect,觉得挺有趣的,跟大家分享分享. 先看看模块的结构: 前面五个属性大家感兴趣可以打出来看看数值,这里就不介绍了. 先说明的是,使用这个模块的函数前先 ...

  4. Maven 解决 下载项目 compiler 为1.5的问题

    在 开发Maven 项目的时候,会发现个问题,就是下载下来的项目默认 compiler 为1.5 ,项目报错. 明明之前开发用的是1.7的啊. 这里只需要在pom.xml确定下就好了. <pro ...

  5. mac 系统中vim安装ctags插件

    1,mac自带的ctags程序不是exuberant ctags, 所以使用时会出现问题,所以要重新安装一个: brew install exuberant ctags 安装完, which ctag ...

  6. am335x u-boot2011.09 SPL 流程跟踪

    跟踪一下 u-boot 2011.09 MLO在 nandflash 下运行的流程 首先,直接进入 start.S // arch/arm/cpu/armv7/start.S 36 .globl _s ...

  7. 适配器模式,装饰模式,代理模式异同<转>

    节前把3个设计模式的学习心得分享了一下,分别是适配器模式,装饰模式,代理模式. 但是似乎越写越有些迷糊,这三种模式都有着一些大同小异的地方,总是有些搞不清. 今天再重新学习下,把学习心得分享给大家一下 ...

  8. 【转】全Javascript的Web开发架构:MEAN和Yeoman【译】

    引言 最近在Angular社区的原型开发者间,一种全Javascript的开发架构MEAN正突然流行起来.其首字母分别代表的是:(M)ongoDB——noSQL的文档数据库,使用JSON风格来存储数据 ...

  9. Ext.ux.grid.feature.Searching 解析查询参数,动态产生linq lambda表达式

    上篇文章中http://www.cnblogs.com/qidian10/p/3209439.html我们介绍了如何使用Grid的查询组建,而且将查询的参数传递到了后台. 那么我们后台如何介绍参数,并 ...

  10. Spring Cloud Sleuth Zipkin - (1)

    最近在学习spring cloud构建微服务,很多大牛都提供很多入门的例子帮助我们学习,对于我们这种英语不好的码农来说,效率着实提高不少.这两天学习到追踪微服务rest服务调用链路的问题,接触到zip ...