百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

如何用flashbakc database恢复整个数据库?

mhr18 2024-10-05 17:52 25 浏览 0 评论

概述

如果说flashback query用来恢复指定时间的记录,flashback table可用来恢复被删除或者指定时间的表,那么

flashback database直接提供一个数据库级别的恢复,可以直接将整个数据库恢复到指定时间,相比于钱两者,粒度更大。

flashback database可以不借助备份的情况下,将数据库向前恢复。oracle为了实现flashback database特性,另外引入一组新日志文件:flashback logs。其实flashback lohs与所有的日志文件功能一样,用来计记录日志的,只不过这个日志保存的信息有些特别,并不是记录你的操作,而是记录操作前要修改的数据,就是数据块的钱影像,这些信息被写入这个专用的存储区,就是flash recovery area,简称FRA。


Oracle11g闪回数据库特点:

1、使用闪回数据库不能解决媒介故障;

2、如果控制文件已被重建,不能使用闪回数据库;

3、不能完成删除表空间的恢复。


配置闪回数据库:

1、配置闪回恢复区;

2、数据库要求运行在归档模式下;

3、需要在Mount状态下使用alter database flashback on启动。

开启flashback database的必备条件:

1.数据库必须处于归档模式

2.数据库必须指定flash recovery area(db_recovery_file_dest指定路径和db_recovery_file_dest_size指定大小)

3.数据库必须启动特性flashback database

4.初始化参数:db_flashback_retention_target 后面的值是时间,单位分钟,默认是1440

5.启用force logging


闪回数据库使用

语法:

FLASHBACK [STANDBY] DATABASE <database>
{TO [SCN | TIMESTAMP] <EXP> | TO BEFORE [SCN | TIMESTAMP] <EXP>}

举例:

使用FLASHBACK DATABASE 闪回数据库到SCN 55444 mount 模式下

SQL>flashback database to scn 55444;

用resetlogs选项打开数据库

SQL>alter database open resetlogs

闪回数据库局限性:

如下情形不能进行闪回数据库操作:

1)控制文件被恢复或重新创建

2)表空间被 drop 掉

3)数据文件被压缩


1.配置 Flash Recovery Area

要想使用 Flashback Database, 必须使用 Flash Recovery Area,因为 FlashbackDatabase Log 只能保存在这里。 要配置的 2 个参数如下,一个是大小,一个是位置。如果数据库是 RAC,flash recovery area 必须位于共享存储中。数据库必须处于 archivelog 模式。

1) 更改闪回区大小:

SQL>ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20GSCOPE=BOTH;

2) 更改闪回区路径:

SQL>ALTER SYSTEM SET DB _RECOVERY_FILE_DEST=' /u01/app/oracle/flashback/orcl/' SCOPE=BOTH;

对于 Flash Recovery Area,Oracle 是这样建议的,flash recovery area 设置的越大,flashback database 的恢复能力就越强,因此建议 flash recovery area 能够放的下所有的数据文件,增量备份,以及所有尚未备份的归档文件,当然还有它自己产生的 flashback logs。

在数据库运行过程中,oracle 自动向该区域写入文件,当剩余空间不足 15%的时候,它就会在 alert 中增加警告,提示你空间不足。但此时不会影响数据库的正常运转,直到所有空间统统被用掉之后,oracle 首先尝试删除寻些过期的文件,冗余文件或备份过的文件,如果这些做完了,还是没有空闲空间的话,数据库就被 hang 住了。


2.启用数据库 Flashback 功能

1). 数据库启动到 mount 状态

SQL> startup mount;

2). 检查 Flashback 功能, 缺省时功能是关闭的。

SQL> select name, current _scn, flashback_on from v$database;
NAME CURRENT_SCN FLASHBACK_ON
-------- ----------- ------------------ 
DBA 945715 NO

3). 启动 Flashback 功能

SQL> alter database flashback on;
数据库已更改。

4). 设置初始化参数:DB_FLASHBACK_RETENTION_TARGET

SQL>alter system set db_flashback_retention_target=1440 scope=both;

ps:该参数用来控制 flashback log 数据保留的时间。

5). 启动数据库

SQL>alter database open;

3.和 Flashback Database 相关的视图

1. V$database

这个视图可以查看是否启用了 Flashback database 功能

SQL> select flashback _on from v$database;

2. V$flashback_database_log

Flashback Database 所能回退到的最早时间,取决与保留的 Flashback Database Log 的多少, 该视图就可以查看许多有用的信息。

Oldest_flashback_scn / Oldest_flashback_time : 这两列用来记录可以恢复到最早的时点

Flashback_size: 记录了当前使用的 Flash Recovery Area 空间的大小

Retention_target: 系统定义的策略

Estimated_flashback_size: 根据策略对需要的空间大小的估计值

SQL> select oldest _flashback_scn os, to_char(oldest_flashback_time,'yy-mm-dd hh2
4:mi:ss') ot, retention_target rt,flashback_size fs, estimated_flashback_size es
 from v$flashback_database_log;

3. V$flashback_database_stat

这个视图用来对 Flashback log 空间情况进行更细粒度的记录和估计。 这个视图以小时为单位记录单位时间内数据库的活动量,Flashback_Data 代表 Flashback log 产生数量,DB_Date 代表数据改变数量,Redo_Date 代表日志数量,通过这 3 个数量可以反映出数的活动特点,更准确的预计 Flash Recovery Area 的空间需求

SQL> alter session set nls _date_format='hh24:mi:ss';
SQL> select *from v$flashback_database_stat;

因为没开闪回,这里也就不做演示了,大家有空可以自己测试下。

后面会分享更多关于devops和DBA方面内容,感兴趣的朋友可以关注下!

相关推荐

甲骨文签署多项大型云协议,其一未来可贡献超300亿美元年收入

IT之家7月1日消息,根据甲骨文Oracle当地时间6月30日向美国证券交易委员会(SEC)递交的FORM8-K文件,该企业在始于2025年6月1日的202...

甲骨文获TEMU巨额合同,后者大部分基础设施将迁移至Oracle云

IT之家6月23日消息,Oracle甲骨文创始人、董事长兼首席技术官LarryEllison(拉里埃里森)在本月早些时候的2025财年第四财季和全财年财报电话会议上表示,Oracle...

Spring Boot 自定义数据源设置,这些坑你踩过吗?

你在使用SpringBoot进行后端开发的过程中,是不是也遇到过这样的问题:项目上线后,数据库连接总是不稳定,偶尔还会出现数据读取缓慢的情况,严重影响了用户体验。经过排查,发现很大一部分原因竟然...

一个开箱即用的代码生成器(一个开箱即用的代码生成器是什么)

今天给大家推荐一个好用的代码生成器,名为renren-generator,该项目附带前端页面,可以很方便的选择我们所需要生成代码的表。首先我们通过git工具克隆下来代码(地址见文末),导入idea。...

低代码建模平台-数据挖掘平台(低代码平台的实现方式)

现在来看一下数据连接。·这里是管理数据连接的空间,点击这里可以新增一个数据连接。·输入连接名称,然后输入url,是通过gdbc的方式去连接的数据库,目前是支持mysql、oracle以及国产数据库达梦...

navicat 17.2.7连接oracle数据库提示加载oracle库失败

系统:macOS15.5navicat版本:navicatpremiumlite17.2.7连接oracle测试报错:加载oracle库失败【解决办法】:放达里面找到程序,显示简介里面勾选“使...

开源“Windows”ReactOS更新:支持全屏应用

IT之家6月17日消息,ReactOS团队昨日(6月16日)在X平台发布系列推文,公布了该系统的最新进展,包括升级Explorer组件,支持全屏应用,从Wine项目引入了...

SSL 推出采用全模拟内置混音技术的模拟调音台Oracle

英国调音台传奇品牌SolidStateLogic宣布推出Oracle——一款采用全模拟内置混音技术的调音台,在紧凑的AWS尺寸机箱内集成了大型调音台的功能。该调音台提供24输入和...

47道网络工程师常见面试题,看看有没有你不会的!

你们好,我的网工朋友。网络工程师面试的时候,都会被问到什么?这个问题其实很泛,一般来说,你肯定要先看明白岗位需求写的是什么。基本上都是围绕公司需要的业务去问的。但不可否认的是,那些最基础的概念,多少也...

汉得信息:发布EBS系统安装启用JWS的高效解决方案

e公司讯,从汉得信息获悉,近日,微软官方宣布InternetExplorer桌面应用程序将于2022年6月15日正式停用。目前大部分客户都是使用IE浏览器打开EBS的Form界面,IE停用后,只能使...

36.9K star ! 推荐一个酷炫低代码开发平台!功能太强!

前言最近在逛github,看看能不能搜罗到一些对自己有帮助的开源软件。不经意间看到一个高star的java开源项目:jeecg-boot。进入在线演示版一看,感叹实在是太牛了!此开源项目不管是给来学习...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

手把手教你在嵌入式设备中使用SQLite3

摘要:数据库是用来存储和管理数据的专用软件,使得管理数据更加安全,方便和高效。数据库对数据的管理的基本单位是表(table),在嵌入式linux中有时候它也需要用到数据库,听起来好难,其实就是几个函数...

JAVA语言基础(java语言基础知识)

一、计算机的基本概念什么是计算机?计算机(Computer)全称:电子计算机,俗称电脑。是一种能够按照程序运行、自动高速处理海量数据的现代化智能电子设备。由硬件和软件组成、没有安装过任何软件的计算机称...

再见 Navicat!一款开源的 Web 数据库管理工具!

大家好,我是Java陈序员。在日常的开发工作中,常常需要与各种数据库打交道。而为了提高工作效率,常常会使用一些可视化工具进行操作数据库。今天,给大家介绍一款开源的数据库管理工具,无需下载安装软件,基...

取消回复欢迎 发表评论: