巧用flashback database实现灵活的数据回滚(r5笔记第16天)

之前写了一篇博文分享了使用flashback database的特性来在测试环境中避免重复导入大批量的数据,造成时间和存储空间的浪费。http://blog.itpub.net/23718752/viewspace-1584057/ 今天碰到的这个问题更有针对性和普遍性,在很多时候都需要一套独立的环境来作为客户的培训和演示需要,环境中的数据一旦配置完成,一般是很少需要改动的。如果培训完成后,第二天如果还有培训或者演示,想得到原来的初始化数据就很困难了。 这个时候我们可以尝试使用flashback database来实现。 在之前的例子中分享了根据时间点或者scn可以达到闪回数据库的目的,其实还有一种方式比较普遍通用,就是使用restore point来做闪回数据库的操作。 假设环境初始化完成之后,我们可以直接设置一个restore point,在后期就不用过分关注时间点或者scn来做闪回操作了。 create restore point original_state_BASE guarantee flashback database; 设置了这个restore point之后,我们可以使用下面的脚本来查看设置的这个恢复点。

col NAME for a20
col TIME for a35
set lines 200
col STORAGE_SIZE for a50
SELECT NAME, SCN, TIME, DATABASE_INCARNATION# DI,GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE/1024/1024/1024 
FROM V$RESTORE_POINT
WHERE GUARANTEE_FLASHBACK_DATABASE='YES';
NAME                        SCN TIME                                        DI GUA STORAGE_SIZE/1024/1024/1024
-------------------- ---------- ----------------------------------- ---------- --- ---------------------------
ORIGINAL_STATE_BASE     4465165 17-APR-15 10.48.01.000000000 AM              1 YES                           0
ORIGINAL_STATE          4465180 17-APR-15 10.48.10.000000000 AM              1 YES                   .68359375

设置了之后,如果后面需要闪回恢复就很容易了。 参考脚本如下,可以很快达到预期的目的。

set echo on feed on
set time on timing on
-spoo logs/restore_flashback.log
select name from v$database;
SELECT current_scn FROM v$database;
col NAME for a20
col TIME for a35
set lines 100

SELECT NAME, SCN, TIME, DATABASE_INCARNATION# DI,GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE
FROM V$RESTORE_POINT
WHERE GUARANTEE_FLASHBACK_DATABASE='YES';

shutdown immediate;
startup mount;
flashback database to restore point ORIGINAL_STATE;
alter database open read only;
shutdown immediate;
startup mount;
alter database open resetlogs;
spoo off

当然了这个回退的原理就是flashback database,但是在特定的使用场景中就赋予了更多的实际意义。 在这个基础上如果根据业务需要,每周的某几天需要做这个回退操作,就可以设置为crontab的方式来自动运行,就不用大半夜,大清早再去做这些回退了。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2015-04-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

只读表空间的备份与恢复

--====================== --  只读表空间的备份与恢复 --====================== 一、只读表空间的特性...

882
来自专栏「3306 Pai」社区

赞,Percona一天内放出二个版本

Percona 在10月31日 发布对Percona Server 8.0 RC版本。

992
来自专栏杨建荣的学习笔记

关于Flashback的小测试(r10笔记第15天)

对于Oracle的Flashback来说,在11g里面有了一个很细微的变化,可以说是一个很不错的福利,那就是开启闪回不需要重启数据库至mount状态下,...

3384
来自专栏数据和云

【循序渐进Oracle】Oracle的物理备份(上)

编辑手记:备份重于一切,我们必需知道,系统总是要崩溃的,没有有效的备份只是等哪一天死!今天你备份了吗?我们一起来回顾Oracle的物理备份,本文摘自《循序渐进O...

3448
来自专栏逸鹏说道

SQL Server 数据库清除日志的方法

SQLSERVER的数据库日志占用很大的空间,下面提供三种方法用于清除无用的数据库日志文件 方法一: 1、打开查询分析器,输入命令 BACKUP LOG d...

3795
来自专栏腾讯云数据库团队的专栏

MySQL 语句复制(SBR)的缺陷列举

MySQL ( 这里的 MySQL 是指广义的mysql,包括oracle,mysql,percona,mariadb 等 )的Statement Based ...

5940
来自专栏乐沙弥的世界

Oracle 基于用户管理恢复的处理

Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整。除了使用RMAN工具以及第三方备份与恢复工具之外,基于

542
来自专栏沃趣科技

ASM 翻译系列第十八弹:ASM Internal ASM file number 5

原作者:Bane Radulovic 译者: 魏兴华 审核: 魏兴华 ASM file number 5 本章讲述ASM的5号文件,5号文件是ASM...

3546
来自专栏数据和云

案发现场:被注入的软件及 ORA-600 16703 灾难的恢复

最近帮助一个客户恢复数据库,遇到了如下这个问题。让我们再一次惊醒于数据安全,如果不做好防范,问题总是会来得猝不及防。

2254
来自专栏杨建荣的学习笔记

一个慢查询报警的简单处理 (r8笔记第12天)

今天在做节后的一个基本检查的时候,发现一个不太起眼的报警,报警内容为大体为: MySQL 每秒慢查询次数超过 <1>个on xxxx 查看zabbix的监控数...

3498

扫码关注云+社区

领取腾讯云代金券