RMAN常用备份恢复命令汇总
RMAN命令
1、独立命令
RMAN>shutdown immediate
RMAN>startup
RMAN>backup format 'd:\backup\%d_%s.bak' tablespace users;
2、作业命令
RMAN>run { backup format 'd:\backup\$d_%s.bak' tablespace users; }
3、运行SQL命令
RMAN>sql 'alter system switch logfile' ;
4、运行存储脚本
RMAN>run { execute script s1;}
5、运行操作系统命令
RMAN>run { host "dir d:\backup"; }
6、运行RMAN命令
c:\rman target sys/oracle@TEST nocatalog @c:\bak_users.cmd log a.log
bak_users.cmd示例:
backup format 'd:\backup\%d_%s.bak tablespace users;
sql 'alter system archive log current' ;
配置RMAN环境(略)
建立备份集
1、完全数据库备份集
1)、一致性备份(适用于NOARCHIVELOG和ARCHIVELOG模式)
c:\rman target sys/oracle@TEST nocatalog
RMAN>shutdown immediate
RMAN>startup mout
RMAN>backup database; 如果备份到别的目录backup database format ='d:\backup\%d_%s.dbf' ;
RMAN>sql 'alter system archive log current ' ;
2)、非一致性备份(在OPEN状态)
RMAN>backup database; 如果备份到别的目录backup database format ='d:\backup\%d_%s.dbf' ;
RMAN>sql 'alter system archive log current ' ;
3)、免除表空间
RMAN>configure exclude for tablespace user03;
RMAN>backup database; 如果备份到别的目录backup database format ='d:\backup\%d_%s.dbf' ;
RMAN>sql 'alter system archive log current ' ;
2、表空间备份集
RMAN>backup tablespace users format='d:\backup\%N_%f_%s.dbf' ;
3、数据文件备份集
RMAN>backup datafile 5 format='d:\backup\%N_%f_%s.dbf' ;
4、控制文件备份集
RMAN>backup current controlfile format='d:\backup\%d_%s.ctl' ;
5、SPFILE备份集
RMAN>backup spfile format='c:\%d_%s.par';
6、归档日志备份集(过去一天所生成的归档日志)
RMAN>backup format='c:\%d_%s.arc' archivelog from time='sysdate-1' until time='sysdate';
7、并行化备份集
RMAN>configure device type disk parallelism 3 ;
RMAN>backup database format='c:\%d_%s.dbf';
RMAN>configure device type disk clear;
8、建立多重备份
RMAN>backup copied 3 tablespace users format='c:\1\%N_%s.dbf','c:\2\%N_%s.dbf','c:\3\%N_%s.dbf' ;
9、备份备份集
RMAN>backup backupset 32 format='c:\%d_%s.bak';
10、建立多个备份片
RMAN>configure channel device type sbt maxpiecesize 4G;
RMAN>backup device type sbt format '%d_%s_%p.dbf' database;
11、建立压缩备份集
RMAN>backup as compressed backupset tablespace users format='c:\%d_%s.dbf';
12、备份数据文件和归档日志
RMAN>backup format 'c:\%d_%s.bak' tablespace users plus archivelog ;
13、指定备份集标记
RMAN>backup format='c:\%d_%s.bak' tablespace users tag='users' ;
建立映像副本
1、建立数据文件映像副本
RMAN>backup as copy format='c:\df_5.dbf' datafile 5; 或者
RMAN>copy datafile 5 to 'c:\df_5.dbf' ;
2、建立控制文件映像副本
RMAN>backup as copy format='c:\demo.ctl' current controlfile; 或者
RMAN>copy current controlfile to 'c:\demo.ctl';
3、建立归档日志映像副本
RMAN>backup as copy format='c:\arc10.log' archivelog sequence 10; 或者
RMAN>copy archivelog 'c:\demo\archive\arc00020_012345.001' to 'c:\arc20.log';
4、并行化建立映像副本
RMAN>configure device type disk parallelism 3;
RMAN>backup as copy format ='c:\df_%f.dbf' datafile 5,6,7 ;
RMAN>configure device type disk clear;
5、指定映像副本标记
RMAN>backup as copy format='c:\df_%f.dbf' datafile 5 tag=df_5; 或者
RMAN>copy datafile 5 to 'c:\df_%f.dbf' tag=df_5;
建立增量备份和累积备份
增量备份可以减少备份时间,累积备份可以减少恢复时间。
增量备份示例:周日 LEVEL 0 ,周一、周二、周四、、周五、周六 LEVEL 2 ,周三 LEVEL 1
RMAN>backup incremental level 0 format='c:\backup\%d_%s.dbf' tablespace users; 周日
RMAN>backup incremental level 2 format='c:\backup\%d_%s.dbf' tablespace users; 周一
RMAN>backup incremental level 2 format='c:\backup\%d_%s.dbf' tablespace users; 周二
RMAN>backup incremental level 1 format='c:\backup\%d_%s.dbf' tablespace users; 周三
RMAN>backup incremental level 2 format='c:\backup\%d_%s.dbf' tablespace users; 周四
RMAN>backup incremental level 2 format='c:\backup\%d_%s.dbf' tablespace users; 周五
RMAN>backup incremental level 2 format='c:\backup\%d_%s.dbf' tablespace users; 周六
RMAN完全恢复
1、恢复数据库
1)、所有数据文件被删除
c:\rman target sys/oracel@test nocatalog
RMAN>startup force mount
RMAN> run {
restore databse ;
recover database;
sql 'alter database open' ;
}
2)、数据文件所在磁盘出现硬件故障
RMAN> run {
startup force mount;
set newname for datafile 1 to 'c:\demo\system01.dbf';
set newname for datafile 2 to 'c:\demo\dundotbs01.dbf';
set newname for datafile 3 to 'c:\demo\sysaux01.dbf';
set newname for datafile 4 to 'c:\demo\users01.dbf';
set newname for datafile 5 to 'c:\demo\example01.dbf';
set newname for datafile 6 to 'c:\demo\test0.dbf';
restore database;
switch datafile all;
recover database;
sql 'alter database open ';
}
2、恢复SYSTEM表空间的数据文件
1)、SYSTEM表空间的数据文件被误删除
RMAN>run {
startup force mount;
restore datafile 1;
recover datafile 1;
sql 'alter database open' ;
}
2)、SYSTEM表空间数据文件所在的磁盘出现故障
RMAN> run {
startup force mount;
set newname for datafile 1 to 'c:\demo\system01.dbf';
restore datafile 1;
switch datafile 1;
recover datafile 1;
sql 'alter database open';
}
3、在OPEN状态下恢复关闭后意外丢失数据文件
1)、数据文件被删除
RMAN>run {
startup force mount;
sql 'alter database datafile 4 offline';
sql 'alter database open ';
restore datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
}
2)、数据文件所在的磁盘出现损坏
RMAN>run {
startup force mount;
sql 'alter database datafile 4 offline';
sql 'alter database open ';
set newname for datafile 4 to 'c:\demo\user01.dbf';
restore datafile 4;
switch datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
}
4、在OPEN状态下恢复打开时意外丢失的数据文件
1)、数据文件被误删除
RMAN>run {
sql 'alter database datafile 4 offline';
restore datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
}
2)、数据文件所在磁盘出现故障
RMAN>run {
sql 'alter database datafile 4 offline';
set newname for datafile 4 to 'c:\demo\user01.dbf';
restore datafile 4;
switch datafile 4 ;
recover datafile 4;
sql 'alter database datafile 4 online';
}
5、在OPEN状态下恢复未备份的数据文件(创造新数据文件后没有进行过备份)
1)、数据文件被误
RMAN>run {
startup force mount;
sql 'alter database datafile 7 offline ';
sql 'alter database open';
restore datafile 7;
recover datafile 7;
sql 'alter database datafile 7 online';
}
2)、数据文件所在磁盘出现故障
RMAN>run {
startup force mount;
sql 'alter database datafile 7 offline ';
sql 'alter database open';
set newname for datafile 7 to 'c:\demo\user04.dbf';
restore datafile 7;
switch datafile 7;
recover datafile 7;
sql 'alter database datafile 7 online';
}
6、恢复表空间
1)、表空间被删除
RMAN>run {
sql 'alter tablespace users offline for recover';
restore tablespace users;
recover tablespace users;
sql 'alter tablespace users online';
}
2)、表空间的数据文件所在磁盘出现故障
RMAN>run {
sql 'alter tablespace users offline for recover';
set newname for datafile 4 to 'c:\demo\user01.dbf';
restore tablespace users;
switch tablespace users;
recover tablespace users;
sql 'alter tablespace users online';
}
7、数据块介质恢复
RMAN>blockrecover device type disk datafile 5 block 20,21,100 ;
RMAN不完全恢复
1、基本时间恢复
c:\set nls_date_format=yyyy-dd-mm hh24:mi:ss
c:\rman target sys/oracle@test nocatalog
RMAN>run {
startup force mount;
set until time='2010-08-22 12:00:08';
restore database;
recover database;
sql 'alter database open resetlogs;
}
2、基于SCN恢复
RMAN>run {
startup force mount;
set until scn=123456;
restore database;
recover database;
sql 'alter database open resetlogs';
}
3、基于日志序列号恢复
RMAN>run {
startup force mount;
set until seqence=10;
restore database;
recover database;
sql 'alter database open resetlogs';
}
4、基于备份控制文件恢复
c:\set nls_date_format=yyyy-dd-mm hh24:mi:ss
c:\rman target sys/oracle@test nocatalog
RMAN>startup force nomount;
RMAN>set dbid=1113606269;
RMAN>restore controlfile from autobackup maxseq 6;
RMAN>alter database mount;
RMAN>run {
set until time='2010-08-22 12:00:08';
restore database;
recover database;
sql 'alter database open resetlogs;
}
当执行了上述4种不完全恢复之后,建议删除早期的所有备份,并重新备份数据库
RMAN>run {
delete noprompt backup;
delete noprompt copy;
backup database format='c:\backup\%d_%s.bak';
sql 'alter system archive log current';
}
RMAN维护命令
REPORT
1、报告目标数据库的物理结构
RMAN>report schema;
2、报告需要备份的数据文件
1)、报告需要转储的增量备份超出特定个数的数据文件
RMAN> report need backup incremental 3;
2)、报告特定天数未备份的数据文件
RMAN>report need backup days 3 tablespace users ;
3)、报告低于特定备份次数的数据文件
RMAN> report need backup redundancy 2 database ;
4)、报告在恢复时间窗口内未备份的数据文件
RMAN> report need backup recovery window of 3 days ;
3、报告陈旧备份
RMAN>report obsolete redundancy 2;
4、报告不可恢复的数据文件
RMAN>report unrecoverable;
LIST
1、列出数据文件备份集
RMAN>list backup of database ;
RMAN>list backup of tablespace users;
RMAN>list backup of datafile 4;
2、列出控制文件备份集
RMAN>list backup of controlfile ;
3、列出归档日志备份集
RMAN>list backup of archivelog all;
4、列出SPFILE备份集
RMAN>list backup of spfile ;
5、列出数据文件映像副本
RMAN>list copy of database;
RMAN>list copy of tablespace users;
RMAN>list copy of datafile 4;
6、列出控制文件映像副本
RMAN>list copy of controlfile;
7、列出归档日志映像副本
RMAN>list copy of archivelog all;
8、列出数据库副本
RMAN>list incarnation of database ;
注意,每次用RESETLOGS选项打开数据库之后都会生成一个新的数据库副本。
9、列出备份集文件的信息
RMAN>list backupset 100;
CROSSCHECK
1、核对所有备份集
RMAN>crosscheck backup;
2、核对所有数据文件的备份集
RMAN>crosscheck backup of database ;
3、核对特定表空间的备
RMAN>crosscheck backup of tablespace system;
4、核对特定数据文件的备份集
RMAN>crosscheck backup of datafile 1;
5、核对控制文件的备份集
RMAN>crosscheck backup of controlfile ;
6、核对SPFILE的备份集
RMAN> crosscheck backup of spfile;
7、核对归档日志的备份集
RMAN> crosscheck backup of archivelog sequence 40;
8、核对所有映像副本
RMAN> crosscheck copy ;
9、核对所有数据文件的映像副本
RMAN> crosscheck copy of database;
10、核对特定表空间的映像副本
RMAN> crosscheck copy of tablespace users;
11、核对特定数据文件的映像副本
RMAN> crosscheck copy of datafile 1;
12、核对控制文件的映像副本
RMAN> crosscheck copy of controlfile;
13、核对归档日志的映像副本
RMAN> crosscheck copy of archivelog sequence 44;
DELETE
1、删除陈旧备份
delete obsolete; #提示
delete noprompt obsolete; #不提示
2、删除EXPIRED备份集
delete noprompt expired backup;
3、删除EXPIRED副本
delete noprompt expired copy ;
4、删除特定备份集
delete noprompt backupset 19;
5、删除特定备份片
delete noprompt backuppiece 'c:\test\demo1.bak';
6、删除所有备份集
delete noprompt backup ; 或者
delete noprompt backupset;
7、删除特定映像副本
delete noprompt datafilecopy 'c:\test\demo.bak'; 删除数据文件
delete noprompt controlfilecopy 'c:\test\controlfile_bak.ctl'; 删除控制文件
delete noprompt archivelog 'c:\test\arc.bak'; 删除归档日志
8、删除所有映像副本
delete noprompt copy;
9、在备份后删除输入对象
backup archivelog all delete input ;
backup backupset 22 format='c:\test\%u.bak' delete input ;
CHANGE
1、改变备份集状态
change backupset 22 unavailable;
2、改变映像副本状态
change datafilecopy 'c:\demo.bak' unavailable ;
change controlfilecopy 'c:\demo.bak' unavailable ;
change archivelog 'c:\demo.bak' unavailable ;
3、建立长期备份
change backupset 100 keep forver logs; 使备份集100永久保留
change backupset 100 keep until time 'sysdate+60' logs; 使备份集100保留60天
change backupset 156 nokeep ; 免除备份集100的保留期限
CATALOG
1、注册副本
catalog datafilecopy 'c:\user01.bak';
2、注册备份片
catalog backuppiece 'c:\demo_10.dbf' ;
3、注册特定目录的所有备份文件
catalog start with 'c:\bak';
4、注销备份记录
change datafilecopy 'c:\user01.bak' uncatalog;
change controlfilecopy 'c:\demo.ctl' uncatalog;
change backuppiece 'c:\demo_10.bak' uncatalog;
恢复目录管理
建立恢复目录
1、建立恢复目录表空间
SQL> create tablespace rman_ts
2 datafile 'D:\oracle\product\10.1.0\db_1\train\rman.dbf'
3 size 15m ;
表空间已创建。
2、建立恢复目录所有者
SQL> create user rman identified by rman
2 default tablespace rman_ts;
用户已创建。
3、授予恢复目录所有者角色
SQL> grant connect,resource,recovery_catalog_owner to rman;
授权成功。
4、建立恢复目录
c:\rman catalog rman/rman@train
RMAN>create catalog;
5、注册目标数据库
RMAN>connect target sys/oracle@train
RMAN>register database;
RMAN>report schema;
使用存储脚本
1、建立存储脚本
C:\>rman catalog rman/rman@train target sys/dddddd@train
RMAN>create script bak_database {
backup format='c:\temp\%d_%s.bak'
database include current controlfile
plus archivelog;
sql 'alter system archive log current' ;
}
2、运行脚本
(1)、在RMAN提示符下运行存储脚本
RMAN>run { execute script bak_database; }
(2)、在命令行运行存储脚本
c:\rman catalog rman/rman@train target sys/dddddd@train script bak_database
3、显示存储脚本内容
RMAN>print script bak_database;
4、替换存储脚本
RMAN>replace script bak_database {
backup database format='c:\temp\%d_%s.bak';
}
5、删除存储脚本
RMAN>delete script bak_database;
6、列出所有存储脚本
RMAN>list script names;
维护恢复目录
1、重新同步恢复目录
RMAN> resync catalog;
2、注销目标数据库
RMAN>unregister database;
当注销了目标数据库之后,会丢失早于controlfile_record_keep_time设置时间的RMAN资料库记录。
3、升级恢复目录
C:\>rman catalog rman/rman@train target sys/dddddd@train
RMAN> upgrade catalog;
RMAN> upgrade catalog;
4、删除恢复目录
C:\>rman catalog rman/rman@train target sys/dddddd@train
RMAN> drop catalog ;
RMAN> drop catalog ;
5、恢复数据库到早期数据库副本
RMAN常用备份恢复命令汇总的更多相关文章
- rman备份恢复命令之switch
rman备份恢复命令之switch 一 switch 命令 1 switch命令用途 更新数据文件名为rman下镜像拷贝时指定的数据文件名 更新数据文件名为 set newname 命令指定的名字. ...
- [转帖]Linux企业运维人员最常用150个命令汇总
Linux企业运维人员最常用150个命令汇总 https://clsn.io/clsn/lx998.html 基本上都用过了. 命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的 ...
- 中小型数据库 RMAN CATALOG 备份恢复方案(二)
中小型数据库呈现的是数据库并发少,数据库容量小,版本功能受限以及N多单实例等特点.尽管如此,数据库的损失程度也会存在零丢失的情形.企业不愿意花太多的钱又要保证数据库的可靠稳定,可是苦煞了我这些搞DB的 ...
- Oracle单机Rman笔记[3]---RMAN脱机备份及命令基础介绍
A.NOARCHIVELOG模式下的物理备份 1.完全关闭数据库 2.备份所有的数据库文件.控制文件.联机重做日志 3.重新启动数据库 B.RMAN的体系结构概述 重新构建控制文件: 将控制文件备份为 ...
- 中小型数据库 RMAN CATALOG 备份恢复方案(一)
对于数据库的稳定性,高可用,跨平台以及海量数据库的处理,Oracle 数据库通常是大型数据库和大企业的首选.尽管如此,仍然不乏很多中小企业想要品尝一下Oracle腥味,因此在Oracle环境中也有不少 ...
- RMAN catalog备份恢复方案
对于数据库的稳定性,高可用,跨平台以及海量数据库的处理,Oracle 数据库通常是大型数据库和大企业的首选.尽管如此,仍然不乏很多中小企业想要品尝一下Oracle腥味,因此在Oracle环境中也有不少 ...
- Linux企业运维人员最常用150个命令汇总 [转]
近来发现新手学习Linux记不住命令,不会分类.不会筛选重点,胡子眉毛一把抓当然记不住了. 特别整理Linux运维最常用150个命令和大家分享,大家学习命令不用在盲目了,根据分类,然后逐步学习! 命令 ...
- (转)老男孩:Linux企业运维人员最常用150个命令汇总
近来老男孩发现新手学习Linux记不住命令,不会分类.不会筛选重点,胡子眉毛一把抓当然记不住了. 特别整理Linux运维最常用150个命令和大家分享,大家学习命令不用在盲目了,根据分类,然后逐步学习! ...
- rman备份恢复命令之switch(转)
一 switch 命令1 switch命令用途更新数据文件名为rman下镜像拷贝时指定的数据文件名更新数据文件名为 set newname 命令指定的名字. 2 switch 命令使用前提条件rman ...
随机推荐
- 判断http 请求来自于手机还是PC
首先收集了部分客户端请求头部信息如下 iPhone微信: User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_1_2 like Mac OS X) App ...
- 你的sscanf用对了吗
用sscanf解析输入字符串 我们平常编写的很多应用程序都会处理各种各样的输入,这些输入或来自本地文件,或来自网络,或来自用户的输入.今天,让我们来看看sscanf这个和字符串相关的函数可能给你带来的 ...
- Arcgis - Personal Geodatabase 和 File Geodatabase的区别.
一.平台支持: 1.Personal Geodatabase:仅可在Windows 上运行: 2.File Geodatabase:跨平台支持,可在Windows 及UNIX.linux上运行. 评 ...
- 32位PLSQL_Developer连接oracle11g_64位
1. 请将你下载的instantclient-basic-win32-10.2.0.5 文件解压.然后复制到你的数据库安装的文件夹下的producti文件夹下,我的是: E:\app\Administ ...
- OpenGL ES 2.0 顶点着色器的妙用
1.飘扬的旗帜(水面起伏) 基本原理 绘制一帧画面时由顶点着色器根据一定的规则变换各个顶点的位置,即可得到旗帜迎风飘扬的效果. 为了使旗帜的飘动过程比较平滑,采用基于正弦曲线的顶点位置变换规则.
- tomcat启动报错总结
错误一 webapps\ROOT does not exist or is not a readable directory 错误原因:在tomcat的server.xml的context中配置了不存 ...
- Jquery简略API使用
都是个人随手笔记,既然开通了博客园就分享给大家.谨做为参考,具体大家自己测试以及使用 ★ $() ★ JQ的一个万能获取对象的函数(获取跟CSS获取元素是一样的)$(function(){}); 替代 ...
- Python核心编程(第八章)--条件和循环
如果一个复合语句(if子句,while或for循环)的代码仅仅包含一行代码,可以和前面的语句写在同一行上: elif语句(else-if) 条件表达式(三元操作符) X if C else Y 计 ...
- HTML&CSS基础学习笔记—创建列表
创建一张表格 很多时候我们需要在网页上展示一些数据,使用表格可以很好的来展示数据. 在HTML中<table>标签定义 表格. <table> </table> 添 ...
- Hadoop-2.7.1集群环境搭建
摘自:http://blog.csdn.net/u014039577/article/details/49813531 由于日志数据量越来越大,数据处理的逻辑越来越复杂,同时还涉及到大量日志需要批处理 ...