闪回归档(11G新功能)远离ORA-01555错误



1.1.1.1   闪回归档

前面闪回都是基于undo来实现的闪回,由于我们的闪回都是不确定时间的,所以就会导致ORA-01555(快照太旧或者被覆盖)、ORA-01466(表定义被改)、ORA-08180(没有快照)等错误。

1.1.1.1.1      创建表空间,默认大小500M

SQL> CREATE TABLESPACEhis_data_1 datafile ‘+DATA‘ size 500m;

Tablespacecreated.

1.1.1.1.2      创建默认闪回归档,保存天数为7天

SQL> create flashback archivedefault fba1 tablespace his_data_1 retention 7 day;

Flashbackarchive created.

1.1.1.1.3      创建闪回归档,保存天数为30天,配额为200M

SQL> create flashback archive fba2 tablespace his_data_1 QUOTA 200mRETENTION 30 day;

Flashbackarchive created.

1.1.1.1.4      为用户授权

SQL> grant flashback archive onfba1 to scott;

Grantsucceeded.

SQL> grant flashback archiveon fba2 to scott;

Grantsucceeded.

1.1.1.1.5      创建表,并开启闪回归档

SQL> create tableempsal_his(empno number,ename varchar2(10),sal number) flashback archive;(默认为fba1)

Tablecreated.

SQL> create table t(id int)flashback archive fba2;

Tablecreated.

1.1.1.1.6      向表内插入数据,并查看ALERT日志

17:07:57 SQL> insert intoscott.t select object_id from dba_objects;

75465rows created.

17:09:12 SQL> commit;

Commitcomplete

[[email protected] trace]$ tail -falert_oracle007.log

Thread1 advanced to log sequence 63 (LGWR switch)

Current log# 3 seq# 63 mem# 0:/u01/app/oracle/oradata/oracle007/redo03.log

ThuMay 07 17:12:06 2015

ArchivedLog entry 60 added for thread 1 sequence 62 ID 0x958cb7c1 dest 1:

ThuMay 07 16:46:52 2015

Starting background process FBDA

Thu May 07 16:46:52 2015

FBDA started with pid=27, OS id=35751

1.1.1.1.7      重建UNDO表空间

17:11:59 SQL> create undo tablespaceundotbs2 datafile ‘+DATA‘ size 100m;

Tablespacecreated.

1.1.1.1.8      更改系统undo表空间

17:14:59 SQL> alter system setundo_tablespace=‘undotbs2‘;

Systemaltered.

1.1.1.1.9      删除系统undo表空间及数据库文件(原来)

17:56:27 SQL> drop tablespace undotbs1including contents and datafiles;

Tablespacedropped.

1.1.1.1.10 查看某个时间点表的内容

查看刚创建表没有添加内容时表里的内容

SQL> select id from t as of timestampto_timestamp(‘2015-5-7 17:05:57 ‘,‘YYYY-MM-DD hh24:mi:ss‘);

norows selected

向表内增加一条数据

SQL> insert into t values(1);

1row created.

SQL> commit;

Commitcomplete.

查看在增加数据之前表里行的条数

SQL> select count(id) from t asof timestamp to_timestamp(‘2015-5-7 18:07:04‘,‘YYYY-MM-DD hh24:mi:ss‘);

COUNT(ID)

----------

75465

查看在增加数据之后表里行的条数

SQL> select count(id) from t;

COUNT(ID)

----------

75466

norows selected

1.1.1.1.11 查看闪回归档表空间大小及配额

SQL> select flashback_archive_name,tablespace_name,quota_in_mb fromdba_flashback_archive_ts;

FLASHBACK_ARCHIVE_NAME        TABLESPACE_NAME               
QUOTA_IN_MB

------------------------------------------------------------ ------------------------------

FBA1                          HIS_DATA_1

FBA2                          HIS_DATA_1                    
200

1.1.1.1.12 查看闪回归档日期及保存时间及默认闪回归档

SQL> selectflashback_archive_name,to_char(CREATE_TIME,‘dd-mm_yyyy‘)created,retention_in_days,statusfrom dba_flashback_archive;

FLASHBACK_ARCHIVE_NAME        CREATED   
RETENTION_IN_DAYS STATUS

---------------------------------------- ----------------- -------

FBA1                          07-05_2015                
7 DEFAULT

FBA2                          07-05_2015               
30

1.1.1.1.13 查看闪回归档的表信息,

SQL> select * from dba_flashback_archive_tables;

TABLE_NAME                    OWNER_NAME                    FLASHBACK_ARCHIVE_NAME        ARCHIVE_TABLE_NAME                                   STATUS

------------------------------------------------------------ ------------------------------ ------------------------------------------------------------------

EMPSAL_HIS                    SCOTT                         
FBA1                          SYS_FBA_HIST_78982(后面的数字对应的是dba_object里object_id,这个表对应的是装历史数据库块的)                                ENABLED

T                             SCOTT         
                FBA2                          SYS_FBA_HIST_78983                                   ENABLED

1.1.1.1.14 查看闪回归档的基表

SQL> selecttable_name,tablespace_name from user_tables where table_name like ‘%FBA%‘;

TABLE_NAME                    TABLESPACE_NAME

------------------------------------------------------------

SYS_FBA_DDL_COLMAP_78983(记录DDL操作)      HIS_DATA_1

SYS_FBA_TCRV_78983(每一个事物、改变的信息)           HIS_DATA_1

SYS_FBA_HIST_78983(记录表实际改变的数据)

1.1.1.1.15 修改闪回归档配额为200M

SQL> alterflashback archive fba1 modify tablespace his_data_1 quota 200M;

Flashback archive altered.

1.1.1.1.16 修改闪回归档保留时间为1天

SQL> alterflashback archive fba1 modify retention1 day;

Flashback archive altered.

1.1.1.1.17 删除闪回归档

SQL> drop flashback archive fba1;

Flashback archive dropped.

1.1.1.1.18手动清除所有归档

SQL> alterflashback archive fba2 purge all;

Flashback archive altered.

1.1.1.1.19      
手动清除某时间段闪回归档

SQL> alterflashback archive fba2
purge before timestamp (systimestamp - interval ‘1‘ day);(清除一天前的,month,year);

Flashback archive altered.

1.1.1.1.20      
手动清除基于SCN的归档。

SQL> alter flashback archive fba2 purgebefor scn 1111



时间: 2024-07-31 19:48:03

闪回归档(11G新功能)远离ORA-01555错误的相关文章

Oracle 11g闪回归档技术

闪回数据归档 使用闪回数据归档功能可以自动跟踪和归档启用了闪回数据归档的表中的数据.这可确保闪回查询能够获得对数据库对象版本的 SQL 级别访问权限,而不会出现快照太旧的错误. 利用闪回数据归档功能,可以在"跟踪的"表的整个生命期内跟踪并存储对该表的所有事务处理更改.不再需要将此智能功能内 置到应用程序中.闪回数据归档功能对于遵守规定.审计报告.数据分析和决策支持系统非常有用.闪回数据归档后台进程随数 据库一起启动. 闪回数据归档包含一个或多个表空间.可以拥有多个闪回数据归档,它们都配

[课]10.2演示闪回归档及闪回数据库

#=========闪回归档================== 数据库版本 1.1创建默认的闪回归档 1.2新用户授权及创建归档表 查询一下我们启动闪回归档的表: 1.3模拟测试表更改 1.4更改undo表空间设置 为了更好地演示闪回归档,避免在演示的过程中系统使用未覆盖的UNDO日志,现在我们切换当前的undo表空间,使系统在做闪回归档的时候用不到UNDO空间的数据. 1.5闪回归档livan表 #=========闪回数据库演示=============== 2.1查看当前配置 2.2开启

【练习】闪回归档

1.开启归档模式: 16:02:21 SYS@ORA11GR2>archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/app/oracle/product/11.2.0/dbhome_1/dbs/arch Oldest online log sequence 1 Next log sequence to archive 1 Current log s

Oracle OCP笔记(31)使用闪回功能

Oracle OCP笔记(31)使用闪回功能 Oracle的闪回功能受到3个数据库结构之一的支持: 撤消数据.闪回恢复区和回收站. 撤消表空间中的撤销数据不仅支持事务回滚,也支持大多数闪回表操作.Flashback Data Archives允许查询先前版本的表行,它在撤销表空间之外的一个或多个表空间中提供一个区域,支持的保留期比撤销表空间还长.闪回日志保存在闪回恢复区中,从而无需执行传统的还原和恢复操作,即可方便地将整个数据库回滚到过去的时间点.每个表空间中的回收站包含一个或多个版本的已删除的

闪回数据归档(Flashback Data Archive)

转自:http://book.2cto.com/201209/4154.html 闪回查询对撤销数据及参数undo_retention的依赖注定了它们在大事务量的情况下闪回时间窗口将会很小,想要查询数月之前的"旧"数据绝对不可能,但在闪回数据归档面前这并不是不可能的. 闪回数据归档的工作原理是将原本只能保存在UNDO表空间的撤销数据额外的以一种历史表的形式保存在指定的普通表空间(permanent类型的表空间)中.并且不像undo_retention参数那样是个影响整个数据库的设置,闪

Oracle 六大闪回技术,flashback

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

【Java EE 学习第30天】【闪回】【导入导出】【管理用户安全】【分布式数据库】【数据字典】【方案】

一.闪回 1.可能的误操作 (1)错误的删除了记录 (2)错误的删除了表 (3)查询历史记录 (4)撤销已经提交了的事务. 2.对应着以上四种类型的误操作,有四种闪回类型 (1)闪回表:将表回退到过去的一个时间上 (2)闪回删除:还原Oracle回收站 (3)闪回版本查询:所有历史记录 (4)闪回事务查询:通过一个select 语句得到一个undo_sql,通过该undo_sql闪回 3.事实上oracle数据库还有另外两种闪回类型 (5)闪回数据库 (6)闪回归档日志 4.系统改变号:由时间戳

【oracle11g,13】表空间管理2:undo表空间管理(调优) ,闪回原理

一.undo空间原理: dml操作会产生undo数据. update时,sever process 会在databuffer 中找到该记录的buffer块,没有就从datafile中找并读入data buffer.在修改之前,原始数据先放到undo段,并在数据块头记录undo段(acitve 状态)中该数据块的位置,读写这个块时会占用事务槽,会将该事务号记录在数据块的头部.然后在进行update,并将该块放到dirty list检查点队列,等待dbwr进行写操作. 二.创建新的undo表空间替换

闪回之 Flashback Data Archive

背景:Oracle 11g 中 Flashback Data Archive 特性.将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和 undo 区别开来,这样就可以为闪回归档区单独设置存储策略,使之可以闪回到指定时间之前的旧数据而不影响 undo 策略.并且可以根据需要指定哪些数据库对象需要保存历史变化数据,而不是将数据库中所有对象的变化数据都保存下来,而只是记录了指定表的数据变化.所以,Flashback Data Archive 是针对对象的保护,是 Fla