0

0

Oracle DB闪回(Flashback database)开启笔记

php中文网

php中文网

发布时间:2016-06-07 16:44:29

|

1204人浏览过

|

来源于php中文网

原创

为测试部门搭建一台Oracle DB,需满足可以经常将整个数据库回退到某时间点的需求。比较简单的方法是使用Oracle的闪回特性之一闪

为测试部门搭建一台oracle db,需满足可以经常将整个数据库回退到某时间点的需求。比较简单的方法是使用oracle的闪回特性之一"闪回数据库"。

预备知识:闪回数据库需要使用两种日志:闪回日志和重做日志。重做日志的概念不需多谈,,所谓的闪回日志的记录正好与重做日志的记录相反。可以简单的这样认为:比如重做日志记录了一条insert命令,那么闪回日志就记录这条记录相关的delete命令,当然实际上这是非常复杂的过程。

这里并不会介绍“闪回数据库”的原理,因为已经有太多的资料来阐明它,也不会介绍“闪回数据库”的操作方法,因为它非常简单(在进入mount状态后执行"flashback database to scn …"或"flashback database to timestamp …")。

1. 开启db闪回之前需确保启用了归档模式

 

SQL> archive log list

Database log mode              Archive Mode

Automatic archival            Enabled

……

 

2. 查看闪回日志是否已启用

 

SQL> select LOG_MODE,FLASHBACK_ON from v$database;

 

LOG_MODE  FLASHBACK_ON

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

ARCHIVELOG NO

 

3. 启用闪回日志,即闪回数据库功能

 

SQL> alter database flashback on;

alter database flashback on

*

ERROR at line 1:

ORA-38706: Cannot turn on FLASHBACK DATABASE logging.

ORA-38709: Recovery Area is not enabled.

 

报错,无法开启闪回功能。到这里本文的主角--"oerr"命令君隆重登场。

4. 根据上文中提示的错误号使用oerr命令排错

 

$ oerr ORA 38709

38709, 00000, "Recovery Area is not enabled."

// *Cause:  An ALTER DATABASE FLASHBACK ON command failed because the

//          Recovery Area was not enabled.

// *Action: Set DB_RECOVERY_FILE_DEST to a location and retry.

 

5.  从上述的提示中找到错误原因:DB_RECOVERY_FILE_DEST 没有预设

 

SQL> show parameter DB_RECOVERY_FILE_DEST

 

NAME                                TYPE        VALUE

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

db_recovery_file_dest                string

db_recovery_file_dest_size          big integer 0

 

6.  设置DB_RECOVERY_FILE_DEST

 

SQL> alter system set db_recovery_file_dest='/opt/oracle/fast_recovery_area';

alter system set db_recovery_file_dest='/opt/oracle/fast_recovery_area'

*

ERROR at line 1:

ORA-02097: parameter cannot be modified because specified value is invalid

ORA-19802: cannot use DB_RECOVERY_FILE_DEST without DB_RECOVERY_FILE_DEST_SIZE

 

7. 使用oerr命令排错

 

$ oerr ORA 19802

19802, 00000, "cannot use DB_RECOVERY_FILE_DEST without DB_RECOVERY_FILE_DEST_SIZE"

// *Cause: There are two possible cause for this error:

//        1) The DB_RECOVERY_FILE_DEST parameter was in use when no

//            DB_RECOVERY_FILE_DEST_SIZE parameter was encountered while

//            fetching initialization parameter.

图可丽批量抠图
图可丽批量抠图

用AI技术提高数据生产力,让美好事物更容易被发现

下载

//        2) An attempt was made to set DB_RECOVERY_FILE_DEST with the

//            ALTER SYSTEM command when no DB_RECOVERY_FILE_DEST_SIZE

//            was in use.

// *Action: Correct the dependency parameter definitions and retry the command.

 

8. 从上述错误原因与解决方案提示中得知需要先设置DB_RECOVERY_FILE_DEST_SIZE

 

SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G scope=both;

System altered.

 

 

SQL> show parameter db_recovery

 

NAME                                TYPE        VALUE

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

db_recovery_file_dest                string

db_recovery_file_dest_size          big integer 20G

 

9. 设置DB_RECOVERY_FILE_DEST

 

SQL> alter system set db_recovery_file_dest='/opt/oracle/fast_recovery_area' scope=both;

 

System altered.

 

10. 启用闪回日志,即闪回数据库功能

 

SQL> alter database flashback on;

Database altered.

 

此时可以在'db_recovery_file_dest'设定的目录中看到扩展名为.flb的文件,它们就是闪回日志。

 

$ ls

o1_mf_98mpkdl6_.flb  o1_mf_98okkcs9_.flb

 

11. 闪存日志的保存期限由参数db_flashback_ retention_target控制(单位为分钟),凡是超出保存期限的闪回日志将会在快速恢复区空间吃紧时被自动删除。

 

SQL> show parameter db_flashback_retention_target

 

NAME                                TYPE        VALUE

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

db_flashback_retention_target        integer    10080

 

 

Oracle 11g Flashback Data Archive(闪回数据归档)

 

Oracle Flashback闪回机制

 

Oracle Flashback database

 

Flashback table快速恢复误删除的数据

 

Oracle 备份恢复:Flashback闪回

 

本文永久更新链接地址:

 

linux

相关专题

更多
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

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3万人学习

Java 教程
Java 教程

共578课时 | 36.9万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

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

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