【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.3-闪回数据库技术

本文主要是介绍【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.3-闪回数据库技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 闪回数据库

1.1 使用场景和限制

(1)一种快速的数据库恢复方案,这种恢复是基于用户的逻辑错误

比如:

  • 对表中的数据做了错误的操作
  • 插入了大量错误的数据
  • 删除了一个用户等

        此时通常是将数据库恢复到之前的某一个时间点。

        相比于原始的恢复方式需要先备份数据文件,再使用归档日志恢复到以前的时间点。

(2)闪回日志由oracle自动创建,并保存于闪回恢复区中,由闪回恢复区管理,因为是自动管理的,所以如果闪回恢复区空间不足,闪回日志也会自动删除。所以闪回恢复区应该适当的设置的大一点。

(3)使用闪回数据库的限制

        在以下几种情况下不能使用闪回数据库的特性:

  1. 如果数据文件被删除或者缩短
  2. 如果在闪回时间范围之内复原或者重建了一个控制文件
  3. 在resetlogs操作之前
  4. 表空间被删除

1.2 使用闪回数据库技术之前的准备

        打开闪回数据库功能

(1)确保数据库处于归档模式

archive log list# 配置归档模式:
startup mount
alter database archivelog;

(2)查看快闪恢复区的位置和设置的大小(闪回日志存储的位置和空间的大小)

show parameter db_recovery_file_dest;

(3)启用闪回数据库功能

alter database flashback on;

        启动之后我们可以通过试图v$database查看启动的状态。

select dbid,name,flashback_on from v$database;

(4)通过试图查看最多能够闪回的时间以及修改能闪回的最大天数

        设置参数DB_FLASHBACK_RETENTION_TARGET,该参数默认值为1440分钟,表示可以将数据库闪回到过去的时间,也就是默认可以闪回一天前的数据。

show parameter db_flashback_retention;
# 我们可以动态的修改这个参数的值,使的数据库可以闪回到更长的时间,比如1个月 24*60*30=43200
alter system set db_flashback_retention_target=43200 scope=both;

(5)查看系统时间

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

(6)查看我们能够闪回到的最早的scn号 和最早的时间,并且评估闪回恢复区的大小

select * from v$flashback_database_log;# 查看能闪回到的最早时间
select to_char(oldest_flashback_time,'yyyy-mm-dd hh24:mi:ss') from v$flashback_database_log;

1.3 闪回数据库的方法

1.3.1 在RMAN下(3种方法)

(1)使用to_date将数据库闪回到指定的时间点

RMAN>flashback database to time=to_date('2017-06-29 12:30:00','yyyy-mm-dd hh24:mi:ss');

(2)将数据库闪回到指定的SCN,该方法一般不使用,因为SCN号一般不会去查询

这篇关于【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.3-闪回数据库技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043581

相关文章

Mysql数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符

《sqlserver、mysql、oracle、pgsql、sqlite五大关系数据库的对象名称和转义字符》:本文主要介绍sqlserver、mysql、oracle、pgsql、sqlite五大... 目录一、转义符1.1 oracle1.2 sqlserver1.3 PostgreSQL1.4 SQLi

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Java中Redisson 的原理深度解析

《Java中Redisson的原理深度解析》Redisson是一个高性能的Redis客户端,它通过将Redis数据结构映射为Java对象和分布式对象,实现了在Java应用中方便地使用Redis,本文... 目录前言一、核心设计理念二、核心架构与通信层1. 基于 Netty 的异步非阻塞通信2. 编解码器三、

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Java HashMap的底层实现原理深度解析

《JavaHashMap的底层实现原理深度解析》HashMap基于数组+链表+红黑树结构,通过哈希算法和扩容机制优化性能,负载因子与树化阈值平衡效率,是Java开发必备的高效数据结构,本文给大家介绍... 目录一、概述:HashMap的宏观结构二、核心数据结构解析1. 数组(桶数组)2. 链表节点(Node

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

Redis中Hash从使用过程到原理说明

《Redis中Hash从使用过程到原理说明》RedisHash结构用于存储字段-值对,适合对象数据,支持HSET、HGET等命令,采用ziplist或hashtable编码,通过渐进式rehash优化... 目录一、开篇:Hash就像超市的货架二、Hash的基本使用1. 常用命令示例2. Java操作示例三

Redis中Set结构使用过程与原理说明

《Redis中Set结构使用过程与原理说明》本文解析了RedisSet数据结构,涵盖其基本操作(如添加、查找)、集合运算(交并差)、底层实现(intset与hashtable自动切换机制)、典型应用场... 目录开篇:从购物车到Redis Set一、Redis Set的基本操作1.1 编程常用命令1.2 集