【读书笔记】oracle闪回技术

1.闪回技术有三种,分别是闪回数据库、闪回查询、闪回删除。

闪回数据库是把数据库恢复到某一个时间点;闪回查询是查询表的历史记录;闪回删除是把drop掉的表还原回来(表存在于recyclebin中)。

2.三种闪回技术的限制:

闪回数据库受闪回日志大小的限制;

闪回查询受撤销保留时间限制;

闪回删除受表可用空间限制;

但可以通过配置Flashback Data Archive来无限期地存储行的前映像。(如何对表启用?)

3.闪回数据库的配置:

1)确保数据库处于归档模式中,如果不是归档模式则要进行修改;

2)创建闪回恢复区:

alter system set db_recovery_file_dest=‘/flash_recovery_area‘;

alter system set db_recovery_file_dest_size=8G;

3)设置闪回保留目标时间:

alter system set db_flashback_retention_target=240;--单位是分钟,默认保留时间是1天;

4)干净地关闭并加载数据库

SQL>shutdown immediate;

SQL>startup mount;

5)启用闪回日志记录:

alter database flashback on;

6)打开数据库

alter database open;

4.使用闪回数据库

使用闪回数据库的步骤:

1)关闭数据库;

2)加载数据库;

3)闪回到某个时间点、SCN或日志切换序列号;

4)使用resetlogs打开数据库;

可以使用SQL*Plus、RMAN、Database Control进行闪回数据库

以SQL*Plus为例:

1)shutdown abort;

2)startup mount;

flashback database to timestamp to_timestamp( );

alter database open read only;--到这里如果不能满足需求,则要重新执行1)、2)步,切换不同的时间点

3)shutdown abort;

startup mount;

alter database open resetlogs;

5.闪回删除:

flashback table <table_name> to before drop [rename to <new_name>];--rename部分非必须

注意:truncate table<table_name>不能闪回;drop user user_name cascade后也不能闪回;

5.闪回查询

1)基本的闪回查询:

select * from <table_name>  as of  timestamp to_timestamp(timestamp,‘yyyy-mm-dd hh24:mi:ss‘);--也可以是to SCN......

2)闪回表查询:

flashback table <table1>,<table2> to timestamp to_timestamp(timestamp,‘yyyy-mm-dd hh24:mi:ss‘);

3)闪回版本查询

SELECT versions_startscn, versions_starttime, versions_endscn, versions_endtime, versions_xid, versions_operation, col1,col2...

FROM <table_name>

VERSIONS BETWEEN TIMESTAMP BeginTimestamp and EndTimestamp

WHERE 条件表达式

--TIMESTAMP 可以用SCN替代

6.闪回数据归档

1)创建归档名称

create flashback archive <default> hrarch tablespace fbdal quota 10g retentions 5years;

注:

default表示所有表的归档,可以之后再进行设定:

alter flashback archive hrarch set default;

hrarch表示该归档的名称;

fbdal表示归档数据存储的表空间;

quota表示归档在表空间中占用的空间,表空间不够时可以扩展到另外一个表空间中:

alter flashback archive hrarch add tablespace fbda2 quota 10g;

retention表示归档保留时间,可以调整为

alter flashback archive hrarch modify retention 7 year;

数据超过保留期限后会自动删除,也可以手动删除:

alter flashback archive hrarch purge before timestamp to_timestamp(timestamp,‘yyyy-mm-dd‘);

2)赋予用户归档的权限

grant flashback archive administer to fbdaadmin;

grant flashback archive on hrarch to hr;

3)启用表归档保护

alter table hr.employees flashback archive hrarch;

4)有3个数据字典视图来记录闪回数据的归档配置:

DBA_FLASHBACK_ARCHIVE;--描述配置的归档

DBA_FLASHBACK_ARCHIVE_TS:--显示每个表空间的每个归档的配额;

DBA_FLASHBACK_ARCHIVE_TABLES;--列出启用了归档的表

时间: 2024-12-26 11:12:00

【读书笔记】oracle闪回技术的相关文章

Oracle闪回技术详解

概述: 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速恢复逻辑错误,对于物理损坏或是介质丢失的错误,闪回技术就回天乏术了,还是得借助于Oracle一些高级的备份恢复工具如RAMN去完成(这才是Oracle强大备份恢复机制的精髓所在啊)  撤销段(UNDO SEGMENT) 在讲闪回技术前,需要先了解Oracle中一个逻辑结构--撤销段.因为大部分闪回技术

Oracle闪回技术--更新ing

Oracle10g中引入了闪回技术,但这并不意味着所有的表都能闪回成功,当没有足够的磁盘空间,Oracle将使用回收站中的磁盘空间,而且位图连接索引和引用完整性约束也不受回收站的保护. recyclebin参数的设置 show parameter bin --展示是否使用了闪回技术,默认是使用闪回技术的alter session set recyclebin=off; --在session级别修改alter system set recyclebin=off DEFERRED; --不加DEFE

Oracle闪回技术(Flashback)

闪回技术有闪回表.闪回删除.闪回查询.闪回事务查询.闪回事务.闪回数据库.闪回数据归档.其中,闪回查询.闪回事务查询用来“观察”过去:闪回数据归档并不是一个独立的功能,其功能是扩展闪回查询的时间窗口:闪回表.闪回删表能够以表为单位“回到”过去:闪回事务能够以事务为单位“回到”过去:闪回数据库能够以数据库为单位“回到”过去. 一. 闪回表(Flashback Table) 闪回表是利用UNDO表空间的撤销数据,所以能把表闪回到多久之前受到undo_retention,UNDO表空间的数据文件是否启

Oracle闪回技术

1.Flashback Database 2.Flashback Drop 3.Flashback Table 4.Flashback Query 1.Flashback Database(利用闪回日志恢复) 描述:Oracle Flashback Database特性允许通过SQL语句Flashback Database语句,让数据库前滚到当前的前一个时间点或者SCN.闪回数据库可以迅速将数据库回到误操作或人为错误的前一个时间点,如ctrl+Z操作,可以不利用备份就快速的实现基于时间点的恢复.

Oracle 闪回技术

一.配置闪回数据库 1.数据库处于归档日志模式 SQL> select log_mode from v$database; LOG_MODE ------------ ARCHIVELOG 2.创建闪回恢复区 SQL> alter system set db_recovery_file_dest_size=10G; System altered. SQL> alter system set db_recovery_file_dest='D:\oracle\product\11.2.0\d

oracle 闪回技术--闪回删除

1.查看是否启动闪回删除 SQL> show parameter recyclebin; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ recyclebin string on 启动闪回 2.测试闪回删除的表: 创建两个一样的表,然后都删除,进行恢复. SQL> create table edu.test_flash(id number(12),na

Oracle闪回技术之一Oracle 11g 利用FlashTable (闪回表)恢复(用delete)误删的数据

闪回表,实际上就是将表中的数据快速恢复到过去的一个时间点或者系统改变号SCN上.实现表的闪回,需要用到撤销表空间相关的UNDO信息,通过SHOW PARAMETER UNDO命令就可以了解这些信息.用户对表的数据的修改操作,都记录在撤销表空间中,这为表的闪回提供的数据恢复的基础. 修改记录被提交到undo表空间中的默认保留时间为900秒,用户可以在这900秒的时间内对表的进行闪回操作,从而将表中的数据恢复的修改前的状态. 如上图显示的默认900秒,我们通过sql来修改这个默认时间为1200: f

Oracle 闪回

Oracle闪回技术 1.Flashback Database 2.Flashback Drop 3.Flashback Table 4.Flashback Query 1.Flashback Database(利用闪回日志恢复) 描述:Oracle Flashback Database特性允许通过SQL语句Flashback Database语句,让数据库前滚到当前的前一个时间点或者SCN.闪回数据库可以迅速将数据库回到误操作或人为错误的前一个时间点,如ctrl+Z操作,可以不利用备份就快速的

Oracle 六大闪回技术,flashback

Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数. 要使用flashback 的特性,必须启用自动撤销管理表空间. 在Oracle 11g里又出了一个新特性:Oracle Flashback Data Archive. FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来, 这样就可以为闪回归档区单独设置存储策略,使之可以闪回到指定时间之前的旧数据而不影响undo策略. 在Or