最近更新时间:2018/12/18


适用场景

数据库升级、快速构建测试环境、DG中重建主库

前置条件

1. ARCHIVELOG 模式

数据库为 mount 状态下开启,最好指定archive log 保存路径。

alter system set log_archive_dest_1='location=/u01/arch';

ALTER DATABASE ARCHIVELOG;

SQL> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /u01/arch

Oldest online log sequence     0

Next log sequence to archive   0

Current log sequence           54

2. 使用时Database要为mount状态,Control File为当前在用的,不是通过备份恢复或者其他方式创建的,因为通过备份恢复或其他方式创建的控制文件不含 flashback log相关信息;

3. 所有在线表空间不存在禁用flashback的情况(ALTER TABLESPACE ... FLASHBACK OFF)

Flashback Database 需要用到 Flashback logs;

参数说明

1. 设置 Fast Recovery Area,FRA为ORACLE提供集中管理备份恢复文件路径

1.1 DB_RECOVERY_FILE_DEST 设置默认FRA路径

1.2 DB_RECOVERY_FILE_DEST_SIZE 设置配额(BYTES)

2. DB_FLASHBACK_RETENTION_TARGET 设置保留策略,只是期望值,具体与闪回区保留数据有关

3. 通过Flashback闪回数据库后,使用 ALTER DATABASE OPEN RESETLOGS 打开数据库

参考:

http://docs.oracle.com/cd/E11882_01/backup.112/e10642/flashdb.htm#BRADV71000

https://docs.oracle.com/cd/B19306_01/backup.102/b14192/rpfbdb003.htm

alter system set db_recovery_file_dest='/u02/fast_recovery_area' scope=both;

alter system set db_recovery_file_dest_size=4G scope=both;

SQL> show parameter db_recovery

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      /u01/fast_recovery_area

db_recovery_file_dest_size           big integer 500M

开启方式

STARTUP MOUNT;

ALTER DATABASE FLASHBACK ON;

SQL> select FLASHBACK_ON from v$database;

FLASHBACK_ON

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

YES

闪回数据库测试

SQL> select * from dg_test;

…. 省略….

26 rows selected.

SQL> select current_scn from v$database;

CURRENT_SCN

-----------
     3655665

SQL> truncate table dg_test;

Table truncated.

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> quit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

[oracle@db1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Dec 19 18:17:47 2018

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup mount;

ORACLE instance started.

Total System Global Area 2471931904 bytes

Fixed Size                  2255752 bytes

Variable Size             603980920 bytes

Database Buffers         1845493760 bytes

Redo Buffers               20201472 bytes

Database mounted.

SQL> flashback database to scn 3655665;

Flashback complete.

SQL> alter database open read only;

Database altered.

SQL> select count(1) from dg_test;

COUNT(1)

----------
         26

确认数据为我们需要的,则以 resetlogs 方式打开数据库

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

SQL> alter database open resetlogs;

Database altered.

此处测试环境为 DataGuard ,主库做了 resetlogs 后,产生了新的 redo日志分支,备库同样需要flashback to scn 3655665,否则备库应用日志已超过主库日志时间,没法继续同步。

会提示以下日志:

Completed: alter database recover managed standby database using current logfile disconnect from session

Recovery Slave PR00 previously exited with exception 19909

Wed Dec 19 18:28:07 2018

MRP0: Background Media Recovery process shutdown (orcl)

解决办法: 备库闪回到主库 resetlogs 时间之前

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount;

SQL> flashback database to scn 3655665;

Flashback complete.

SQL> select open_mode from v$database;

OPEN_MODE

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

MOUNTED

SQL> alter database open;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE

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

READ ONLY

SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

SQL> select open_mode from v$database;

OPEN_MODE

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

READ ONLY WITH APPLY

https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:9525013800346105272

常用查询

闪回区空间使用情况

select * from v$flash_recovery_area_usage;

最大闪回时长查询

SELECT OLDEST_FLASHBACK_SCN, OLDEST_FLASHBACK_TIME FROM V$FLASHBACK_DATABASE_LOG;

问题

FRA空间不足

Completed: alter database open

Wed Dec 19 17:21:09 2018

Errors in file /u01/app/diag/rdbms/db2/orcl/trace/orcl_m000_6773.trc:

ORA-19815: WARNING: db_recovery_file_dest_size of 524288000 bytes is 100.00% used, and has 0 remaining bytes available.

************************************************************************

You have following choices to free up space from recovery area:

1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
    then consider changing RMAN ARCHIVELOG DELETION POLICY.

2. Back up files to tertiary device such as tape using RMAN
    BACKUP RECOVERY AREA command.

3. Add disk space and increase db_recovery_file_dest_size parameter to
    reflect the new space.

4. Delete unnecessary files using RMAN DELETE command. If an operating
    system command was used to delete files, then use RMAN CROSSCHECK and
    DELETE EXPIRED commands.

************************************************************************

解决: 增加空间

SQL>  ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 4G scope=both;

FRA空间不足只是影响数据库能闪回的时间点,不会影响数据库正常使用。

数据库Flashback学习的更多相关文章

  1. NoSQL 数据库产品学习总结(一)

    NoSQL 数据库产品学习总结(一) 本篇文章共分为四个章节,会陆续整理下 Memcached.Redis.tair.mongodb.hbase.SequoiaDB. Cassandra的相关知识. ...

  2. JDBC操作数据库的学习(2)

    在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...

  3. mySQl数据库的学习笔记

    mySQl数据库的学习笔记... ------------------ Dos命令--先在记事本中写.然后再粘贴到Dos中去 -------------------------------- mySQ ...

  4. Mysql数据库基础学习笔记

    Mysql数据库基础学习笔记 1.mysql查看当前登录的账户名以及数据库 一.单表查询 1.创建数据库yuzly,创建表fruits 创建表 ) ) ,) NOT NULL,PRIMARY KEY( ...

  5. TimesTen 应用层数据库缓存学习:4. 仅仅读缓存

    在运行本文样例前.首先先运行TimesTen 应用层数据库缓存学习:2. 环境准备中的操作. Read-only Cache Group的概念 仅仅读缓存组例如以下图: 仅仅读缓存组(Read-Onl ...

  6. 数据库MySQL学习笔记高级篇

    数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...

  7. Mysql数据库语言学习的路线

    对于我们数据库的学习,不管是测试人员还是开发人员以及我们的DBA来说重点都是SQL:但是我们的SQL可以分多少类型,学习重点又是在哪里呢,本文仅仅针对测试人员来展开说明: SQL:structure ...

  8. oracle数据库flashback系列--闪回数据库在dataguard中的使用

    很多人在学习flashback database这个oracle技术的时候,都会有一个疑问,就是如果我只有一个数据库作为生产库的话,是否有这样的业务需求导致我们要把数据库闪回到以前的时间点?以及这样做 ...

  9. Oracle 数据库 基础学习 (一) SQL基本知识

    Oracle 从零开始,不知所措.要掌握一种技能,最好的方式是先学会怎么使用它,然后再深入学习,先有样子,再有技术.   一,什么是数据库? 为什么需要数据库? 数据库实质上是一个信息的列表,或者是一 ...

随机推荐

  1. DISM

    C:\WINDOWS\system32>DISM /Online /Cleanup-image /RestoreHealth 部署映像服务和管理工具版本: 10.0.16193.1001 映像版 ...

  2. ing在写作中到底怎么用

    改关静留的作业中我还得改英文摘要.于是有个地方用了ing.顺便查了一下. http://www.yygrammar.com/Article/201408/3677.html -ing分词用作状语时有九 ...

  3. HDU 1338 Game Prediction【贪心】

    解题思路: 给出 n  m 牌的号码是从1到n*m 你手里的牌的号码是1到n*m之间的任意n个数,每张牌都只有一张,问你至少赢多少次 可以转化为你最多输max次,那么至少赢n-max次 而最多输max ...

  4. iOS系统的特点-iOS为什么运行更流畅

    1.进程管理机制-不允许后台进程: 2.用户事件响应优先级: 3.GPU加速: 4.系统内存管理机制: 5.运行机制-机器码直接运行-非虚拟机.

  5. vue项目,封装api并使用

    封装api index.js let uploadBase = '' if(process.env.NODE_ENV === 'production'){ uploadBase = 'https:// ...

  6. 关于CAS操作

    在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能问题. (2 ...

  7. NOIp2018模拟赛四十四

    加量不加价?! 昨晚看时间变成了3.5h以为终于变成了正常难度,结果还是国家集训队作业... A题看起来很神仙,B题看上去很神仙,C题一看就知道很神仙: 结果发现B是假题,放榜后发现A也是假题,C是Y ...

  8. fwupdate-efi 与 grub2-common 冲突

    在CentOS-7Minimal系统中使用命令如下命令yum groupinstall -y "GNOME Desktop"安装 图形界面时提示:fwupdate-efi 与 gr ...

  9. mycat详细

    MyCAT的优势基于阿里开源的Cobar产品而研发,Cobar的稳定性.可靠性.优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远.业界优 ...

  10. 洛谷 P1403 [AHOI2005]约数研究

    怎么会有这么水的省选题 一定是个签到题. 好歹它也是个省选题,独立做出要纪念一下 很容易发现在1~n中,i的因子数是n / i 那就枚举每一个i然后加起来就OK了 #include<cstdio ...