基于时间的不完全恢复

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:        基于时间的不完全恢复是指当出现了用户错误比如失误操作 drop table ,truncate table 时,使用备份文件,归档日志和重做日志文件将数据库恢复到用户误操作点的状态,从而恢复用户数据。

       基于时间的不完全恢复是指当出现了用户错误比如失误操作 drop table ,truncate table 时,使用备份文件,归档日志和重做日志文件将数据库恢复到用户误操作点的状态,从而恢复用户数据。

实验步骤如下:

1)先建立一个test表,并插入数据1, 2, 3,提交,切换日志文件。

SQL> create table t1 (num number) tablespace test;

表已创建。

SQL> insert into t1 values (1);

已创建 1 行。

SQL> commit;

提交完成。

SQL> insert into t1 values (2);

已创建 1 行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

SQL> insert into t1 values (3);

已创建 1 行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

2)查看误操作的时间点. 删除表。

SQL> host date

2010-05-12

SQL> host time

21:16:56'

SQL> drop table t1;

表已删除。

3)关闭数据库,在使数据库处于加载状态

SQL> shut immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  535662592 bytes                                      
Fixed Size                  1334380 bytes                                      
Variable Size             138412948 bytes                                      
Database Buffers          390070272 bytes                                      
Redo Buffers                5844992 bytes                                      
数据库装载完毕。

4)复制所有数据文件备份,为了将数据库恢复到过去的时间点,必须复制所以数据文件的备份。

SQL> @f:\sql\recover.sql

注意:当复制备份文件时,必须确保备份文件的时间点在恢复时间点之前。可以通过以下查询获取备份文件的时间点:

SQL> select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss') from v$recover_file;

     FILE# TO_CHAR(TIME,'YYYY-                                                 
---------- -------------------                                                 
       1 2010-05-10 16:24:02                                                 
         2 2010-05-10 16:24:02                                                 
         3 2010-05-10 16:24:02                                                 
         4 2010-05-10 16:24:02
         5 2010-05-10 16:24:02   
         6 2010-05-10 16:24:02

 2010-05-10 16:24:02  小于 '2010-05-12 21:16:56'
SQL> recover database until time '2010-05-12 21:16:56'
ORA-00279: 更改 2442330 (在 05/11/2010 22:40:23 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\APP\YANG\ARCHIVE2\79_1_715961434.LOG
ORA-00280: 更改 2442330 (用于线程 1) 在序列 #79 中
指定日志: {=suggested | filename | AUTO | CANCEL}
auto
已应用的日志。
完成介质恢复。

5)以resetlogs方式打开数据库。
SQL> alter database open resetlogs;

数据库已更改。

SQL> select * from t1;

       NUM                                                                     
----------                                                                     
         1                                                                     
         2                                                                     
         3
        ------------由查询结果可知 恢复成功。         

6)当然执行了resetlogs之后,建议进行数据库的全备份。
SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            f:\app\yang\archive2
最早的联机日志序列     1
下一个存档日志序列   1
当前日志序列           1


SQL> alter database begin backup;

数据库已更改。

SQL> @f:\sql\hotbak.sql----关于备份的脚本
SQL> alter database end backup;

数据库已更改。

SQL> alter database backup controlfile
  2  to 'f:\lib\control.ctl' reuse;

数据库已更改。

SQL> alter system archive log current;------保持一致性。这一步,有时容易忽略

系统已更改

                                                    

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
Java
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
【极问系列】springBoot集成elasticsearch出现Unable to parse response body for Response
1507 2
|
9月前
|
消息中间件 存储 架构师
认证故事|阿里云新版ACE全球第五人考试经历回顾
认证故事|阿里云新版ACE全球第五人考试经历回顾
|
8月前
|
人工智能 自然语言处理 搜索推荐
grok3 ai官网 _ Grok3官方网站入口 _ grok3网页版下载
人工智能领域风起云涌,xAI 近期重磅发布了其最新旗舰模型 Grok 3,同时推出了全新的 Grok iOS 及 Web 应用体验。此举标志着 xAI 正式向 AI 霸主地位发起冲击!
1911 6
|
10月前
|
缓存 架构师 Java
Maven实战进阶(01)面试官:Maven怎么解决依赖冲突?| 有几种解决方式
本文介绍了Maven的核心功能和依赖管理技巧。Maven是基于项目对象模型(POM)的构建工具,具备跨平台、标准化、自动化等特性。其三大核心功能为依赖管理、仓库管理和项目构建。依赖管理通过pom.xml文件引入第三方组件并自动下载;仓库管理涉及中央仓库、私服和本地仓库;项目构建则通过生命周期管理编译、测试、打包等流程。文章还详细讲解了依赖冲突的解决方法,包括默认规则、手工排除和版本指定等策略。
|
传感器 监控 安全
物联网:NB卡的应用场景
物联网NB-IoT(窄带物联网)卡作为一种低功耗、广覆盖、大连接的物联网通信技术,广泛应用于各种需要远程监控、数据传输和智能管理的场景中。以下是一些NB-IoT卡的具体应用场景及其操作概述:
|
11月前
|
消息中间件 Java 中间件
MQ四兄弟:如何保证消息可靠性
本文介绍了RabbitMQ、RocketMQ、Kafka和Pulsar四种消息中间件的可靠性机制。这些中间件通过以下几种方式确保消息的可靠传输:1. 消息持久化,确保消息在重启后不会丢失;2. 确认机制,保证消息从生产者到消费者都被成功处理;3. 重试机制,处理失败后的重试;4. 死信队列,处理无法消费的消息。每种中间件的具体实现略有不同,但核心思想相似,都是从生产者、中间件本身和消费者三个角度来保障消息的可靠性。
541 0
|
自动驾驶 物联网 5G
深入解析5G NR(新无线电)及其主要特性
深入解析5G NR(新无线电)及其主要特性
2141 2
|
存储 固态存储 Linux
如何看电脑的配置
**电脑配置关乎日常使用体验,包括CPU、内存、硬盘、显卡、主板和操作系统等。要查看配置,可右击“此电脑”选“属性”查看基础信息,使用任务管理器检查性能,运行"msinfo32"获取详细系统信息,或借助如CPU-Z等第三方工具。了解配置助于选购和优化电脑。**
如何看电脑的配置
|
网络协议 开发工具 git
使用 cloudflare 解决docker镜像问题
无聊的人才搞这么复杂,我推荐使用更简单有效的方法:https://developer.aliyun.com/article/1575426
|
SQL 数据管理 数据库
DROP 和 TRUNCATE 命令的详细区别
【8月更文挑战第31天】
1519 0