0

0

浅谈ORACLE数据库闪回

php中文网

php中文网

发布时间:2016-06-07 15:19:12

|

1320人浏览过

|

来源于php中文网

原创

oracle 闪回技术包括闪回删除和闪回数据库。闪回删除主要是关注用户误删除表、索引的数据库对象;闪回数据库是一种快速的数据库恢复方案,这种恢复是基于用户的逻辑错误,比如对表中的数据做了错误的修改、插入了大量的错误数据。 闪回删除: [oracle@localh

oracle闪回技术包括闪回删除和闪回数据库。闪回删除主要是关注用户误删除表、索引的数据库对象;闪回数据库是一种快速的数据库恢复方案,这种恢复是基于用户的逻辑错误,比如对表中的数据做了错误的修改、插入了大量的错误数据。

闪回删除:

[oracle@localhost ~]$ sqlplus test/test@orcl      

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 9 16:50:00 2014

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>show parameter recyclebin;

NAME        TYPE         VALUE
----------------  -----------   ------------ 

recyclebin    string        on

SQL> drop table student;

Table dropped.

SQL> show recyclebin;
ORIGINAL NAME  RECYCLEBIN NAMEOBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
STUDENT   BIN$+2ROU1DktpLgQKjAkwBc6A==$0 TABLE     2014-06-09:16:50:41

SQL> select object_name,original_name,operationfrom recyclebin;

OBJECT_NAME
--------------------------------------------------------------------------------
ORIGINAL_NAME
--------------------------------------------------------------------------------
OPERATION
---------------------------
BIN$+2ROU1DltpLgQKjAkwBc6A==$0
STUDENT
DROP

SQL> select * from tab;

TNAME
--------------------------------------------------------------------------------
TABTYPE         CLUSTERID
--------------------- ----------
BIN$+2ROU1DltpLgQKjAkwBc6A==$0
TABLE

SQL> flashback table student to before drop;

Flashback complete.

SQL> select * from tab;

TNAME
--------------------------------------------------------------------------------
TABTYPE         CLUSTERID
--------------------- ----------
STUDENT
TABLE

SQL> select * from student;

       SNO SNAME
---------- ------------------------------
  1 xxx
 11 aa

 也可以执行下面语句进行闪回:

flashback table"bin$+2rou1dktplgqkjakwbc6a==$0" to before drop rename to student;


闪回数据库:


[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jun 9 16:50:00 2014

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options


查看数据库是否开闪回
SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
NO


SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38759: Database must be mounted by only one instance and not open.


SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.


SQL> startup mount
ORACLE instance started.

Total System Global Area  184549376 bytes
FixedSize                 1218412 bytes
VariableSize             83888276 bytes
Database Buffers          96468992 bytes
RedoBuffers               2973696 bytes
Database mounted.

数据库在mount状态下再次尝试开启数据库的闪回功能,又返回错误信息,说明数据库在非归档状态下不支持数据库级别的闪回。
SQL> alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38707: Media recovery is not enabled.


SQL> alter database archivelog;

Database altered.

SQL> alter database flashback on;

Database altered.

SQL> alter database open;

Database altered.

开启归档,默认的归档目录:USE_DB_RECOVERY_FILE_DEST
SQL> archive log list
Database logmode             Archive Mode
Automaticarchival            Enabled
Archive destination           USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     59
Next log sequence to archive   61
Current logsequence           61

检验数据库闪回是否开启
SQL> select flashback_on from v$database;

FLASHBACK_ON
------------------
YES

查看闪回区信息,默认安装大小为2G,根据数据库的具体情况作修改。
SQL> show parameter recover_file_dest

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest               string      /u01/app/oracle/flash_recovery_area
db_recovery_file_dest_size          big integer 20G

数据库可以恢复到多少分钟以前,默认1440分钟(一天)
SQL> show parameter flash

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target       integer     1440


查看数据库能恢复到最早的scn和最早的时间
SQL> select oldest_flashback_scn,oldest_flashback_time fromv$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TIME
-------------------- ---------------------
            1021372     20101130 23:07:18

SQL> select * from student;

    SNO SNAME
---------- ------------------------------
  1 xxx
 11 aa

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    6312412445

SQL> insert into student values(22,'nn');

1 row created.

SQL> commit;

Commit complete.

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    6312412458

通过v$flashback_database_logv$flashback_database_stat视图查询相关闪回数据库信息

SQL> selectoldest_flashback_scn,oldest_flashback_time from v$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBAC
-------------------- ---------------
      6259583 09-JUN-14

SQL> select * from v$flashback_database_stat;

BEGIN_TIME END_TIME FLASHBACK_DATA  DB_DATA  REDO_DATA
--------------- --------------- -------------- ---------- ----------
ESTIMATED_FLASHBACK_SIZE
------------------------
10-JUN-14 10-JUN-14       5529600   7790592    2463744

关闭数据库并启动到mount状态,执行闪回,并以resetlogs打开数据库

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 1224736768 bytes
Fixed Size      2083560 bytes
Variable Size    335545624 bytes
Database Buffers   872415232 bytes
Redo Buffers     14692352 bytes
Database mounted.
SQL> flashback database to scn 6312412445;

Flashback complete.

SQL> alter database open resetlogs;

Database altered.

备注:

1、使用sysdba身份登陆,通过dba_recyclebin可以查询回收站里所有的对象,也可以指定条件查询

2、无论是OS认证还是密码认证,以sysdba登陆默认用户是syssys用户的默认表空间是systemsystemsysaux表空间无法做回收站的操作

3、执行表闪回后,与表相关联的对象也会被闪回,但是对象名已经发生变化,需要重命名或者重建对象

4、只要启动了闪回数据库特性,数据库的永久表空间都会受到闪回数据库保护,如果不希望某个表空间受闪回数据库保护,可以禁用对某个表空间的闪回特性

alter tablespace users flashback off;

5、在闪回数据库时,往往要用到具体的时间或者scn,我们可以定义容易记忆的复原点(scn的别名)来执行闪回,步骤如下

     5.1、创建一个复原点

 SQL> create restore point rp0;

Restore point created.

     5.2、创建有保证的复原点

SQL> create restore point rp1 guarantee flashbackdatabase;

Restore point created.

     5.3、查询复原点信息

SQL> selectname,scn,storage_size,guarantee_flashback_database from v$restore_point;

NAME      SCN       STORAGE_SIZE    GUARANTEE
---------- ------------    ---------------------      ---------------------
RP1       6316026     31883264                    YES

RP0       6322551         0                               NO





 




相关专题

更多
Word 字间距调整方法汇总
Word 字间距调整方法汇总

本专题整合了Word字间距调整方法,阅读下面的文章了解更详细操作。

2

2025.12.24

任务管理器教程
任务管理器教程

本专题整合了任务管理器相关教程,阅读下面的文章了解更多详细操作。

2

2025.12.24

AppleID格式
AppleID格式

本专题整合了AppleID相关内容,阅读专题下面的文章了解更多详细教程。

0

2025.12.24

csgo视频观看入口合集
csgo视频观看入口合集

本专题整合了csgo观看入口合集,阅读下面的文章了知道更多入口地址。

29

2025.12.24

yandex外贸入口合集
yandex外贸入口合集

本专题汇总了yandex外贸入口地址,阅读下面的文章了解更多内容。

58

2025.12.24

添加脚注通用方法
添加脚注通用方法

本专题整合了添加脚注方法合集,阅读专题下面的文章了解更多内容。

1

2025.12.24

重启电脑教程汇总
重启电脑教程汇总

本专题整合了重启电脑操作教程,阅读下面的文章了解更多详细教程。

3

2025.12.24

纸张尺寸汇总
纸张尺寸汇总

本专题整合了纸张尺寸相关内容,阅读专题下面的文章了解更多内容。

5

2025.12.24

Java Spring Boot 微服务实战
Java Spring Boot 微服务实战

本专题深入讲解 Java Spring Boot 在微服务架构中的应用,内容涵盖服务注册与发现、REST API开发、配置中心、负载均衡、熔断与限流、日志与监控。通过实际项目案例(如电商订单系统),帮助开发者掌握 从单体应用迁移到高可用微服务系统的完整流程与实战能力。

1

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webpack4.x---十天技能课堂
Webpack4.x---十天技能课堂

共20课时 | 1.4万人学习

Bootstrap4.x---十天精品课堂
Bootstrap4.x---十天精品课堂

共22课时 | 1.6万人学习

ECMAScript6 / ES6---十天技能课堂
ECMAScript6 / ES6---十天技能课堂

共25课时 | 1.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号