ORACLE不完全恢复的几种情况
ORACLE不完全恢复的几种情况
1、介绍
RMAN不完全恢复的三个标准模式:基于time、基于scn和基于sequence,与手工不完全恢复相比原理类似,语法稍有不同:
2、不完全恢复的几种情况
#### 1)不完全恢复用于最小化测试备份
####①备份一部分数据文件
RMAN> backup datafile 1,2 format '/u01/rman_bak/%s.bak';
RMAN> backup datafile 1,2 format '/u01/rman_bak/%s.bak';
启动 backup 于 2018-04-22 16:14:25
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=/u01/app/oracle/oradata/vbox66db/system01.dbf
输入数据文件: 文件号=00002 名称=/u01/app/oracle/oradata/vbox66db/sysaux01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 2018-04-22 16:14:25
通道 ORA_DISK_1: 已完成段 1 于 2018-04-22 16:16:00
段句柄=/u01/rman_bak/3.bak 标记=TAG20180422T161425 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:35
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 2018-04-22 16:16:07
通道 ORA_DISK_1: 已完成段 1 于 2018-04-22 16:16:11
段句柄=/u01/rman_bak/4.bak 标记=TAG20180422T161425 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
完成 backup 于 2018-04-22 16:16:11
SQL> create table scott.emp1 as select * from scott.emp;
###②切换日志
alter system switch logfile;
③备份其余的数据文件
select FILE#,name from v$datafile;
SYS@vbox66in>select FILE#,name from v$datafile;
FILE# NAME
1/u01/app/oracle/oradata/vbox66db/system01.dbf
2/u01/app/oracle/oradata/vbox66db/sysaux01.dbf
3/u01/app/oracle/oradata/vbox66db/undotbs01.dbf
4/u01/app/oracle/oradata/vbox66db/users01.dbf
backup datafile 3,4 format ‘/u01/rman_bak/%s.bak’;
RMAN> backup datafile 3,4 format '/u01/rman_bak/%s.bak';
启动 backup 于 2018-04-22 16:29:20
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00003 名称=/u01/app/oracle/oradata/vbox66db/undotbs01.dbf
输入数据文件: 文件号=00004 名称=/u01/app/oracle/oradata/vbox66db/users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 2018-04-22 16:29:22
通道 ORA_DISK_1: 已完成段 1 于 2018-04-22 16:29:25
段句柄=/u01/rman_bak/5.bak 标记=TAG20180422T162921 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 2018-04-22 16:29:25
④切换日志
alter system switch logfile;
create table scott.emp2 as select * from scott.emp;
⑤干净的关闭数据库,删除所有数据文件
SYS@vbox66in>shutdown immediate; 发生完全检查点,更新控制文件和数据文件头的SCN
[oracle@vbox66 vbox66db]$ rm -rf system01.dbf
[oracle@vbox66 vbox66db]$ rm -rf sysaux01.dbf
[oracle@vbox66 vbox66db]$ rm -rf undotbs01.dbf
[oracle@vbox66 vbox66db]$ rm -rf users01.dbf
⑥RMAN按时间点做不完全恢复
SYS@vbox66in>startup mount;
RMAN> restore database;
RMAN> alter database open;
RMAN> alter database open;
RMAN-00571: >===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK >FOLLOWS ===============
RMAN-00571: >===========================================================
RMAN-03002: alter db 命令 (在 04/22/2018 16:50:09 上) 失败
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: >'/u01/app/oracle/oradata/vbox66db/system01.dbf'
SYS@vbox66in>select file#,checkpoint_change# from v$datafile;FILE# CHECKPOINT_CHANGE#1 9881042 9881043 9881044 988104 SYS@vbox66in>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#1 986289 最小化测试需要前滚到9875132 986289 最小化测试需要前滚到9875133 9875134 987513
RMAN> recover database until scn 987513; 此scn是所有数据文件恢复后的最小打开数据库的scn
RMAN> recover database until scn 987513;
启动 recover 于 2018-04-22 17:11:06
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:02
完成 recover 于 2018-04-22 17:11:08
SYS@vbox66in>select file#,checkpoint_change# from v$datafile;FILE# CHECKPOINT_CHANGE#1 9881042 9881043 9881044 988104SYS@vbox66in>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#1 9875132 9875133 9875134 987513
⑥打开数据库
SYS@vbox66in>alter database open resetlogs;数据库已更改。SYS@vbox66in>select file#,checkpoint_change# from v$datafile;FILE# CHECKPOINT_CHANGE#1 9875172 9875173 9875174 987517SYS@vbox66in>select file#,checkpoint_change# from v$datafile_header;FILE# CHECKPOINT_CHANGE#1 9875172 9875173 9875174 987517
⑦验证
SYS@vbox66in>select * from scott.emp1; //有此文件SYS@vbox66in>select * from scott.emp1; //无此文件
###2) RMAN恢复误删除表空间
必须通过备份的控制文件(即含有删除的表空间结构的老控制文件)进行恢复。本例要做的是drop tablespace test,然后再通过不完全恢复,使数据库在drop表空间前的那一刻打开,从而恢复test表空间及t1表的内容。
注: Oracle11gR2版可以支持数据库处于open方式下,以TSPITR方式恢复误删除的表空间。
①创建表空间和表
create tablespace test datafile '/u01/app/oracle/oradata/vbox66db/test01.dbf' size 20M;
create table test_table (id int,name varchar2(30)) tablespace test;
insert into test_table values(1,'aaa');
insert into test_table values(2,'bbb');
###②对数据库进行全备
RMAN> backup database format '/u01/rman_bak/all_%U.bak';
RMAN> backup database format '/u01/rman_bak/all_%U.bak';
启动 backup 于 2018-04-22 19:40:43
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称>=/u01/app/oracle/oradata/vbox66db/system01.dbf
输入数据文件: 文件号=00002 名称>=/u01/app/oracle/oradata/vbox66db/sysaux01.dbf
输入数据文件: 文件号=00003 名称>=/u01/app/oracle/oradata/vbox66db/undotbs01.dbf
输入数据文件: 文件号=00005 名称>=/u01/app/oracle/oradata/vbox66db/test01.dbf
输入数据文件: 文件号=00004 名称>=/u01/app/oracle/oradata/vbox66db/users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 2018-04-22 19:40:44
通道 ORA_DISK_1: 已完成段 1 于 2018-04-22 19:42:19
段句柄=/u01/rman_bak/all_0bt10gts_1_1.bak 标记>=TAG20180422T194043 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:35
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 2018-04-22 19:42:22
通道 ORA_DISK_1: 已完成段 1 于 2018-04-22 19:42:29
段句柄=/u01/rman_bak/all_0ct10h0r_1_1.bak 标记>=TAG20180422T194043 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
完成 backup 于 2018-04-22 19:42:29
③删除表空间及查看表空间删除时间
SYS@vbox66in>drop tablespace test including contents and datafiles;
tail /u01/app/oracle/diag/rdbms/vbox66db/vbox66in/trace/alert_vbox66in.log
[oracle@vbox66 trace]$ tail alert_vbox66in.log
Sun Apr 22 17:22:36 2018
SMCO started with pid=30, OS id=4136
Sun Apr 22 19:28:40 2018
create tablespace test datafile >'/u01/app/oracle/oradata/vbox66db/test01.dbf' size 20M
Completed: create tablespace test datafile >'/u01/app/oracle/oradata/vbox66db/test01.dbf' size 20M
Sun Apr 22 19:45:53 2018
drop tablespace test including contents and datafiles
Sun Apr 22 19:46:09 2018 //这是删除表空间的完成时间,后面取>时间要比它提前一点(考虑提前1分钟)
Deleted file /u01/app/oracle/oradata/vbox66db/test01.dbf
Completed: drop tablespace test including contents and >datafiles
④删除所有控制文件和数据文件
SYS@vbox66in> select dbid from v$database; //rman恢复是用到
SYS@vbox66in>shutdown immediate
[oracle@vbox66 vbox66db]$ mv system01.dbf system01.dbf.bak
[oracle@vbox66 vbox66db]$ mv undotbs01.dbf undotbs01.dbf.bak
[oracle@vbox66 vbox66db]$ mv sysaux01.dbf sysaux01.dbf.bak
[oracle@vbox66 vbox66db]$ mv users01.dbf users01.dbf.bak
[oracle@vbox66 vbox66db]$ mv temp01.dbf temp01.dbf.bak
[oracle@vbox66 vbox66db]$ mv control01.ctl control01.ctl.bak
[oracle@vbox66 vbox66db]$ mv control02.ctl control02.ctl.bak
⑤准备对drop tablespace test做不完全恢复
SYS@vbox66in>startup nomount;
run {
startup nomount;
set dbid=3269052407;
restore controlfile from '/u01/rman_bak/all_0ct10h0r_1_1.bak' until time '2018-04-22 19:45:09';
alter database mount;
restore database;
recover database until time '2018-04-22 19:45:09';
alter database open resetlogs;
}
RMAN> run {
2> startup nomount;
3> set dbid=3269052407;
4> restore controlfile from >'/u01/rman_bak/all_0ct10h0r_1_1.bak' until time '2018-04-22 >19:45:09';
5> alter database mount;
6> restore database;
7> recover database until time '2018-04-22 19:45:09';
8> alter database open resetlogs;
9> }Oracle 实例已启动
系统全局区域总计 839282688 字节
Fixed Size 2257880 字节
Variable Size 545262632 字节
Database Buffers 289406976 字节
Redo Buffers 2355200 字节正在执行命令: SET DBID
启动 restore 于 2018-04-22 20:18:29
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=18 设备类型=DISK
通道 ORA_DISK_1: 正在还原控制文件
通道 ORA_DISK_1: 还原完成, 用时: 00:00:03
输出文件名=/u01/app/oracle/oradata/vbox66db/control01.ctl
输出文件名=/u01/app/oracle/oradata/vbox66db/control02.ctl
完成 restore 于 2018-04-22 20:18:32数据库已装载
释放的通道: ORA_DISK_1
启动 restore 于 2018-04-22 20:18:38
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=18 设备类型=DISK通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 >/u01/app/oracle/oradata/vbox66db/system01.dbf
通道 ORA_DISK_1: 将数据文件 00002 还原到 >/u01/app/oracle/oradata/vbox66db/sysaux01.dbf
通道 ORA_DISK_1: 将数据文件 00003 还原到 >/u01/app/oracle/oradata/vbox66db/undotbs01.dbf
通道 ORA_DISK_1: 将数据文件 00004 还原到 >/u01/app/oracle/oradata/vbox66db/users01.dbf
通道 ORA_DISK_1: 将数据文件 00005 还原到 >/u01/app/oracle/oradata/vbox66db/test01.dbf
通道 ORA_DISK_1: 正在读取备份片段 >/u01/rman_bak/all_0bt10gts_1_1.bak
通道 ORA_DISK_1: 段句柄 = >/u01/rman_bak/all_0bt10gts_1_1.bak >标记 = >TAG20180422T194043
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:45
完成 restore 于 2018-04-22 20:20:25启动 recover 于 2018-04-22 20:20:25
使用通道 ORA_DISK_1正在开始介质的恢复
线程 1 序列 1 的归档日志已作为文件 >/u01/app/oracle/oradata/vbox66db/redo01.log 存在于磁盘上
归档日志文件名=/u01/app/oracle/oradata/vbox66db/redo01.log 线>程=1 序列=1
介质恢复完成, 用时: 00:00:01
完成 recover 于 2018-04-22 20:20:28数据库已打开
⑥验证
SYS@vbox66in>select * from test_table; ID NAME1 aaa2 bbb
注:①不能使用当前的控制文件恢复误删除的表空间,因为当前控制文件已经没有该表空间的记录了。②DBID是RMAN识别数据库的身份证,保存在控制文件中,set dbid=对于控制文件自动恢复(from autobackup)是必要的;
ORACLE不完全恢复的几种情况相关推荐
- Oracle不使用索引的几种情况列举
本文介绍了几种不使用索引的情况,本文实验的数据库版本均为11.2.0.4 情况1: 我们在使用一个B*树索引,而且谓词中没有使用索引的最前列. 如果这种情况,可以假设有一个表T,在T(x,y)上有一个 ...
- oracle or索引失效_oracle数据库中索引会失效的几种情况
创建Oracle 索引的目的是为了避免全表扫描数据,提高查询效率,但是如果sql语句写的不好致使索引失效,反而会影响数据查询效率.以下几种情况就会导致索引失效: 没有 WHERE 子句 众所周知,添加 ...
- oracle数据库中索引会失效的几种情况
创建Oracle 索引的目的是为了避免全表扫描数据,提高查询效率,但是如果sql语句写的不好致使索引失效,反而会影响数据查询效率.以下几种情况就会导致索引失效: 1. 没有 WHERE 子句 众所周知 ...
- Oracle数据库重复数据删除的三种情况
在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来很多的不便,那么怎么删除这些重复没有用的数据呢? 重复数据删除技术可以提供更大的备份容量,实现更长 ...
- Oracle 索引扫描的五种类型
之前在讨论CBO和RBO的时候提到了索引扫描的几种类型. Oracle Optimizer CBO RBO http://blog.csdn.net/tianlesoftware/archive/20 ...
- Oracle数据库备份与恢复的三种方法
Oracle数据库备份与恢复的三种方法 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/ ...
- myeclipse无法启动tomcat的一种情况
2019独角兽企业重金招聘Python工程师标准>>> 配置的jdk是jdk1.7.0_51,tomcat是apache-tomcat-6.0.30,配置的环境变量经检验没有问题. ...
- sql中索引不会被用到的几种情况
转载自 sql中索引不会被用到的几种情况 1.查询谓词没有使用索引的主要边界,换句话说就是select *,可能会导致不走索引. 比如,你查询的是SELECT * FROM T WHERE Y=XX ...
- transaction缩写为什么是tx_TX Transaction locks常见的4种情况
TX锁最常见的有以下4种情况: 由于行被活动事务锁住导致的等待. 由于唯一约束或主键约束导致的等待. 由于数据块ITL槽不足导致的等待. 由于行包含在同一个位图索引片段中导致的等待. 在LDY用户下创 ...
最新文章
- HTTP协议 ----响应消息
- python3.5中pdfkit的详细配置与使用
- python学习过程中随手写的测试脚本-testloop.py
- 恒压板框过滤实验数据处理_高考化学实验中:那些不常见的【特殊仪器】与装置,难得的资料...
- window10内核Linux,windows 10中发布完整的Linux内核
- Android 8.0 AutoFill自动填写框架实践
- 【蓝桥杯嵌入式】【STM32】4_TIM之定时器及其中断、PWM初探
- 鸿蒙升级后能恢复安卓吗,升级了鸿蒙系统怎么卸载鸿蒙系统?升级了鸿蒙还能用安卓吗?...
- MATLAB DBSCAB简介
- 企业微信第三方应用Demo源码
- nginx安装三大的命令的解释./configure make make install
- 软件测试面试考什么综合素质,综合素质测评都考了啥
- 专为轻运动而生的南卡NEO全新发布,定位骨传导运动耳机新标杆!
- 使用vue-qr生成带中间带图片的二维码
- 为什么机器人运动学逆解最好采用双变量反正切函数atan2而不用反正/余弦函数?
- StatusBarUtil 状态栏工具类(实现沉浸式状态栏/变色状态栏)
- 客户端伪造代理服务器ip进行sql注入
- ERP系统对接方案,API接口封装系列(高并发)
- SAP:ZSD010 Download Requirements Plan Data
- 面向对象编程---上
热门文章
- 英语 面包为什么不可数?
- Java数组去重的多种方法,[Java教程]JavaScript常见的五种数组去重的方式
- 7-32 中位数 (10 分)
- 基于顺序存储结构的图书信息表的旧图书的出库(C++)
- 数据库(4)表的基本操作
- php mongo 范围查询语句,【MongoDB】数组和范围查询的相互作用
- mysql转移数增删改查_MySql CURD操作(数据的增删改查)
- mysql 排序字段索引吗_Mysql 排序优化与索引使用(转)
- BZOJ5300 [Cqoi2018]九连环 【数学】【FFT】
- Hbase对时,时差范围的确定