Oracle数据库中闪回恢复的详细分析

Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的。这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了。oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力,这是通过引入一种新的flashback
log实现的。

flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback
log则将Oracle数据库往后滚。为了保存管理和备份恢复相关的文件,oracle10g提供了一个叫做闪回恢复区(Flashback recovery
area)的新特性,可以将所有恢复相关的文件,比如flashback log,archive log,backup set等,放到这个区域集中管理。

1.设置闪回恢复区

闪回恢复区主要通过3个初始化参数来设置和管理

db_recovery_file_dest:指定闪回恢复区的位置

db_recovery_file_dest_size:指定闪回恢复区的可用空间大小

db_flashback_retention_target:指定Oracle数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的
flash log。所以这个参数要和db_recovery_file_dest_size配合修改。

2.启动flashback database

设置了闪回恢复区后,可以启动闪回数据库功能。

首先,数据库必须已经处于归档模式

那么如何设置归档呢?很简单的步骤

1.关闭数据库

  1. SQL> shutdown immediate;

2.启动Oracle数据库为mount模式

  1. SQL> startup mount

3.显示和修改归档模式

  1. SQL> archive log list

  2. SQL> alter database archivelog;

  3. SQL> alter database open

4.设置归档日志的格式

  1. SQL>alter system set log_archive_format=‘ARC%s%t%r.log‘ scope=spfile;

5.设置归档日志的存放路径

  1. SQL>alter system set log_archive_dest=‘+data/arcl‘ scope=spfile;

  2. SQL>shutdown immediate

  3. SQL>startup

6.强制切换归档日至

  1. SQL>alter system switch logfile;

7.取消归档

  1. SQL>alter database noarchivelog;

参数

1.格式参数

%s 日志序列号

%S 日志序列号(带前导的0)

%t 重做线程编号

%a 活动的ID号

%dOracle 数据库ID号

%r RESELOGS的iD值

  1. SQL> archive log list;

  2. Database log mode Archive Mode

  3. Automatic archival Enabled

  4. Archive destination USE_DB_RECOVERY_FILE_DEST

  5. Oldest online log sequence 156

  6. Next log sequence to archive 158

  7. Current log sequence 158

然后,启动Oracle数据库到mount状态

  1. SQL> shutdown immediate;

  2. Database closed.

  3. Database dismounted.

  4. ORACLE instance shut down.

  5. SQL> startup mount

  6. ORACLE instance started.

  7. Total System Global Area 285212672 bytes

  8. Fixed Size 1218992 bytes

  9. Variable Size 75499088 bytes

  10. Database Buffers 205520896 bytes

  11. Redo Buffers 2973696 bytes

  12. Database mounted.

  13. SQL>alter database flashback on;

Oracle数据库中闪回恢复的详细分析

时间: 2024-08-06 07:58:55

Oracle数据库中闪回恢复的详细分析的相关文章

[转]Oracle DB执行闪回数据库

? 配置闪回数据库 ? 执行闪回数据库操作 ? 监视闪回数据库 闪回数据库 闪回数据库操作: ? 作用类似于数据库的倒带按钮 ? 可以在用户造成了逻辑数据损坏的情况下使用 闪回数据库 使用闪回数据库,通过还原自先前某个时间点以来发生的所有更改,可快速将数据库恢复到那个时间的状态.因为不需要还原备份,所以此操作速度很快.可以使用此功能还原导致逻辑数据损坏的更改. 使用闪回数据库时,Oracle DB 可使用过去的块映像回退对数据库的更改.在正常数据库操作期间,Oracle DB 会不定期地将这些块

Oracle Flashback闪回恢复管理_超越OCP精通Oracle视频课程培训20

oracle视频教程目标 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库关于Flashback概念,Flashback参数设置与归档模式,Flashback恢复案例-Flashback database,Flashback DROP,Flashback Query,Flashback version Query,Flashback Transaction Query,Flashback Table,Flashback Data Archive等常用技术. 适用人群 IT

Oracle Flashback Technologies - 闪回数据库

根据指定的SCN,使用rman闪回数据库 #查看可以闪回到多久前 SQL> select * from v$flashback_database_log; #查看当前的SCN SQL> select current_scn from v$database; CURRENT_SCN ----------- 1462273 SQL> #关闭数据库 $ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Tue

北亚案例:oracle数据库误删除数据的恢复方法

学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些问题时,我开始寻找答案. 今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法.(不考虑全库备份和利用归档日志) 删除表中数据有三种方法: ·delete(删除一条记录) ·drop或truncate删除表格中数据 1.delete误删除的解决方法 原理:利用oracle提供的闪回方法,如果在删除数据后还没做大量的操作(只要保证被删除数据的

Oracle 11g R2 闪回技术

为了使数据库能够从任何逻辑错误中迅速恢复,oracle推出了闪回技术.采用该技术,可以对行级和事物级的数据变化进行恢复,减少了数据恢复的时间,而且操作简单.通过SQL语句就可以实现数据的恢复,大大提高了数据库恢复的效率.闪回技术是数据库恢复技术历史上一次重大的进步,从根本上改变了数据恢复. 闪回技术包括以下各项: 闪回查询:(FLASHBACK QUERY):查询过去某个时间点或某个SCN值时表中的数据信息 闪回版本查询(FLASHBACK Version query):查询过去某个时间段或某个

如何处理Oracle数据库中的坏块问题

本文主要介绍如何去处理在Oracle数据库中出现坏块的问题,对于坏块产生在不同的对象上,处理的方法会有所不同,本文将大致对这些方法做一些介绍.因为数据库运行时间长了,由于硬件设备的老化,出现坏块的几率会越来越大,因此,做为一个DBA,怎么去解决数据库出现的坏块问题就成了一个重要的议题了. 一:什么是数据库的坏块   首先我们来大概看一下数据库块的格式和结构 数据库的数据块有固定的格式和结构,分三层:cache layer,transaction layer,data layer.在我们对数据块进

oracle生产环境 闪回、归档操作参考

闪回与归档的相关测试 参考博客:http://www.cnblogs.com/hellojesson/p/7050097.html 数据库在归档模式下的管理 参考博客:http://www.cnblogs.com/hellojesson/p/7182219.html 场景描述: 本地数据库 当前运行在非归档模式 没有开启闪回功能!!! 我们要做的操作是将:数据库切换在归档模式 ,开启数据库的闪回功能: 并且:自定义闪会恢复区路径以及大小 自定义归档日志存放路径以及大小 确认当前系统环境:  没有

一起ORACLE数据库中数据查询结果不一致问题的排查过程

一.问题描述 在某软件开发项目中,需要在ORACLE数据库中建立十张类型相同的员工信息表tb_employeeinfo0~tb_employeeinfo9,并建立向这十张表中插入数据的存储过程.ORACLE数据库安装在Linux操作系统下. 为了操作上的方便性,开发人员在PL/SQL Developer软件(ORACLE数据库开发软件)上实现了建表和建存储过程的操作.之后,开发人员利用SQL语句在在PL/SQL Developer软件上实现了向某个数据表中插入数据的操作.利用select语句查询

闪回恢复区大小不够。报ORA-19809、ORA-19804

问题: 闪回恢复区大小不够,rman默认备份路径报错.RMAN> backup database; Starting backup at 01-DEC-14using target database control file instead of recovery catalogallocated channel: ORA_DISK_1channel ORA_DISK_1: SID=39 device type=DISKchannel ORA_DISK_1: starting full data