Oracle DB 使用闪回技术1

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
• 描述闪回技术
• 执行闪回查询
• 使用闪回版本查询
• 对表启用行移动
• 执行闪回表操作
• 使用闪回事务处理查询
• 使用闪回事务处理
  • 闪回技术
当Oracle DB 发生逻辑损坏,而又需要简单快捷地恢复数据时,可以使用闪回技术。与人为错误一样,很难确定错误事务处理所影响的对象和行。
 
通过使用闪回技术,可以诊断错误在数据库中是如何造成的,然后可以修复损坏。可以查看导致修改特定行的事务处理,查看特定时间段内给定行的所有版本集,或者只查看过去特定时间显示的数据。
 
上表中显示了闪回技术的典型用法。 闪回数据库依赖于闪回日志来执行闪回闪回删除功能使用回收站,其它所有技术都使用还原数据。
 
并不是所有闪回功能都会修改数据库。有些功能只是用来查询数据的其它版本的方法;
 
可以使用这些工具来调查问题,并帮助进行恢复。闪回查询的结果可以帮助用户执行以下两种操作之一:
 
• 确定要执行哪类数据库修改闪回操作来修复问题。
• 将这些查询的结果集输入到INSERT、UPDATE或DELETE语句中,便可以轻松地修复错误数据。
 
通过 闪回数据归档,可使用前面的逻辑闪回功能访问过去很久以前的数据。
  • 事务处理和还原
事务处理开始时,它被分配到一个还原段。在事务处理的整个过程中,更改数据时,原始“旧”值会复制到还原段。
通过检查V$TRANSACTION视图,可以查看哪些事务处理被分配到哪些还原段。
 
还原段是为了支持事务处理,根据需要由实例自动创建的专用段。像所有段一样,还原段由区组成,区又由数据块组成。还原段根据需要可自动增长和收缩,它充当一个用于所分配的事务处理的循环存储缓冲区。
 
当事务处理填满其当前还原段区中的块时,会为事务处理分配相同区中的其它块。如果该区中没有空闲块,则事务处理获取段中下一个区的块。占用了所有区之后,事务处理会自动转回到第一个区或请求为还原段分配新区。
 
上表在左侧显示了一个表图标,以及由DML 操作获得的原始数据。原始数据保留在缓冲区高速缓存中(如果未过期),然后写入到还原表空间(显示在右侧的圆
环中)。
 
注:并行DML 操作实际上可导致事务处理使用多个还原段。
  • 保证还原保留时间
默认还原行为是覆盖提交的、尚未失效的事务处理,而不是因为缺少还原空间而使活动事务处理失败。出现冲突时,事务处理优先于查询。
 
此行为在保证了保留时间后会有所改变。有了保证的保留时间,即使会导致事务处理失败,仍然会强制执行还原保留时间设置。(因此,出现冲突时,查询优先于事务处理。)
 
RETENTION GUARANTEE是表空间属性而不是初始化参数。可使用SQL 命令行语句或Oracle Enterprise Manager 更改此属性。
 
 
通过更改还原表空间来保证保留时间的语法是:
 
SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;
 
要将保证的还原表空间恢复至其常规设置,请使用以下命令:
 
SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;
 
如何启动EM:
 
[oracle@rtest ~]$ emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.3.0
Copyright (c) 1996, 2011 Oracle Corporation. All rights reserved.
https://rtest.localdomain:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ............ started.
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0/dbhome_1/rtest.localdomain_test0924/sysman/log
 
可以在Oracle Enterprise Manager 中设置还原保留时间保证。导航到‘’服务器-Automatic Undo Management(自动还原管理)”页。单击保留时间保证的当前设置(“General/Undo Retention Settings(一般/还原保留时间设置)”)进行修改。
  • 准备数据库以进行闪回
• 创建还原表空间
• 启用自动还原管理
• 指定还原保留时间和保证还原保留时间
• 默认的数据库初始化参数:
– UNDO_MANAGEMENT='AUTO'
– UNDO_TABLESPACE='UNDOTBS1'
– UNDO_RETENTION=900
 
准备数据库以进行闪回
 
要启用应用程序的闪回功能,必须执行以下任务:
• 创建具有足够空间的还原表空间以保留闪回操作所需的数据。用户更新数据越频繁,所需空间就越大。数据库管理员通常会计算空间要求。如果用户不确定空间要求,则可以先创建一个可自动扩展的还原表空间,观察该表空间一个业务周期(例如,1 或2 天),使用V$UNDO_STAT视图收集还原块信息,计算空间要求,然后使用这些空间要求来创建大小合适的固定还原表空间
 
• 默认情况下会启用自动还原管理。
 
• 对于固定大小的还原表空间,Oracle DB 会自动优化系统,以便为还原表空间提供可能的最佳还原保留时间。
 
• 对于可自动扩展的还原表空间(默认),Oracle DB 会保留还原数据,其保留时间至少满足 运行时间最长的查询所需的保留期,以及UNDO_RETENTION参数指定的还原保留时间阈值。
 
可以查询V$UNDOSTAT.TUNED_UNDORETENTION来确定对当前还原表空间的还原数据的保留时间。
 
设置UNDO_RETENTION参数并不能保证未失效的还原数据不会被覆盖。
 
如果系统需要更多空间,Oracle DB 可以用最新生成的还原数据覆盖未失效的还原数据。
 
• 为还原表空间指定 RETENTION GUARANTEE子句,确保不会丢弃未失效的还原数据。
• 为需要使用闪回功能的用户、角色或应用程序授予闪回权限。要满足长期保留要求,则可以创建闪回数据归档。
  • 使用闪回技术查询数据
• 闪回查询
– 查询指定时间点的所有数据。
• 闪回版本查询
– 查看两个时间点之间行的所有版本。
– 查看更改了行的事务处理。
• 闪回事务处理查询
– 查看事务处理所做的所有更改。
 
使用闪回技术查询数据
 
 
闪回技术提供了查询以前版本的方案对象、查询历史记录数据和执行更改分析的功能。
 
每个事务处理在逻辑上都会生成一个新版本的数据库。借助闪回技术,可通过浏览这些版本来查找错误及起因:
 
• 闪回查询:查询在特定时间点存在的所有数据。
 
• 闪回版本查询:查看两个时间点之间行的所有版本以及更改了行的事务处理。
 
• 闪回事务处理查询:查看某个事务处理所做的所有更改,并且,如果需要,使用“还原”SQL 命令回退事务处理。
  • 闪回查询
用于查询指定时间点的所有数据。
SELECT employee_id, salary FROM employees
AS OF TIMESTAMP <T1>
WHERE employee_id = 200
 
闪回查询
 
使用闪回查询功能,可以执行截止到特定时间的查询。使用SELECT语句的AS OF子句,可以指定要查看其对应数据的时间戳。这在分析数据差异时非常有用。
注:TIMESTAMP和SCN是AS OF子句的有效选项。
  • 闪回查询:示例
UPDATE employees
SET salary =
(SELECT salary FROM employees
AS OF TIMESTAMP TO_TIMESTAMP
('2005-05-04 11:00:00', 'yyyy-mm-dd hh24:mi:ss')
WHERE employee_id = 200)
WHERE employee_id = 200
 
闪回查询:示例
如果最近错误地给某个雇员加了薪,则可重新更改薪金,其值由子查询返回的闪回值提供。
  • 闪回版本查询
 
闪回版本查询
 
使用闪回查询,可对特定时间范围或用户指定的系统更改号(SCN) 范围内的数据库进行查询。通过闪回版本查询功能,可使用VERSIONS子句检索两个时间点或两个SCN 之间的所有行的所有版本。
 
闪回版本查询返回的那些行表示跨事务处理的那些行的更改历史记录。闪回版本查询只检索提交的行。不显示事务处理中未提交的行版本。返回的行还包括行的已删除版本和后来重新插入的版本。
 
可以使用闪回版本查询检索行历史记录。闪回版本查询提供了一种方法,通过这种方法可审计表行,检索影响行的事务处理的有关信息。然后,可以使用返回的事务处理标识符来执行事务处理挖掘(通过使用LogMiner)或执行闪回事务处理查询。
 
注:VERSIONS_XID是返回相应行版本的事务处理标识符的伪列。
  • 闪回版本查询:注意事项
• 不能使用VERSIONS子句查询:
– 外部表
– 临时表
– 固定表
– 视图,不能使用VERSIONS子句查询视图。但是,在视图定义中可使用VERSIONS子句。
• VERSIONS子句不能跨DDL 命令使用。
• 段收缩操作已过滤掉。
 
SELECT语句中的VERSIONS子句不能跨更改相应表的结构的多个DDL 语句生成行的版本。这意味着查询到达某个过去时间(此时更改了表结构)后会停止生成行。
诸如段收缩这样的维护操作可能会跨块移动表行。在这种情况下,因为行数据保持不变,所以版本查询会过滤掉此类幻像版本。
  • 闪回表概览
• 闪回表可将表恢复到特定的时间点。
• 闪回表是一个原位操作。
• 数据库保持联机。
闪回表概览
 
使用闪回表功能,可将一组表恢复到特定的时间点,而不需要执行传统的时间点恢复操作。
闪回表操作是在数据库处于联机状态时,通过只回退对指定表及其从属对象所做的更改,原位完成的。
闪回表语句可作为单个事务处理来执行。必须成功地闪回所有表,否则会回退整个事务处理。
注:可以使用闪回版本查询和闪回事务处理查询来确定适当的闪回时间。
 
闪回表
• 使用闪回表,可将一个或多个表还原到特定时间点,而不需要还原备份。
• 将从还原表空间检索数据来执行闪回表操作。
• 需要具有对特定表的FLASHBACK ANY TABLE或FLASHBACK对象权限。
• 需要对要闪回的表具有SELECT、INSERT、DELETE和ALTER权限。
• 必须对要执行闪回操作的表启用行移动。
 
闪回表
使用闪回表时,可以将一个或多个表还原到特定时间点,而不需要还原备份。使用此功能时,会还原表及其关联对象(如索引、约束条件、触发器等)中的数据。可从还原表空间检索用于满足闪回表请求的数据。可以使用闪回版本查询和闪回事务处理查询确定适当的闪回时间。
 
闪回表提供了一种方法,通过这种方法用户可方便快速地恢复意外的修改,而不需要数据库管理员的干预。必须为使用闪回表功能的所有用户授予FLASHBACK TABLE或FLASHBACK ANY TABLE系统权限。此外,还必须为用户授予SELECT、INSERT、DELETE和ALTER对象权限。
 
可以使用Oracle Enterprise Manager 对表执行闪回操作。向导会引导您完成整个过程。
  • 对表启用行移动
ALTER TABLE employees ENABLE ROW MOVEMENT;
对表启用行移动
必须先对表启用行移动,然后才能对表执行闪回操作。启用了行移动之后,Oracle Server 便可移动表中的行。
 
使用Oracle Enterprise Manager 时,可通过执行以下步骤对表启用行移动:
1.在“Schema(方案)”属性页的“Database Objects(数据库对象)”区域中,选择“Tables(表)”。输入方案名以搜索表,然后单击“Go(开始)”。
 
2.单击要启用行移动的表的名称。此时会出现“View Table(查看表)”页。
 
3.单击“Edit(编辑)”进入“Edit Table(编辑表)”页。
 
4.单击“Options(选项)”选项卡,可在其中更改表的“Enable Row Movement(启用行移动)”设置。
 
5.将“Enable Row Movement(启用行移动)”设置为“Yes(是)”,然后单击“Apply(应用)”。此时会显示更新确认消息。
  • 执行闪回表
FLASHBACK TABLE hr.departments TO TIMESTAMP
TO_TIMESTAMP('2007-04-05 21:00:00','YYYY-MM-DD HH24:MI:SS');
 
执行闪回表
 
可以使用Oracle Enterprise Manager 对表执行闪回操作,步骤如下:
1. 在“Availability(可用性)”属性页上的“Backup/Recovery(备份/恢复)”区域中,选择“Perform Recovery(执行恢复)”。
 
2. 在“Object Level Recovery(对象层次恢复)”区域中,从“Object Type(对象类型)”下拉列表选择“Tables(表)”。
 
3. 选择“Flashback existing tables(闪回现有表)”作为“Operation Type(操作类型)”。
 
单击“Recover(恢复)”。此时会显示“Perform Object Level Recovery: Point-in-time(执行对象级恢复: 时间点)”页。
 
 
4. 选择“Flashback to a timestamp(闪回至时间戳)”或“Flashback to a known SCN(闪回至已知SCN)”,指定要闪回到的时间戳或SCN,然后单击“Next(下一步)”。
 
 
5. 单击“Add Tables(添加表)”,将表添加到闪回操作列表。单击“Next(下一步)”。
 
 
6. 如果存在从属表,则会显示“Dependency Options(相关性选项)”页。选择处理从属表的所需选项。通常,应选择“Cascade(级联)”来确保闪回一致。单击“Next(下一步)”。
 
 
7. 此时会显示“Perform Object Level Recovery: Review(执行对象级恢复: 复查)”页。复查信息后单击“Submit(提交)”。此时会出现“Confirmation(确认)”页。
注:还可以使用“Administration(管理)”页的“Schema(方案)”区域中的“Tables(表)”链接来闪回表。
 
所涉及到的SQL语句:
FLASHBACKTABLEHR.EMPLOYEES,HR.DEPARTMENTS,HR.JOBSTOTIMESTAMPto_timestamp('2013-10-07 19:23:02','YYYY-MM-DD HH24:MI:SS')
  • 闪回表:注意事项
• FLASHBACK TABLE命令作为单个事务处理执行,要求获取 DML 排它锁
• 不闪回统计信息。
• 保留当前索引和从属对象。
• 闪回表操作:
不能对系统表执行
– 不能跨DDL 操作
会生成还原和重做数据
 
闪回表:注意事项
• 整个FLASHBACK TABLE语句是在一个事务处理中执行的。将闪回所有指定表,或者不闪回任何指定表。
 
• 在执行操作的整个过程中,闪回表会获取对该语句指定的所有表的数据操纵语言(DML) 排它锁。
 
• 不会闪回受影响对象的统计信息。
 
• 会保留所有现有索引。不会重新创建删除的索引。还会自动保留相关的提交时实体化视图。
 
• 只要不违反任何表约束条件,就会闪回FLASHBACK TABLE语句中指定的表。如果在闪回执行期间违反了任何约束条件,则会中止操作,此时表的状态与调用
FLASHBACK TABLE语句之前的状态相同。
 
• 不能将表闪回至早于执行数据定义语言(DDL) 操作时的某个特定时间,因为执行数据定义语言(DDL) 操作变更了闪回操作中涉及的表的结构或收缩了表。只更改表的
存储属性的DDL 语句不受此限制。
 
• 不能对系统表、远程表和固定表执行闪回表操作。
  • 闪回事务处理查询
FLASHBACK_TRANSACTION_QUERY
 
闪回事务处理查询
闪回事务处理查询是一种用于查看在事务处理级对数据库所做更改的诊断工具。这样,可诊断数据库中的问题并对事务处理执行分析和审计。
可以使用FLASHBACK_TRANSACTION_QUERY视图来确定所有必要的SQL 语句,以便用来还原由特定事务处理所做的或在特定时间段内所做的修改。
  • 使用Oracle Enterprise Manager 执行闪回事务处理查询
使用Oracle Enterprise Manager 执行闪回事务处理查询
 
借助执行恢复向导,这个功能可与闪回版本查询功能结合使用。在“Perform Object Level Recovery: Choose SCN(执行对象级恢复: 选择SCN)”页上,单击“Flashback Version Query Result(闪回版本查询结果)”部分中对应的“Transaction ID(事务处理ID)”链接。
  • 闪回事务处理查询:注意事项
• DDL 命令被视为字典更新。
• 通过执行DDL 命令对事务处理执行闪回事务处理查询时,会显示对数据字典所做的更改。
 
• 删除的对象显示为对象编号。
 
• 删除的用户显示为用户标识符。
 
在数据库中,DDL 操作只是一系列空间管理操作和对数据字典所做的更改。通过执行DDL 命令对事务处理执行闪回事务处理查询时,会显示对数据字典所做的更改。
当闪回事务处理查询涉及从数据库中删除的表时,不会反映表名,而是使用对象编号。
 
如果删除了执行事务处理的用户,则该事务处理的闪回事务处理查询只显示相应的用户ID,而不是用户名。
注:当特定的事务处理没有足够的还原数据时,在FLASHBACK_TRANSACTION_QUERY的OPERATION列中会返回值为UNKNOWN的行。
  • 闪回事务处理
参考闪回事务处理回退: http://blog.csdn.net/rlhua/article/details/12224763
• 建立闪回事务处理的先决条件
• 逐步完成可能的工作流
• 使用闪回事务处理向导
• 查询有依赖关系及没有依赖关系的事务处理
• 选择回退选项和闪回事务处理
• 检查结果
 
闪回事务处理
使用闪回事务处理,可以撤消事务处理及从属事务处理。Oracle DB 将确定事务处理之间的依赖关系,实际上,它会创建一个撤消不需要的更改的校正事务处理。数据库会倒回到似乎从未发生过该事务处理及从属于它的任何事务处理的状态。
 
可从Oracle Enterprise Manager 或PL/SQL 程序包中使用闪回事务处理功能。
 
先决条件
要使用此功能,必须启用 补充日志记录功能并建立正确的权限。例如,HR方案中的HR用户决定对REGIONS表使用闪回事务处理。SYSDBA在SQL*Plus 中执行下列设置步骤:
alter database add supplemental log data;
alter database add supplemental log data (primary key) columns;
grant execute on dbms_flashback to hr;
grant select any transaction to hr;
 
闪回事务处理
 
• 可使用Oracle Enterprise Manager 或命令行闪回事务处理。
• EM 使用闪回事务处理向导,该向导调用带NOCASCADE选项的DBMS_FLASHBACK.TRANSACTION_BACKOUT过程。
• 如果PL/SQL 调用成功完成,即意味着事务处理不具有任何依赖关系,并且已成功回退单个事务处理。
闪回事务处理
 
安全权限
要闪回或回退事务处理,也就是创建校正事务处理,必须对所有受影响的表具有SELECT、FLASHBACK和DML 权限。
使用条件
• 不支持跨相冲突的DDL 的事务处理回退。
• 事务处理回退从LogMiner 中继承数据类型支持。
 
建议
• 发现需要回退事务处理时,尽快启动回退操作的效果会比较好。重做日志太大和事务处理率过高会降低事务处理回退操作的速度。
• 为回退操作提供事务处理名称有利于稍后的审计工作。如果没有提供事务处理名称,会自动生成一个名称。
  • 可能的工作流
1. 查看表中的数据
2. 发现逻辑问题
3. 使用闪回事务处理
1.执行查询
2.选择事务处理
3.闪回事务处理(如果没有冲突)
4.选择其它回退选项(如果存在冲突)
4. 查看闪回事务处理结果
 
可能的工作流
 
假定有如下所示的几个事务处理:
connect hr
Enter password: oracle_4U <<< not displayed
INSERT INTO hr.regions VALUES (5,'Pole');
COMMIT;
UPDATE hr.regions SET region_name='Poles' WHERE region_id = 5;
UPDATE hr.regions SET region_name='North and South Poles' WHERE
region_id = 5;
COMMIT;
INSERT INTO hr.countries VALUES ('TT','Test Country',5);
COMMIT;
connect sys/<password> as sysdba
ALTER SYSTEM ARCHIVE LOG CURRENT;
  • 闪回事务处理向导
在Oracle Enterprise Manager 中,在“Table(表)”下方选择HR.REGIONS,从“Actions(操作)”下拉列表中选择“Flashback Transaction(闪回事务处理)”,然后单击“Go(开始)”。此时会针对选定表调用闪回事务处理向导,并显示“Flashback Transaction: Perform Query(闪回事务处理: 执行查询)”页。
选择适当的时间范围,然后添加查询参数(指定的范围越具体,闪回事务处理向导进行搜索所用的时间就越短)。
 
 
如果没有Oracle Enterprise Manager,请使用DBMS_FLASHBACK.TRANSACTION_BACKOUT过程。
 
实际上,你可以将事务处理ID 数组作为依赖关系搜索的起点。
 
例如:
CREATE TYPE XID_ARRAY AS VARRAY(100) OF RAW(8);
CREATE OR REPLACE PROCEDURE TRANSACTION_BACKOUT(
numberOfXIDs NUMBER, -- number of transactions passed as input
xids XID_ARRAY, -- the list of transaction ids
options NUMBER default NOCASCADE, -- back out dependent
txn timeHint TIMESTAMP default MINTIME -- time hint on the txn
start
);
  • 选择其它回退选项
TRANSACTION_BACKOUT过程会检查依赖关系,例如:
• 连续编写(WAW)
• 主约束条件和唯一约束条件
• 外键约束条件
 
事务处理可以具有WAW 依赖关系,这意味着事务处理将更新或删除由从属事务处理插入或更新的行。例如,在主(或唯一)约束条件和强制外键约束条件的主/从关系中会发生这种情况。
 
要了解NONCONFLICT_ONLY和NOCASCADE_FORCE选项之间的差异,可以假定T1事务处理更改了行R1、R2和R3,T2事务处理更改了行R1、R3和R4。在此方案中,因为两个事务处理都更新了R1行,因此R1行成了“冲突”行。T2事务处理与T1事务处理具有WAW 依赖关系。使用NONCONFLICT_ONLY选项,可回退R2和R3,因为R2
和R3不存在冲突并且假定用户知道处理R1行的方法。使用NOCASCADE_FORCE选项,可回退全部三个行(R1、R2和R3)。
 
 
注:此屏幕快照不是工作流示例的一部分,但它显示了较复杂情况的其它详细资料。
 
闪回事务处理向导按以下方式运行:
如果带有NOCASCADE选项的DBMS_FLASHBACK.TRANSACTION_BACKOUT过程失败
(因为存在从属事务处理),则可以更改恢复选项。
• 使用“Nonconflict Only(仅限无冲突)”选项,可回退事务处理中的非冲突行,从而保持了数据库的一致性(虽然为了修复数据而破坏了事务处理的原子性)。
• 如果希望不考虑从属事务处理而强制回退给定的事务处理,使用“Nocascade Force(强制无级联)”选项。服务器按照与提交时间相反的顺序仅对给定事务处理执行校
正DML 命令。如果没有违反约束条件,你可以继续提交更改,否则会回退。
• 要按投寄顺序完全删除给定事务处理及其所有从属事务处理,使用“Cascade(级联)”选项。
  • 最后步骤(不使用EM)
选择回退选项后,会在DBA_FLASHBACK_TXN_STATE和DBA_FLASHBACK_TXN_REPORT视图中生成相关性报告。
• 检查显示了已回退的所有事务处理的相关性报告。
• 提交更改使其成为永久更改。
• 回退以放弃更改。
 
DBA_FLASHBACK_TXN_STATE视图包含事务处理的当前状态:该事务处理在系统中处于活动状态还是已被有效回退。系统将使用校正事务处理以原子方式维护此表。对于每个校正事务处理,可能存在多个行,其中每行都会提供校正事务处理已校正的事务处理间的依赖关系。
DBA_FLASHBACK_TXN_REPORT视图可提供关于数据库中已提交的所有校正事务处理的详细信息。此视图中的每一行都与一个校正事务处理相关联。
Oracle闪回详解(闪回查询,闪回数据,回退数据,闪回表,闪回数据库,闪回快照,闪回主备库(恢复关系),闪回归档,注意事项,有关闪回常用查询命令) 即在备库进行,开启此模式时为了在备库进行一些测试操作,而又不行留存在数据库中,当备库切换回physical standby物理备库时,之前在snapshot standby模式进行的测试将会被丢弃。如果一块数据磁盘空间无法保存某个数据时(比如以前是1k,现在update到2k,而当前块的空闲空间不足1k),则会将新的数据保存到另外一个新的块里,然后在以前的块保存一个新位置的地址连接。允许用户查询过去某个时间点的数据,用以重构由于意外删除或更改的数据,数据不会变化。如果已经做了上述操作,从库可以选择重建。 阅读详情

相关推荐

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

闪回技术(Flashback)是Oracle数据库提供的基于时间点或SCN(System Change Number)回滚数据的技术。它比常规的恢复方式(如备份、日志应用)更快、更方便,也可以回滚到秒级别。任何预防措施都无法避免人为失误的发生。Oracle 数据库闪回技术是一组独特而丰富的数据恢复解决方案,能够有选择性地高效撤销一个错误的影响,从人为错误中恢复。在采用闪回技术之前,损坏数据库只需数分钟,而要恢复它则需要数小时。有了闪回技术,纠正错误只需要数分钟的时间。

junbaozi的专栏 1667

oracle 闪回查询,闪回版本查询,闪回事务查询,闪回表,闪回删除,闪回数据库

文章目录1. 闪回查询1.1. 闪回时间查询1.2. 闪回scn查询(1) 获取scn号的方法(2) 闪回scn查询命令2. 闪回版本查询3. 闪回事务查询4. 闪回表5. 闪回删除5. 1 查看回收站内的信息5. 2 彻底删除5. 3 清空回收点5. 4 通过参数 recyclebin 来启用、禁用回收站6. 闪回数据库6. 1 配置数据库为归档模式6. 2 配置闪回恢复区:6. 3 配置闪回保留时间6. 4 启用数据库闪回,在数据库 mount 状态时执行6. 5 进行闪回数据库,必须在 mount 状

不是一枚开发 7万+

Oracle闪回数据库【Oracle闪回技术】(二)

Oracle默认是不开启闪回数据库的。如果开启闪回数据库的前提条件是,开启Oracle归档模式并启用闪回恢复区。 因为闪回日志文件存放在闪回恢复区中,如果在RAC环境下,必须将闪回恢复区存储在集群文件或者ASM文件中。

奋斗的阿杰的博客 1641

Oracle闪回技术详解及应用

闪回技术是除了传统备份/恢复之外,Oracle所提供的额外一系列数据保护特性。利用闪回技术,你可以快速查找数据的历史版本,撤销误操作。比起从备份中恢复,闪回操作要简单许多,不通过还原备份就可以将整库回退到指定时间点等。闪回的恢复级别从行级、表级、数据库级均有覆盖。熟练掌握闪回技术可以帮助我们快速解决各种级别的数据问题。 Oracle闪回技术分为以下7类: 闪回查询(Flashback Query) 闪回版本查询(Flashback Version Query) 闪回事务查询(Flashbac...

最简单的方法,解决最实际的问题。 1万+

Oracle数据库闪回功能的详解和相关命令

Oracle数据库闪回功能

weixin_52444902的博客 4801

Oracle 闪回技术闪回查询

Oracle闪回技术 有时间穿越的功能 , 主要是针对 失误操作 (误删除数据) 一系列问题 , 提供的 闪回技术 (flashback) . 操作 主要 有两类 : 闪回查询 和 闪回数据 .闪回查询普通闪回查询闪回版本查询闪回事务查询闪回数据闪回闪回删除闪回事务闪回数据库闪回数据档。

qq_70095877的博客 2412

[转]Oracle DB 使用闪回技术1

• 描述闪回技术 • 执行闪回查询 • 使用闪回版本查询 • 对表启用行移动 • 执行闪回表操作 • 使用闪回事务处理查询 • 使用闪回事务处理 闪回技术Oracle DB 发生逻辑损坏,而又需要简单快捷地恢复数据时,可以使用闪回技术。与人为错误一样,很难确定错误事务处理所影响的对象和行。 通过使用闪回技术,可以诊断错误在数据库中是如何造成的,然...

weixin_30379973的博客 71

Oracle闪回技术--闪回错误的DML操作

  提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在还原段中的时间;但是这也并不能完全保证指定的时间的数据一定能够被恢复,还原表空间没有足够的时间时,仍会覆盖要求保留的磁盘空间。 查看undo_retention的当前值: SQL&gt; ...

weixin_34162695的博客 180

oracle闪回技术

闪回技术(Flashback),是Oracle提供的能使数据库整体或局部回到“过去”的闪回功能的总称,主要用于对抗人为错误。在这些功能中,有的不会修改现有的数据而只是展示以前的数据,即能够观察过去;有的可以将数据修改为以前的值,即真正地回到过去。 从11g开始,一共有7项闪回相关技术,分别为——闪回查询、闪回数据归档、闪回事务查询、闪回事务、闪回表、闪回删除和闪回数据库。 默认情况下,由于闪回...

Hehuyi_In的博客 1万+

Oracle DB执行闪回数据库

• 配置闪回数据库 • 执行闪回数据库操作 • 监视闪回数据库     闪回数据库 闪回数据库操作: • 作用类似于数据库的倒带按钮 • 可以在用户造成了逻辑数据损坏的情况下使用   闪回数据库 使用闪回数据库,通过还原自先前某个时间点以来发生的所有更改,可快速将数据库恢复到那个时间的状态。因为不需要还原备份,所以此操作速度很快。可以使用此功能还原导致逻辑数据

一抹曦阳-Oracle 6618

Oracle闪回技术详解

闪回技术Oracle备份恢复机制的一部分,主要解决逻辑错误的恢复问题,无法解决物理损坏造成的故障,是一种非常实用的技术

Ray Song 的 blog 5089

oracle闪回数据库详解

oracle闪回技术详细整理,包括闪回数据库,闪回表,闪回版本和闪回事务 理论+实践 详细了解ORACLE闪回技术

3471

Oracle闪回

闪回技术通常用于快速、简单恢复数据库中出现的人为误操作等逻辑错误,即:闪回只对逻辑错误有意义,对数据块损坏和联机日志损坏必须采用介质恢复。flashback data1base闪回到过去的某一时刻,闪回点之后的工作全部丢失。使用resetlogs创建新的场景并打开数据库(一旦resetlogs之后,将不能再flashback至resetlogs之前的时间点)。常用的场景:truncate table、多表发生意外错误等。

Gavin Blog 2063

Oracle 闪回技术详解

概述 闪回技术Oracle强大数据库备份恢复机制的一部分,在10g的时候就被推出一直延续到现在。在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成)。需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还是得借助于Oracle一些高级的备份恢复工具如RAMN去完成。 本文描述了Oracle闪回区的特性及其配置闪回区,监控闪回区等。 闪回闪回区特性及其配置 就是分配一个特定的目录位置(普通磁盘上的目录或AS

Ruishine的博客 4700

Oracle闪回技术是什么

Oracle提供了四种可供使用闪回技术闪回查询,闪回删除,闪回归档,闪回数据库),每种都有不同的底层体系结构支撑

Keep learing, and stay fast 1341

Oracle 数据库闪回

Oracle 数据库闪回一、闪回技术的7个特性二、Oracle 数据库的4种SCN1.系统检查点 SCN2.数据文件 SCN3.结束 SCN4.数据文件头 SCN三、闪回操作1.查询闪回2.基于时间的查询闪回3.基于 SCN 的查询闪回4.闪回版本查询5.闪回事务查询6.表闪回7.删除闪回8.闪回数据库设置闪回数据库环境数据库闪回9.归档闪回        Oracle10g 之前的数据库系统中,当发生数据丢失、用户误操作等问题时,解决问

独醉的博客 3785

Oracle数据库闪回技术

1.基本闪回查询 select * from dept as of timestamp to_timestamp('2016-09-10 11:00:00','yyyy-mm-dd hh24:mi:ss'); 2.闪回表 alter table emp enable row movement; flashback table dept to timestamp to_timestamp...

磨刀大神的博客 3803

闪回数据库(Flashback Database)

闪回整个数据库在功能上等价于不完整数据库恢复,但是采用的方法和支持技术完全不同。 一旦启用了闪回数据库,修改的块映像会不时地从数据库缓冲区的缓存中复制到 SGA 内的一个新的存储区域中,即闪回缓冲区。通过一个新的后台进程恢复写入器(Recovery Writer, RVWR)将此闪回缓冲区(内容)刷新到磁盘和闪回日志。这没有改变向日志缓冲区写入更改的常规程序,LGWR(日志写入器)然后将日志缓冲

学习是一种态度 2010

Oracle DB 使用闪回技术2

• 描述和使用Oracle Total Recall – 创建和启用闪回数据归档(FDA) – 管理FDA – 查看元数据 • 描述和使用闪回回收站 – 从回收站还原删除的表 – 管理回收站的空间使用量 – 查询回收站   Oracle Total Recall 概览   自动跟踪数据库历史更改: • 在你指定的保留期内在表级别启用。 • 所有后续更改都是透明

一抹曦阳-Oracle 3830
上一篇: OCP-1Z0-053-V12.02-630题
下一篇: Oracle DB 使用闪回技术2
Riveore
博客等级 码龄19年 1801粉丝 1432原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值