Oracle Blogs上的Flashback文章

news2024/12/23 6:29:00

Oracle Database und Temporal Validity

Temporal Validity和Flashback的区别?两者通常配合使用。
延伸阅读:Oracle 数据库和时间有效性

时间有效性也称为 Flashback Time Travel。

显示不可见的列:

set colinvisible on
desc <table_name>; 

时间有效性的SELECT的字句为:

VERSIONS PERIOD FOR VALID_TIME BETWEEN <start> AND <end>

和Flashback的关联是通过过程DBMS_FLASHBACK_ARCHIVE:

-- level可以是All,CURRENT和ASOF
DBMS_FLASHBACK_ARCHIVE.ENABLE_AT_VALID_TIME (
   level          IN    VARCHAR2, 
   query_time     IN    TIMESTAMP DEFAULT SYSTIMESTAMP);

DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA (
   owner_name     IN    VARCHAR2, 
   table_name     IN    VARCHAR2);

Why Is Flashback Often Better Than Backups?

逻辑错误指由人和应用造成的错误。但数据库并没有报错。

复制并不能防止逻辑错误,除非延迟复制。

备份和恢复可以应对逻辑错误,但通常太慢太复杂。

这句话是错的,然后后面的解释也完全错了:

In Oracle, we can perform a flashback table operation. The database must have flashback logging enabled.

这文章只能给2星。

Flashback Database and Flashback Logs

这篇文章讲了Reuse和Delete Flashback Logs的区别。不错,给4星。

Flashback是高可用的特性,好处是简单。

Flashback技术包括逻辑和物理2种:

  • Logical Flashback,依赖Undo数据,恢复表和交易。
  • Physical Flashback,依赖Flashback logs,恢复整库。

Flashback Database的先决条件:

  • 开启归档
  • 配置 fast recovery area
  • 设置flashback retention target

The retention target signals the database to copy images of each altered block in every data file into the flashback log at regular intervals. These images are later used to reconstruct a previous incarnation of the database on demand. Any remaining changes are recovered using online and archived redo logs if available.

管理flashback logs的四种操作如下:

  • Create, 如果满足以下条件,则会创建闪回日志:
    • fast recovery area有足够的空间
    • DB_FLASHBACK_RETETION_TARGET已设置
  • Delete, 仅在以下情况下可能会删除闪回日志
    • The flashback logs satisfy a normal restore point and there is space pressure in the fast recovery area
    • Flashback logs are obsolete as per retention target and corresponding archived redo logs have been deleted due to space pressure
    • Flashback logs have already been backed up to tape
  • Reuse or Overwrite, 闪回日志在以下情况下被重用或覆盖
    • 不满足保留目标
    • 不属于保证还原点
    • FRA有空间压力时最老的闪回日志
  • Retain, 仅在以下情况下保留闪回日志
    • 需要闪回日志来满足保证的还原点
    • FRA没有空间压力

还需要注意的是,除了设置闪回保留目标和创建保证还原点外,不能在快速恢复区管理闪回日志。

Why You Can Get ORA-00942 Errors with Flashback Query

这篇文章谈了Flashback Data Archive。

通常,您只能使用它来查询撤消允许的最远时间(默认/标准的Flashback Query)。 借助闪回数据存档 (FBA),Oracle 可以永久存储表的历史记录(直至保留期)。

Flashback Database

Flashback Database类似于盒式录音机上的倒带按钮或CD 播放器上的重置按钮。

虽然很少用于生产系统,因为在重置时间后所有数据都会丢失 (除非您事先导出),但有许多可能的用途,特别是对于测试或备用系统:

  • 应用升级失败系统重置
  • 具有后续前滚功能的替代时间点恢复 (PITR)(特别适用于备用系统)
  • 可重现的起点的测试数据库(例如,用于实际应用程序测试)
  • 数据库升级测试

一些数据库功能隐含使用Flashback Database,都和ADG有关:

  • Snapshot Standby
  • 备用数据库的重新实例化(例如Fast Start Failover)

一些人不愿使用Flashback Databas,因为性能开销和空间管理,但是:

  • 启用Flashback Logs的负载通常相对较低(大约 5%)
  • 闪回日志所需的额外空间也可以相对精确地确定。

扩展阅读Flashback Database

这篇文章中提到了Flashback Log的启用有标准和隐式2种方式。

-- 标准
alter database flashback on
-- 隐式
create restore point SolbachGRP guarantee flashback database;

-- 可以从flashback_on属性看出区别,标准是YES,隐式是RESTORE POINT ONLY
SQL> SELECT flashback_on, log_mode FROM v$database;

FLASHBACK_ON       LOG_MODE
------------------ ------------
RESTORE POINT ONLY ARCHIVELOG

Flashback in Oracle Database

Oracle 数据库提供了闪回查询、闪回删除(DROP)、时间有效性、闪回数据库、闪回事务、闪回数据存档或闪回版本查询等技术。

所有技术都可以提前使用,无需额外安装。并且都包含在企业版中。

扩展阅读:Flashback in Oracle
其中提到:

注意:重要的是要知道闪回数据库技术也可以在不使用闪回日志记录的情况下使用。但是,这需要使用保证还原点。

准确的说,应该是保证还原点隐式的启用了Flashback Database。

下表也很有用:

技术配置
Flashback Query自动 UNDO管理
Flashback Versions Query自动 UNDO管理
Flashback Query自动 UNDO管理
Flashback Transaction Query自动 UNDO管理+Supplemental Logging
Flashback Table自动 UNDO管理+ Table Row Movement
Flashback Drop初始化参数 RECYCLEBIN
Flashback TransactionArchive Log 和 Supplemental Logging
Flashback DatabaseArchive Log 和 Flashback Log 模式
Flashback Data ArchiveFlashback Archive
Temporal Validity隐含列

关于许可:
闪回表、闪回数据库、闪回事务和闪回事务查询在企业版中可用。归档最初是作为 Oracle 数据库 11gR1 企业版的一个独立选项引入的,名称为 Total Recall——意为“完美的记忆”。后来改名为Flashback Time Travel,也免费了。也就是说,FDA,Total Recall和Flashback Time Travel是一回事。

Total Recall是11g的特性,在OBE的这篇文章Using Total Recall提到:

The Flashback Data Archive feature is part of the Total Recall option.

很有意思,这篇文档Oracle Total Recall Oracle Banking ELCM Release专门介绍了Total Recall。

只有Optimization for Flashback Time Travel特性需要高级压缩选件。

在11gR2的License Guide中是这么说的:

For releases earlier than Oracle Database 11g Release 2 (11.2.0.4): You must license the Oracle Advanced Compression option to use Flashback Data Archive (formerly known as Total Recall).
Beginning with Oracle Database 11g Release 2 (11.2.0.4): You must license the Oracle Advanced Compression option to use Optimization for Flashback Data Archive history tables. Basic Flashback Data Archive—without history table optimization—is available in all editions.

How to Recover Data (Without a Backup!)

分场景介绍了Flashback的技术:

  • Restore a Whole Table - Flashback Table
  • Recover a Few Rows - Flashback Query
  • Recover a Few Rows++ - Flashback Data Archive
  • Restore Dropped Tables - Flashback Drop
  • Revert the Whole Database! - Flashback Database

A Fresh Look at Auditing Row Changes

使用触发器进行审计很常见,并且仍然经常被视为捕获 Oracle 数据库表上的行更改的唯一可能解决方案。 但是,在 Oracle 数据库 11.2.0.4 及更高版本中,现在可以使用闪回数据存档来满足审计要求——一种简单、更高效、更安全的解决方案。

执行计划中可以看到对FDA中表的引用。

Restore to the Point

本文重点介绍了Restore Point,即SCN的别名。以及其适用场景:

  1. 反复测试,测试后需要回到测试数据基线
  2. 批处理修改数据错误时,回退到批处理前。
  3. 升级失败后,回到升级前

Flashback Database是10g Release 2的技术。其启用过程:

  1. 开启归档
  2. 设置FRA
  3. 启用flashback logging

restore point并不能保证一定可以恢复,但guaranteed restore point可以。

闪回日志会保留到 db_flashback_retention_target 数据库参数指定的时间。

较旧的日志不会自动删除;但是,闪回恢复区的最大大小由 db_recovery_file_dest_size 数据库参数决定,在本例中为 2GB。当 Tom 的闪回恢复区达到 2GB 时,Oracle 数据库必须删除一些早于 1,440 秒的日志以为新日志腾出空间。因此,当 Tom 想要执行闪回时,所选还原点所需的日志已过时,从而导致了错误。

这里有个小错误,1440秒应为1440分钟,因为这是DB_FLASHBACK_RETENTION_TARGET 的默认值,即1天。

Flashback Technologies Features

这是官网的描述。全文抄录如下:

Flashback supports recovery at all levels including the row, transaction, table, and the entire database. Flashback provides an ever growing set of features to view and rewind data back and forth in time, namely:

  • Flashback Database: restore the entire database to a specific point-in-time, using Oracle-optimized flashback logs, rather than via backups and forward recovery.
  • Flashback Table: easily recover tables to a specific point-in-time, useful when a logical corruption is limited to one or a set of tables instead of the entire database.
  • Flashback Drop: recover an accidentally dropped table. It restores the dropped table, and all of its indexes, constraints, and triggers, from the Recycle Bin (a logical container of all dropped objects).
  • Flashback Transaction: undo the effects of a single transaction, and optionally, all of its dependent transactions. via a single PL/SQL operation or by using an Enterprise Manager wizard.
  • Flashback Transaction Query: see all the changes made by a specific transaction, useful when an erroneous transaction changed data in multiple rows or tables.
  • Flashback Query: query any data at some point-in-time in the past. This powerful feature can be used to view and logically reconstruct corrupted data that may have been deleted or changed inadvertently.
  • Flashback Versions Query: retrieve different versions of a row across a specified time interval instead of a single point-in-time.
  • Total Recall: efficiently manage and query long-term historical data. Total Recall automatically tracks every single change made to the data stored inside the database and maintains a secure, efficient and easily accessible archive of historical data.

The Flashback features offer the capability to query historical data, perform change analysis, and perform self-service repair to recover from logical corruptions while the database is online. With Oracle Flashback Technology, you can indeed undo the past.

Oracle Database Flashback Technologies

也来自官网。

Oracle Database Flashback Technologies is a set of data recovery solutions that reverse human errors by selectively and efficiently undoing the effects of a mistake. Oracle Database Flashback supports recovery at all levels, including the row, transaction, table, and the entire database.

在这里插入图片描述

Snapshots Are NOT Backups

作者Tim Chien是备份和恢复的产品经理。此文比较了基于存储的快照和RMAN的区别。

基于存储的快照在非生产系统上使用快照进行开发或测试有好处,但它们不应被视为有效的数据保护或 Oracle 数据库的备份。正确的做法是RMAN+FRA。

RMAN是Oracle 8引进的。

存储快照不知道 Oracle 块结构(因为它们在存储块级别运行),更重要的是,它们在物理上与备份(由指针而不是块组成)本质上不同。

RMAN的好处:
RMAN 是 Oracle 数据库的集成数据保护解决方案,提供多种保护级别。在粒度块级别,RMAN 在备份和恢复时全面验证 Oracle 块 - 通过块本身内的物理校验和比较和逻辑检查来验证块(例如,验证行片段或索引条目是否一致)。备份可用于在任何数据丢失或物理损坏情况下将生产数据恢复到最后可用的归档重做日志,或恢复到特定时间点(根据 RMAN 保留策略)。此外,可以根据用户的判断使用VALIDATE验证整个数据库或单个表空间/数据文件的物理和逻辑块正确性命令。同样,可以随时验证备份,以确保可以使用RESTORE VALIDATE命令成功恢复。RMAN 还提供块介质恢复功能,允许快速修复数据库中的单个块损坏,同时未受影响的数据保持在线并可供用户访问。

存储快照的缺点
快照不是为 Oracle 数据保护而设计的。他们不了解 Oracle 块结构,因此在创建 Oracle 数据时不会也无法验证它们。它们不能用于任何数据丢失或物理损坏的情况。如果块不随时间变化,则未检测到的块损坏可能会影响一系列快照。由于快照与源数据库驻留在同一阵列上,因此它们很容易受到影响存储阵列的故障的影响。这就是为什么快照即使创建得非常快,也不构成原始数据的备份。对于用作有效备份的快照,必须将其重新构建为完整的块集到另一个存储阵列或磁带,这涉及与完整副本相同的性能问题。最后,还原快照具有使所有在它之后拍摄的快照无效的副作用,除非快照作为生产数据的副本完全还原到备用位置。鉴于快照的这些固有缺陷,很明显只有 Oracle 感知 RMAN 备份才能提供真正的数据保护“安心”。

对于基于写时复制的快照,数据库性能影响体现在两个方面。首先,创建快照后,对数据库块的第一次写入转换为两次存储 I/O 写入——一次用于将原始块复制到新的快照存储位置,一次用于将新块写入原始数据块堵塞。增加的 I/O 使用率会对生产数据库性能产生严重影响。其次,在将生产数据库卷恢复到以前的快照后,现在活动的存储块版本包括对快照块的引用,这些快照块很可能在磁盘上分散而不是按顺序排列(数据库仍然希望如此当发出 I/O 时)。例如,在前面的写时复制快照图中,块 C 的 I/O 请求被重定向到块 C 的快照版本,而块 B 的 I/O 请求没有被重定向,因为它相对于拍摄快照的时间没有改变。当数据库发出 1 MB 的 I/O 时,它不会在单个大读取中顺序读取数据,而是发出 128 个随机 I/O(假设块大小为 8K)。随着时间的推移创建和恢复多个快照,由此产生的碎片化块布局可能导致数据库性能降低 10-100 倍。

由于这些原因,在生产数据库存储上创建和使用快照从来都不是一个好主意。
由于严重影响 I/O 性能,因此不建议在生产数据库上使用快照克隆,而是在数据库的辅助副本上使用。

为什么CDM不是快照

作者Tim Chien 是 Oracle 高可用性和存储管理组的产品管理高级总监,专注于备份和恢复,包括零数据丢失恢复设备、恢复管理器 (RMAN) 和闪回技术。

Why (CDM) Snapshots are NOT Backups - Pt. 1

Why (CDM) Snapshots are NOT Backups - Pt. 2

所有归结为下表:

CDM厂商宣称使用 CDM 解决方案对 Oracle 数据库意味着什么?将RA与Oracle 数据库一起使用时这意味着什么
增量永久备份进行增量备份后,创建数据文件副本的快照,然后 Oracle 数据库上的 RMAN 执行增量合并以使副本保持最新。对于大型数据库更改量,合并操作会导致繁重的生产服务器负载和 CDM 存储 I/O 利用率,从而延长最新副本可用于恢复使用的时间。对设备的永久增量备份会产生最新的虚拟完整备份,而无需使用增量合并操作。数据库仅发送更改,恢复设备执行工作。这释放了生产资源以用于更多业务关键型工作负载。
恢复到任何时间点数据库恢复需要的不仅仅是恢复到一组较旧的快照文件。从那一点开始的快照文件和存档日志备份必须由 RMAN 在 Oracle 数据库上编目,并恢复到事务一致的点,以便可以打开数据库。这个多步骤过程会延长恢复时间,尤其是对于大型数据库。该设备直接与 RMAN 集成,以 DBA 熟悉的无缝方式进行所有还原和恢复操作。虚拟完整备份由 RMAN 在 Oracle 数据库上直接恢复——无需增量合并——以实现到任何时间点的快速恢复。
此外,恢复设备上的备份会不断验证数据库的可恢复性,这是与 CDM 存储产品相比的独特优势。
即时恢复RMAN ‘switch to copy’ 用于将数据库文件指针重定向到快照文件副本,然后使用归档日志进行还原和恢复,以便可以打开数据库进行访问。该设备提供直接到生产存储的快速、虚拟完全恢复,单个机架高达 38 TB/小时。
此外,对于“即时恢复”需求,Oracle Data Guard 允许在几秒到几分钟内将主数据库切换到最新的备用数据库副本。
减少生产 RTO 和 RPO虽然使用 CDM 快照的“即时恢复”听起来不错,但生产恢复数据库有望提供生产服务级别。直接在 CDM 存储上运行数据库文件不会产生生产级性能,尤其是因为还必须为创建的新快照维护写时复制操作。此外,Oracle Exadata 不支持这种用法(MOS 注释 2663308.1 - 将外部存储与 Exadata 结合使用)。
对于所有传统的备份方法,RPO 是在进行最后一次良好备份时进行控制的,这可能是数小时或更长时间的数据丢失暴露。
虚拟完全恢复直接进入生产存储,不会牺牲数据库性能。
零到亚秒级的 RPO 是通过经过行业验证的 Oracle 重做块传输实现的,从而将事务实时备份到设备。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185865.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyQt5开发环境搭建 1.3 Python语法练习

第一组练习1阅读理解。输入红色框框中命令。说出文中大致意思。&#xff08;限30个字&#xff09;解&#xff1a;点击运行之后会跳到一个网站https://xkcd.com/353/练习2建立如下py文件并运行&#xff0c;贴出在Eric6下运行输出结果&#xff08;注意文件名中的bkjtest用自己的姓…

NSSCTF Round#7部分wp

Web ec_RCE 源码: <!-- A EZ RCE IN REALWORLD _ FROM CHINA.TW --> <!-- By 探姬 --> <?PHPif(!isset($_POST["action"]) && !isset($_POST["data"]))show_source(__FILE__);putenv(LANGzh_TW.utf8); $action $_POST["a…

layui遇到的一些问题

目录一、layui nav 菜单栏默认收缩二、layui 数据表格 单元格 颜色设置三、layui表格没有数据的时候&#xff0c;表头没有横向滚动条四、layui layer.open 弹窗全屏显示五、layui表格通过点击tr改变这一行的颜色六、 layer.open弹框弹出后父页面滚动问题七、LayUI下拉框中取值和…

Cuba勒索软件深度分析及防护建议

0 1. Cuba勒索软件的部署方式 Cuba勒索软件家族于2019年12月首次浮出水面。此后&#xff0c;该勒索软件家族背后的攻击者改变了策略和工具&#xff0c;成为2022年成为更普遍的威胁。该勒索软件历来通过Hancitor分发&#xff0c;通常通过恶意附件传递。 Hancitor也被称为Chani…

C++001-对比编程语言C++和python

文章目录C001-对比编程语言C和python编程语言发展史计算机 ENIAC机器语言&#xff1a;汇编语言&#xff1a;高级语言&#xff1a;机器汇编高级语言对比C语言与汇编不同高级语言的应用场景C和python语法对比Print Hello WorldPrint Hello 10 timesCreate a procedureCheck if li…

Kotlin的5种单例模式

前言最近在学习Kotlin这门语言&#xff0c;在项目开发中&#xff0c;运用到了单例模式。因为其表达方式与Java是不同的。所以对不同单例模式的实现进行了分别探讨。主要单例模式实现如下&#xff1a;饿汉式懒汉式线程安全的懒汉式双重校验锁式静态内部类式PS:该篇文章不讨论单例…

Windows并发测试工具

Apache安装目录cmd用ab并发测试工具&#xff0c;请求10次&#xff0c;并发为5ab -n 10 -c 5 http://www.ysbm.com/api.php/task/testBingfa

安装kali linuxnmap使用(一)

安装环境 vmware17 kali linux 怎么安装可以查看这个博主的文章 这么说你需要重置root密码 sudo passwd root 或者你打出node -v但是kali linux没有nodejs,则会询问你是否需要安装。开玩笑,你可以使用sudo 指令来获取权限(第一次输入需要你的密码) nmap 这是kali linux自带…

沁恒CH32V307单片机入门(02):官方库与工程模板介绍

文章目录目的官方库工程模板使用例程总结目的 现在开发单片机大多数时候都是面向库开发的&#xff0c;这里将简单介绍下CH32V307的官方库。 在开发过程中新建项目时通常会从某些模板开始&#xff0c;模板包含了库和初始化代码等内容&#xff0c;有一定的组织好的目录结构&…

【C++】模板

模板一、非类型模板参数二、模板的特化2.1 函数模板的特化2.2 类模板的特化2.2.1 全特化2.2.2 偏特化三、模板的分离编译一、非类型模板参数 模板参数分为类型形参与非类型形参。 类型形参&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称…

为什么 Go 不支持 []T 转换为 []interface

在 Go 中&#xff0c;如果 interface{} 作为函数参数的话&#xff0c;是可以传任意参数的&#xff0c;然后通过类型断言来转换。 举个例子&#xff1a; package mainimport "fmt"func foo(v interface{}) {if v1, ok1 : v.(string); ok1 {fmt.Println(v1)} else if…

【测试设计】使用jenkins 插件Allure生成自动化测试报告

前言 以前做自动化测试的时候一直用的HTMLTestRunner来生成测试报告&#xff0c;后来也尝试过用Python的PyH模块自己构建测试报告&#xff0c;在后来看到了RobotFramework的测试报告&#xff0c;感觉之前用的测试报告都太简陋&#xff0c;它才是测试报告应该有的样子。也就是在…

【01Studio MaixPy AI K210】25.云训练模型文件

采集数据 根据它云训练平台的要求&#xff0c;它要求的图片格式必须是224*224的&#xff08;重点之重点&#xff09;&#xff0c;所以可以利用K210跑脚本直接采集数据。 数据采集脚本 main.py实验名称&#xff1a;照相机 说明&#xff1a;通过按键拍照并在LCD上显示&#xff08…

windows自建免费无限的开源图片识别公式转换为Latex

一、准备 python3.9.6下载 在最开始勾选添加环境变量 https://www.python.org/ftp/python/3.9.6/python-3.9.6-amd64.exe 验证&#xff0c;右键终端&#xff08;管理员&#xff09;&#xff0c;输入&#xff1a;python --version安装Anaconda https://mirrors.bfsu.edu.cn/ana…

算法拾遗二十五之暴力递归到动态规划三

算法拾遗二十五之暴力递归到动态规划三最长回文子串返回象棋从一个位置到另一个位置的方法有多少种返回咖啡机从开始到干净的最短时间最长回文子串 测试链接&#xff1a;https://leetcode.cn/problems/longest-palindromic-subsequence/ 子序列&#xff1a;是可以不连续的 子…

kafka基本概念、springboot整合kafka、kafka常见问题

kafka基本概念 Kafka是一种高吞吐量、分布式、基于发布/订阅的消息系统。 基本概念&#xff1a; broker&#xff1a;就是一个kafka服务&#xff0c;可以有多个broker形成集群 toptic&#xff1a;每个broker里面可以有若干个toptic&#xff08;类似于标签&#xff0c;将消息分…

从Bug中学习--Bug根因分析法

从Bug中学习--Bug根因分析法 目录&#xff1a;导读 1、认识Bug 2、Bug的发现 3、Bug的产生 4、Bug的改进 5、总结 一提起测试&#xff0c;大多数人很容易就会联想到Bug。的确&#xff0c;测试的日常工作离不开Bug&#xff0c;测试工作很重要的一部分就是发现Bug。但是&#xf…

Coraza:一款功能强大的企业级OWASP Web应用程序防火墙

关于Coraza Coraza是一款功能强大的企业级OWASP Web应用程序防火墙框架&#xff0c;该工具基于Golang开发&#xff0c;不仅支持Modsecurity的Seclang语言&#xff0c;而且能够100%兼容OWASP核心规则集。 该工具完全开源&#xff0c;任何开发人员都可以根据自己的需求轻松完成…

GPDB中AOCO列存页的checksum

GPDB中AOCO列存页的checksum为了保证数据的正确性&#xff0c;AOCO列存页采用CRC32即循环冗余校验算法来进行校验。首先看下页结构。页类型有四种&#xff1a;AOSmallContentHeader、AOLargeContentHeader、AONonBulkDenseContentHeader和AOBulkDenseContentHeader。页头的大小…

【初阶数据结构】——详解几个常见的经典排序算法

文章目录1. 排序的概念及其运用1.1 排序的概念1.2 排序的应用1.3 常见的排序算法2. 插入排序2.1 直接插入排序算法思想举例&#xff08;升序&#xff09;代码实现直接插入排序特性总结2.2 希尔排序( 缩小增量排序 )算法思想代码实现希尔排序特性总结3. 选择排序3.1 直接选择排序…