Oracle的闪回技术提供了一组功能,可以访问过去某一时间的数据并从人为错误中恢复。闪回技术是Oracle 数据库独有的,支持任何级别的恢复,包括行、事务、表和数据库范围。使用闪回特性,可以查询以前的数据版本,还可以执行更改分析和自助式修复,以便在保持数据库联机的同时从逻辑损坏中恢复。
闪回技术包括以下特性:

  • 闪回查询允许用户查询过去某个时间点的数据,以重新构建由于意外删除或更改而丢失的数据。
  • 闪回版本查询提供了一种查看行级数据库随时间变化的方法。
  • 闪回事务查询提供了一种查看事务级数据库变化的方法。
  • 闪回数据库是进行时间点恢复的新策略。它能够快速将Oracle 数据库恢复到以前的时间,正确更正由于逻辑数据损坏或用户错误而引起的任何问题。
  • 闪回表功能使 DBA 可以非常快速、轻松地将一个表或一组表恢复至过去特定的某一时间点。
  • 闪回删除在删除对象时提供了一个安全网,可以非常快速、轻松地取消对一个表及其相关对象对象的删除。
     Flashback技术是以Undo Segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。闪回参数如下:
SQL> show parameter undoNAME                     TYPE     VALUE
------------------------------------ ----------- ------------------------------
undo_management              string     AUTO         # undo_management参数值是否为AUTO,如果是“MANUAL”手动,需要修改为“AUTO”
undo_retention               integer     7200        # 1d是1440 即24*60,7200是5d
undo_tablespace              string     UNDO1

oracle数据库闪回类型主要有三种:
1.闪回数据库(flashback database)
闪回数据库就是当出现逻辑错误时,能够将整个数据库回退到出错前的那个状态。
2.闪回删除(flashback drop)
Oracle10g之前,一旦删除了一个表,那么该表就会从数据字典里面删除。要恢复该表,需要进行不完全恢复。
Oracle10g以后,当我们删除表时,默认Oracle只是在数据库字典里面对被删的表的进行了重命名,并没有真正的把表删除。
3.闪回表(flashback table)
所谓闪回表,就是将表里的数据会退到历史上的某个时间点,例如回退到用户误删除数据之前的时间点,从而将误删除的数据恢复回来,在这个过程中,数据库仍然可用,而且不需要类似于闪回日志一样的额外空间。闪回表利用的是undo表空间里记录的数据被改变前的值,如果闪回表所需要的undo数据,由于保留的时间超过了初始化参数undo_retention所指定的值,从而导致该undo数据块被其他事务覆盖,就不能恢复到指定的时间点了。

1 闪回数据库详解

Flashback Database整个架构包括一个进程Recover Writer(RVWR)后台进程、Flashback Database Log日志和Flash Recovery Area。闪回数据库的实现机理是闪回日志,只要配置了闪回数据库,就会自动创建闪回日志。只要数据库里的数据发生变化,oracle会将数据修改前的旧值保存在闪回日志中。
数据库的Flashback Database功能缺省是关闭的,要想启用这个功能,就需要做如下配置。

1.数据库配置为归档模式

开启闪回功能必须是在归档模式下

SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOGSQL> archive log list
Database log mode           Archive Mode
Automatic archival           Enabled
Archive destination           USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     672
Next log sequence to archive   675
Current log sequence           675

2.开启闪回功能:(与归档类似)

  • 单实例:
    1.保存一致性,先关闭数据库
SQL> shutdown immediate;

2.启动到mount阶段

SQL> startup mount;

3.启动闪回功能

SQL> alter database flashback on;

4.切换到open阶段

SQL> alter database open;
  • rac

(1)查看闪回状态:

SQL>  select flashback_on from v$database;FLASHBACK_ON
------------------
NO

(2)查看节点实例状态:

SQL> select instance_name,host_name,status from v$instance;INSTANCE_NAME  HOST_NAME            STATUS
---------------------------------------------------------------- ------------
racpdb1         testpdb1             OPEN[oracle@testpdb1 ~]$ srvctl status database -d racpdb
Instance racpdb1 is running on node testpdb1
Instance racpdb2 is running on node testpdb2

(3)查看数据库集群参数:

SQL> show parameter cluster;NAME                               TYPE     VALUE
------------------------------------ ----------- ------------------------------
cluster_database                   boolean     TRUE
cluster_database_instances         integer     2
cluster_interconnects              string

(4)备份参数文件:

SQL> create pfile='/tmp/racpdb-bak.ora' from spfile;File created.

(5)修改cluster_database参数:

SQL> alter system set cluster_database=false scope=spfile sid='*';System altered.

(6)两节点停止数据库,再从节点1启动到mount状态:

[oracle@testpdb1 ~]$ srvctl stop database -d racpdb
[oracle@testpdb1 ~]$ srvctl status database -d racpdb
Instance racpdb1 is not running on node testpdb1
Instance racpdb2 is not running on node testpdb2
[oracle@testpdb1 ~]$ srvctl start instance -d racpdb -i racpdb1 -o mount

(7)查询节点1数据库实例状态:

SQL> select instance_name,status from v$instance;INSTANCE_NAME     STATUS
---------------- ------------
racpdb1      MOUNTED

(8)修改数据库成闪回模式:

SQL> alter database flashback on;Database altered.

(9)将集群参数修改回去:

SQL> alter system set cluster_database=true scope=spfile sid='*';System altered.

(10)关闭节点1数据库:

SQL> shutdown immediate;
ORA-01109: 数据库未打开Database dismounted.
ORACLE instance shut down.

(11)再启动两节点数据库:

[oracle@testpdb1 ~]$ srvctl start database -d racpdb
[oracle@testpdb1 ~]$ srvctl status database -d racpdb
Instance racpdb1 is running on node testpdb1
Instance racpdb2 is running on node testpdb2

(12)切换到oracle用户下,查看状态:

SQL> select flashback_on from v$database;FLASHBACK_ON
------------------
YES

(13)也可启用表空间闪回

SQL> alter tablespace abc flashback on;    --开启表空间闪回
SQL> alter tablespace abc flashback off;    --关闭表空间闪回

3.配置闪回恢复区(flash recovery area FRA)

  • 查看闪回区
SQL> show parameter db_recovery_fileNAME                               TYPE     VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest              string     +FRA
db_recovery_file_dest_size         big integer 180G

一般在安装数据库实例时,会选择是否开启oracle数据闪回功能,默认是开启的,安装过程中可以配置闪回路径以及闪回空间的大小。

  • 查看闪回保留时间
SQL> show parameter db_flashback_retention_targetNAME                                  TYPE     VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target         integer     1440

db_flashback_retention_target参数用来控制flashback log 数据保留的时间,默认值是1440,单位是minute,即24小时。

4.闪回数据库

(1)创建一个测试表t1

SQL> create table t1 as select * from scott.dept;Table created.SQL> select * from t1;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON

(2)获取当前时间点和SCN

SQL> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER
---------------------------63448769038SQL> select to_char(systimestamp,'yyyy-mm-dd HH24:MI:SS') as sysdt from dual;SYSDT
-------------------
2020-06-05 10:56:47

(3)截断表t1

SQL> truncate table t1;
table truncated

(4)Flashback Database 实际是对数据库的一个不完全恢复操作,因为需要关闭数据库重启到mount状态。

[oracle@testpdb1 ~]$ srvctl stop database -d racpdb
[oracle@testpdb1 ~]$ srvctl start instance -d racpdb -i racpdb1 -o mount

(5)闪回数据库

SQL> flashback database to timestamp to_timestamp('2020-06-05 10:43:53','yyyy-mm-dd HH24:MI:SS');

或者使用

SQL> flashback database to scn 63448769038;Flashback complete.

(6)开库
在执行完flashback database 命令之后,oracle 提供了两种方式修复数据库:
  1) 直接alter database open resetlogs打开数据库,当然,指定scn或者timestamp时间点之后产生的数据统统丢失。

SQL> startup;
ORACLE instance started.Total System Global Area 6.0796E+10 bytes
Fixed Size            2268072 bytes
Variable Size         2.7783E+10 bytes
Database Buffers     3.2883E+10 bytes
Redo Buffers          127741952 bytes
Database mounted.
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项SQL> alter database open resetlogs;Database altered.
  • 查询被truncate的表,是否已经闪回数据。
SQL> select * from t1;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON

2) 先执行alter database open read only命令以read-only模式打开数据库,然后立刻通过逻辑导出的方式将误操作涉及表的数据导出,再执行recover database命令以重新应用数据库产生的redo,将数据库修复到flashback database 操作前的状态,然后再通过逻辑导入的方式,将之前误操作的表重新导入,这样的话对现有数据的影响最小,不会有数据丢失。

SQL> create table t2 as select * from t1;Table created.
SQL> insert into t2(deptno) values (50);1 row created.SQL> commit;Commit complete.SQL> select * from t2;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON50SQL> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER
------------------------63448769743SQL> truncate table t2;Table truncated.SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.SQL> startup mount;
ORACLE instance started.Total System Global Area 6.0796E+10 bytes
Fixed Size            2268072 bytes
Variable Size         2.8186E+10 bytes
Database Buffers     3.2481E+10 bytes
Redo Buffers          127741952 bytes
Database mounted.SQL> flashback database to scn 63448769743;Flashback complete.SQL> alter database open read only;Database altered.SQL> select * from t2;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON50

闪回成功。

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.Total System Global Area 6.0796E+10 bytes
Fixed Size            2268072 bytes
Variable Size         2.7783E+10 bytes
Database Buffers     3.2883E+10 bytes
Redo Buffers          127741952 bytes
Database mounted.
SQL> recover database;
Media recovery complete.
SQL> alter database open;Database altered.SQL> select * from t1;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTONSQL> select * from t2;no rows selected

2 闪回删除

Oracle10g以后,当我们删除表时,默认Oracle只是在数据库字典里面对被删的表的进行了重命名,并没有真正的把表删除。
  回收站(recyclebin):用来维护表被删除前的名字与删除后系统生成的名字之间的对应关系的数据字典,表上的相关对象(索引、触发器等)也会一并进入回收站。

SQL> show parameter recycleNAME                            TYPE          VALUE
------------------------------------ ----------- ------------------------------
buffer_pool_recycle             string
db_recycle_cache_size           big integer     0
recyclebin                      string          on

1.例一:闪回sys用户下的表

SQL> create table t3 as select * from t1;Table created.SQL> select * from user_recyclebin;no rows selectedSQL> drop table t3;Table dropped.SQL> select * from user_recyclebin;no rows selectedSQL> show recyclebin
SQL> show recyclebin;
SQL> flashback table t3 to before drop;
# 或者使用(flashback table t3 to before drop rename to t3_bak;)
flashback table t3 to before drop
*
ERROR at line 1:
ORA-38305: 对象不在回收站中

原因:Flashback不支持sys用户与system表空间下的对象,也不能从回收站里拿到。故使用SYS或者SYSTEM用户登陆时,show recyclebin为空。

2.例二:闪回非sys、system用户下的表

SQL> conn scott/tiger
Connected.
SQL> show user
USER is "SCOTT"
SQL> create table t3 as select * from dept;Table created.SQL> select * from user_recyclebin;no rows selectedSQL> show recyclebin;
SQL> drop table t3;Table dropped.SQL> select * from t3;
select * from t3*
ERROR at line 1:
ORA-00942: 表或视图不存在SQL> select * from user_recyclebin;OBJECT_NAME     ORIGINAL_NAME      OPERATION TYPE      TS_NAME        CREATETIME           DROPTIME           DROPSCN  PARTITION_NAME    CAN CAN    RELATED BASE_OBJECT PURGE_OBJECT   SPACE
------------------------------ -------------------------------- --------- ------------------------- ------------------------------ ------------------- -------------BIN$p08l1wtyjnTgU86AqMD6wA==$0 T3         DROP  TABLE     USERS         2020-06-05:11:48:56 2020-06-05:11:51:07 6.3449E+10   YES YES     112006     112006       112006          8# 查看被删除的表的表空间
SQL> select object_name,ts_name,space from user_recyclebin;OBJECT_NAME               TS_NAME                   SPACE
------------------------------ ------------------------------ ----------
BIN$p08l1wt0jnTgU86AqMD6wA==$0 USERS                       8SQL> show recyclebin;
ORIGINAL NAME     RECYCLEBIN NAME        OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T3         BIN$p08l1wtxjnTgU86AqMD6wA==$0 TABLE         2020-06-05:11:49:27SQL> flashback table t3 to before drop;Flashback complete.SQL> select * from t3;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTONSQL> drop table t3;Table dropped.SQL> select * from cat;TABLE_NAME               TABLE_TYPE
------------------------------ -----------
BIN$p08l1wtzjnTgU86AqMD6wA==$0 TABLE
BONUS                  TABLE
DEPT                   TABLE
EMP                    TABLE
SALGRADE               TABLESQL> show recyclebin;
ORIGINAL NAME     RECYCLEBIN NAME        OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T3         BIN$p08l1wtzjnTgU86AqMD6wA==$0 TABLE         2020-06-05:13:55:31
SQL> flashback table "BIN$p08l1wtzjnTgU86AqMD6wA==$0" to before drop;Flashback complete.SQL> select * from cat;TABLE_NAME              TABLE_TYPE
------------------------------ -----------
BONUS                   TABLE
DEPT                    TABLE
EMP                     TABLE
T3                      TABLE

3.备注:

禁用与启用recyclebin该功能:

SQL> alter system set recyclebin=off;
SQL> alter system set recyclebin=on;

禁用后删除的对象将直接删除,不会写到recyclebin中,当然在删除时,指定purge参数,表也将直接删除,不会写到recyclebin中。

SQL> drop table name purge;

关于purge命令

表空间的RecycleBin区域只是一个逻辑区域,而不是从表空间上物理的划出一块区域固定用于回收站,因此RecycleBin是和普通对象共用表空间的存储区域,或者说是RecycleBin的对象要和普通对象抢夺存储空间。当发生空间不够时,Oracle会按照先入先出的顺序覆盖RecycleBin中的对象。也可以手动的删除Recycle Bin占用的空间。

  1. Purge table table_name; 用于清空指定表的RecycleBin
SQL> drop table t4;Table dropped.SQL> show recyclebin
ORIGINAL NAME     RECYCLEBIN NAME        OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T3         BIN$p08l1wt0jnTgU86AqMD6wA==$0 TABLE         2020-06-05:14:17:03
T4         BIN$p08l1wt1jnTgU86AqMD6wA==$0 TABLE         2020-06-05:14:21:56SQL> purge table t4;Table purged.SQL> show recyclebin
ORIGINAL NAME     RECYCLEBIN NAME        OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T3         BIN$p08l1wt0jnTgU86AqMD6wA==$0 TABLE         2020-06-05:14:17:03
  1. Purge tablespace tablespace_name; 用于清空表空间的RecycleBin
  2. Purge tablespace tablespace_name user user_name; 清空指定表空间的Recycle Bin中指定用户的对象
  3. Purge recyclebin; 删除当前用户的Recycle Bin中的对象
SQL> show recyclebin
ORIGINAL NAME     RECYCLEBIN NAME        OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
T3         BIN$p08l1wt0jnTgU86AqMD6wA==$0 TABLE         2020-06-05:14:17:03
SQL> purge recyclebin;Recyclebin purged.SQL> show recyclebin
  1. Purge dba_recyclebin 删除所有用户的Recycle Bin中的对象,该命令要sysdba权限
  2. Drop table table_name purge; 删除对象并且不放在Recycle Bin中,即永久的删除,不能用Flashback恢复。
SQL> drop table t5 purge;Table dropped.SQL> show recyclebin
  1. Purge index recycle_bin_object_name; 当想释放Recycle bin的空间,又想能恢复表时,可以通过释放该对象的index所占用的空间来缓解空间压力。因为索引是可以重建的。

3 闪回表

查询过去某个时刻表的数据的情况,一旦确认某个时刻的数据满足我们的需求以后,可以根据这个时间执行闪回表。

SQL> create table t6 as select * from dept;Table created.
SQL> insert into t6 select * from t6;4 rows created.SQL> commit;Commit complete.
SQL> select * from t6;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON8 rows selected.
SQL> select to_char(systimestamp,'yyyy-mm-dd HH24:MI:SS') as sysdt from dual;SYSDT
-------------------
2020-06-05 14:40:59
  • 闪回至1分钟前:
SQL> flashback table t6 to timestamp(systimestamp - 1/1440);
flashback table t6 to timestamp(systimestamp - 1/1440)*
ERROR at line 1:
ORA-08189: 因为未启用行移动功能, 不能闪回表

ORA-08189: 因为未启用行移动功能, 不能闪回表,需要先执行一个命令:  ALTER TABLE dept ENABLE ROW MOVEMENT。

SQL> alter table t6 enable row movement;Table altered.SQL>  flashback table t6 to timestamp(systimestamp - 1/1440);Flashback complete.SQL> select * from t6;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON8 rows selected.SQL> flashback table t6 to timestamp(systimestamp - 5/1440);
flashback table t6 to timestamp(systimestamp - 5/1440)*
ERROR at line 1:
ORA-01466: 无法读取数据 - 表定义已更改

因为5min前还没有这张表

  • 闪回至3分钟前
SQL> flashback table t6 to timestamp(systimestamp - 3/1440);Flashback complete.SQL> select * from t6;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON

还是4行,在insert之前

  • 查询2020-06-05 14:40:59时的表数据
SQL> select * from t6 as of timestamp to_timestamp('2020-06-05 14:40:59','yyyy-mm-dd HH24:MI:SS');DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON10 ACCOUNTING      NEW YORK20 RESEARCH        DALLAS30 SALES           CHICAGO40 OPERATIONS      BOSTON8 rows selected.
  • 查看15分钟前的数据
SQL> select * from t6 as of timestamp(sysdate - 15/1440);
select * from t6 as of timestamp(sysdate - 15/1440)*
ERROR at line 1:
ORA-01466: 无法读取数据 - 表定义已更改
  • 查看5分钟前的数据
SQL> select * from t6 as of timestamp(sysdate - 5/1440);DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH      DALLAS30 SALES      CHICAGO40 OPERATIONS      BOSTON
  • 查看scn
SQL> select dbms_flashback.get_system_change_number from dual;
select dbms_flashback.get_system_change_number from dual*
ERROR at line 1:
ORA-00904: : 标识符无效
  • sys用户:
    将dbms_flashback的执行权限授权给scott用户
SQL> grant execute on dbms_flashback to scott;Grant succeeded.
  • scott:
    查看当前scn
SQL> select dbms_flashback.get_system_change_number from dual;GET_SYSTEM_CHANGE_NUMBER
------------------------63448786464
SQL> select * from t6;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH      DALLAS30 SALES      CHICAGO40 OPERATIONS      BOSTON
  • 插入数据
SQL> insert into t6 select * from t6;4 rows created.SQL> commit;Commit complete.SQL> select * from t6;DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH      DALLAS30 SALES      CHICAGO40 OPERATIONS      BOSTON10 ACCOUNTING      NEW YORK20 RESEARCH      DALLAS30 SALES      CHICAGO40 OPERATIONS      BOSTON8 rows selected.
  • 查看scn映射的事务提交时间
SQL> select scn_to_timestamp(63448786464) from dual;SCN_TO_TIMESTAMP(63448786464)
---------------------------------------------------------------------------
05-6月 -20 02.53.15.000000000 下午
  • 根据insert数据时间点前的scn来查询insert前的数据
SQL> select * from t6 as of scn(63448786464);DEPTNO DNAME      LOC
---------- -------------- -------------10 ACCOUNTING      NEW YORK20 RESEARCH      DALLAS30 SALES      CHICAGO40 OPERATIONS      BOSTON

oracle 闪回功能详解相关推荐

  1. Oracle 闪回特性 详解

    Oracle的闪回技术提供了一组功能,可以访问过去某一时间的数据并从人为错误中恢复.闪回技术是Oracle 数据库独有的,支持任何级别的恢复,包括行.事务.表和数据库范围.使用闪回特性,您可以查询以前 ...

  2. Oracle 闪回技术详解

    概述 闪回技术是Oracle强大数据库备份恢复机制的一部分,在10g的时候就被推出一直延续到现在.在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成 ...

  3. oracle闪回数据库详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  4. oracle 闪回表定义,oracle闪回表详解

    --- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...

  5. Oracle闪回技术详解

    Oracle的闪回技术提供了一组功能,可以访问过去某一时间的数据并从人为错误中恢复.闪回技术是Oracle 数据库独有的,支持任何级别的恢复,包括行.事务.表和数据库范围.使用闪回特性,您可以查询以前 ...

  6. 【转载】oracle闪回技术详解之闪回drop(神奇的flashback)

    写在前面:删库跑路,相信这是绝大多数程序员会经常听到的一个词.俗话说:常在河边走,哪有不湿鞋,作为经常和数据打交道的程序员也好,运维实施也好,有时难免会出现数据误删除,误操作等情况.如果你是一个ora ...

  7. oracle闪回技术详解之闪回drop(神奇的flashback)

    写在前面:删库跑路,相信这是绝大多数程序员会经常听到的一个词.俗话说:常在河边走,哪有不湿鞋,作为经常和数据打交道的程序员也好,运维实施也好,有时难免会出现数据误删除,误操作等情况.如果你是一个ora ...

  8. oracle中闪回和回滚,oracle闪回操作详解

    Oracle的闪回 oracle中为什么会有闪回呢!它的作用是什么呢?我们来学习一下闪回吧!闪回和回滚异曲同工之妙. 一闪回的介绍 (1)在Oracle的操作工程中,会不可避免地出现操作失误或者用户失 ...

  9. oracle flash_back oracle闪回技术详解,oracle flashback 闪回技术实例

    oracle flashback 闪回技术实例 相关操作 1.DBA必须设定undo保持力足够大以能够重构需要闪回的数据 ALTER SYSTEM SET UNDO_RETENTION=; secon ...

最新文章

  1. MySQL下优化SQL的一般步骤
  2. NYOJ 20 吝啬的国度(深搜)
  3. 高通8xxx平台双MIC设置
  4. __asm__ __volatile__(: : :memory)
  5. phpword中设置间距_管道支、吊架的安装间距规范上如何规定?
  6. css3-13 如何改变文本框的轮廓颜色
  7. python教程简书_Python快速教程
  8. redhat5.4 安装mysql_Linux redhat 5.4上安装MYDNS
  9. linux下tools.jar,Linux android studio :'tools.jar' seems to be not in Android Studio classpath.
  10. 【现代软件工程】第一次作业——词频统计
  11. 华为OpenStack开源团队人才招募中
  12. amazeUI的icon图标库
  13. Linux rescue
  14. NIO网络编程中重复触发读(写)事件
  15. Linux C++ 信号量学习 sem_init sem_post sem_wait sem_timedwait
  16. .unl 文件 导入 mysql,导入数据到informix数据库问题
  17. 华为p30怎么删掉云相册的照片_华为手机云空间满了,教你如何清理
  18. init和destory方法
  19. UniPro助力半导体企业之低代码平台篇:高效协同快速响应
  20. 1 STM32F407ZG的简单介绍

热门文章

  1. OpenCV-Python学习(12)—— OpenCV 向图像添加文本(cv.putText、cv.getTextSize)
  2. dell r440服务器安装Ubuntu18.04
  3. 微淘小程序模版开源(含拼团功能)
  4. 图像处理软件--利用PR将视频保存成一系列图片
  5. JS函数调用、修改全局变量的知识
  6. LinuxAndroid 的权限问题 dr-xr-xr-x
  7. 官方正版制作Win10U盘启动攻略
  8. 硬盘识别成 CD驱动器
  9. Python条件执行结构
  10. 2023年PMP考试费用是多少呢? PMP考试费用明细