【练习】闪回归档

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 sequence           1

2.创建表空间:

16:06:22 SYS@ORA11GR2>create tablespace fb_gd datafile ‘/u01/app/oracle/oradata/ORA11GR2/fb_gd.dbf‘ size 2G autoextend on;

Tablespace created.

3.创建默认闪回归档表,配额512M 保留时间为1年:

16:06:59 SYS@ORA11GR2>create flashback archive default fb_gd tablespace fb_gd quota 512M retention 1 year;

Flashback archive created.

4.为scott用户赋予启用闪回归档数据权限ps: 查看权限名称

16:36:41 SYS@ORA11GR2>select name from system_privilege_map where name like ‘%FLASHBACK%‘;

NAME
----------------------------------------
FLASHBACK ARCHIVE ADMINISTER
FLASHBACK ANY TABLE

16:17:49 SYS@ORA11GR2>grant flashback archive on fb_gd to scott;

Grant succeeded.

使用scott用户
16:37:22 SYS@ORA11GR2>conn scott/tiger
Connected.

5.创建表启用闪回归档数据:

16:38:36 SCOTT@ORA11GR2>create table t1 (x int) flashback archive fb_gd;

Table created.

6.对已存在的表启用闪回归档数据:

16:39:52 SCOTT@ORA11GR2>create table t2(x int);

Table created.

16:42:02 SCOTT@ORA11GR2>alter table t2 flashback archive fb_gd;

Table altered.

7.查看启用闪回归档数据的表:

16:42:20 SCOTT@ORA11GR2>select * from dba_flashback_archive_tables;

TABLE_NAME                     OWNER_NAME
------------------------------ ------------------------------
FLASHBACK_ARCHIVE_NAME
--------------------------------------------------------------------------------
ARCHIVE_TABLE_NAME                                    STATUS
----------------------------------------------------- -------------
T1                             SCOTT
FB_GD
SYS_FBA_HIST_88701                                    ENABLED

T2                             SCOTT
FB_GD
SYS_FBA_HIST_88702                                    ENABLED

TABLE_NAME                     OWNER_NAME
------------------------------ ------------------------------
FLASHBACK_ARCHIVE_NAME
--------------------------------------------------------------------------------
ARCHIVE_TABLE_NAME                                    STATUS
----------------------------------------------------- -------------

8.禁用闪回归档数据(必须有flashback archive administer权限):

16:43:06 SCOTT@ORA11GR2>alter table t2 no flashback archive;
alter table t2 no flashback archive
*
ERROR at line 1:
ORA-55620: No privilege to use Flashback Archive

16:46:08 SCOTT@ORA11GR2>conn / as sysdba
Connected.

16:48:30 SYS@ORA11GR2>grant flashback archive administer to scott;

Grant succeeded.

16:49:52 SCOTT@ORA11GR2>alter table t2 no flashback archive;

Table altered.

9.插入数据:

16:51:49 SCOTT@ORA11GR2>insert into t1 select deptno from dept;

4 rows created.

16:52:18 SCOTT@ORA11GR2>select * from t1;

         X
----------
        10
        20
        30
        40
查看scn‘

16:55:46 [email protected]>select current_scn from v$database;

CURRENT_SCN
-----------
    1268243

10.删除数据:

16:56:37 SCOTT@ORA11GR2>delete from t1;

4 rows deleted.

16:56:51 SCOTT@ORA11GR2>select count(*) from t1;

  COUNT(*)
----------
         0
16:56:59 SCOTT@ORA11GR2>commit;

Commit complete.

11.闪回查询:

16:57:35 SCOTT@ORA11GR2>select * from t1 as of scn 1268243;

         X
----------
        10
        20
        30
        40
查看scott用户下的表
17:23:07 SCOTT@ORA11GR2>select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
BONUS                          TABLE
DEPT                           TABLE
DEPT1                          TABLE
EMP                            TABLE
EMP_ORA11GR2                       TABLE
SALGRADE                       TABLE
SYS_FBA_DDL_COLMAP_88701       TABLE
SYS_FBA_HIST_88701             TABLE
SYS_FBA_TCRV_88701             TABLE
T1                             TABLE
T2                             TABLE

11 rows selected.

12.开启跟踪:

17:17:06 SCOTT@ORA11GR2>set autotrace on;
闪回查询从闪回归档表查询
17:17:10 SCOTT@ORA11GR2>select * from t1 as of scn 1268243;

         X
----------
        10
        20
        30
        40
    Execution Plan
----------------------------------------------------------
Plan hash value: 1359406288

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

| Id  | Operation                | Name               | Rows  | Bytes | Cost (%C
PU)| Time     | Pstart| Pstop |

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

|   0 | SELECT STATEMENT         |                    |     5 |    65 |    25
(8)| 00:00:01 |       |       |

|   1 |  VIEW                    |                    |     5 |    65 |    25
(8)| 00:00:01 |       |       |

|   2 |   UNION-ALL              |                    |       |       |
   |          |       |       |

|   3 |    PARTITION RANGE SINGLE|                    |     4 |   164 |    14
(0)| 00:00:01 |     1 |     1 |

|*  4 |     TABLE ACCESS FULL    | SYS_FBA_HIST_88701 |     4 |   164 |    14
(0)| 00:00:01 |     1 |     1 |

|*  5 |    FILTER                |                    |       |       |
   |          |       |       |

|   6 |     MERGE JOIN OUTER     |                    |     1 |  2053 |    11  (
19)| 00:00:01 |       |       |

|   7 |      SORT JOIN           |                    |     1 |    25 |     7  (
15)| 00:00:01 |       |       |

|*  8 |       TABLE ACCESS FULL  | T1                 |     1 |    25 |     6
(0)| 00:00:01 |       |       |

|*  9 |      SORT JOIN           |                    |     1 |  2028 |     4  (
25)| 00:00:01 |       |       |

|* 10 |       TABLE ACCESS FULL  | SYS_FBA_TCRV_88701 |     1 |  2028 |     3
(0)| 00:00:01 |       |       |

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

13.删除当前undo表空间:

17:34:47 SYS@ORA11GR2>show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS1

17:34:52 SYS@ORA11GR2>create undo tablespace UNDOTBS2 datafile ‘/u01/app/oracle/oradata/ORA11GR2/undotbs——01.dbf‘ size 100M autoextend on next 10M;

Tablespace created.

17:37:52 SYS@ORA11GR2>alter system set undo_tablespace=UNDOTBS2;

System altered.

17:38:33 SYS@ORA11GR2>drop tablespace UNDOTBS1 including contents and datafiles;

Tablespace dropped.
删除undo表空间也可以闪回查询
17:43:52 SCOTT@ORA11GR2>select * from t1 as of scn 1268243;

         X
----------
        10
        20
        30
        40

14.开启闪回归档的表不能删除:

19:16:55 SCOTT@ORA11GR2>drop table t1 purge;
drop table t1 purge
           *
ERROR at line 1:
ORA-55610: Invalid DDL statement on history-tracked table

19:17:43 SCOTT@ORA11GR2>alter table t1 no flashback archive;

Table altered.

19:18:19 SCOTT@ORA11GR2>drop table t1 purge;

Table dropped.
时间: 2024-12-14 18:53:17

【练习】闪回归档的相关文章

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

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

Oracle 11g闪回归档技术

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

闪回归档(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      创建默认闪回归档

闪回数据归档(Flashback Data Archive)

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

Oracle闪回技术详解

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

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

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

oracle的闪回

本文前半部分是一个plsql程序,程序实现了对不同职位的员工加薪,更改了数据库的数据.并且commit了事务;后半分结合前面的例子介绍了对oracle中的数据恢复,即如何撤销这个已经commit过的操作.,也由于本人技术水平和表达能力有限,对于概念性的部分和总结引自摘自: http://www.cnblogs.com/chengxiao/p/5860823.html,如果想更详细的了解oracle中的闪回机制可以访问该地址的博文,本文是重点是实例演示 一.首先需求是在emp表中实现: 给员工涨工

Oracle学习(十三):闪回

1.知识点:能够对比以下的录屏进行阅读 SQL> --1. 错误地删除了记录 SQL> --2. 错误地删除了表 SQL> --3. 查询历史记录 SQL> --4. 怎样撤销一个已经提交的事务 SQL> SQL> --闪回的类型 SQL> --1. 闪回表:将表回退到过去的一个时间上 SQL> --2. 闪回删除:Oracle回收站 SQL> --3. 闪回版本号查询:全部历史记录 SQL> --4. 闪回事务查询:通过select语句得到一个

Oracle 六大闪回技术,flashback

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