首页 / 数据库 / MySQL / 闪回归档(11G新功能)远离ORA-01555错误
1.1.1.1 闪回归档前面闪回都是基于undo来实现的闪回,由于我们的闪回都是不确定时间的,所以就会导致ORA-01555(快照太旧或者被覆盖)、ORA-01466(表定义被改)、ORA-08180(没有快照)等错误。1.1.1.1.1 创建表空间,默认大小500MSQL> 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天,配额为200MSQL> 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[Oracle@oracle trace]$ tail -falert_oracle007.logThread1 advanced to log sequence 63 (LGWR switch)Current log# 3 seq# 63 mem# 0:/u01/app/oracle/oradata/oracle007/redo03.logThuMay 07 17:12:06 2015ArchivedLog entry 60 added for thread 1 sequence 62 ID 0x958cb7c1 dest 1:ThuMay 07 16:46:52 2015Starting background process FBDAThu May 07 16:46:52 2015FBDA started with pid=27, OS id=357511.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)----------75466norows selected1.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_1FBA2 HIS_DATA_1 2001.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 DEFAULTFBA2 07-05_2015 301.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,这个表对应的是装历史数据库块的) ENABLEDT SCOTT FBA2 SYS_FBA_HIST_78983 ENABLED1.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_1SYS_FBA_TCRV_78983(每一个事物、改变的信息) HIS_DATA_1SYS_FBA_HIST_78983(记录表实际改变的数据)1.1.1.1.15 修改闪回归档配额为200MSQL> 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更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址