前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >巧用flashback database实现灵活的数据回滚(r5笔记第16天)

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

作者头像
jeanron100
发布2018-03-15 17:26:57
7630
发布2018-03-15 17:26:57
举报
文章被收录于专栏:杨建荣的学习笔记

之前写了一篇博文分享了使用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之后,我们可以使用下面的脚本来查看设置的这个恢复点。

代码语言:javascript
复制

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

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

代码语言:javascript
复制
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的方式来自动运行,就不用大半夜,大清早再去做这些回退了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档