博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
巧用flashback database实现灵活的数据回滚
阅读量:7247 次
发布时间:2019-06-29

本文共 1768 字,大约阅读时间需要 5 分钟。

之前写了一篇博文分享了使用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的方式来自动运行,就不用大半夜,大清早再去做这些回退了。

转载地址:http://cgfbm.baihongyu.com/

你可能感兴趣的文章
开发函数计算的正确姿势 —— 爬虫
查看>>
使用 Gatsby.js 搭建静态博客 3 样式调整
查看>>
阿里云高级技术专家带你全面了解云主机性能评测
查看>>
记一次mysql求和出坑事件
查看>>
passive的作用和原理
查看>>
typecho邮件提醒插件:Comment2Mail
查看>>
Nginx 对访问量的控制
查看>>
vue 动画监听简略分析
查看>>
阿里云专家穆轩的《杭州九年程序员之“修炼”手册》
查看>>
Webpack 4 教程 - 3 . 使用插件
查看>>
程序猿之高效软件windows篇
查看>>
jmxtrans+influxdb+grafana监控zookeeper实战
查看>>
聊聊storm的JoinBolt
查看>>
蚂蚁金服移动端可视化解决方案 F2 3.2 正式发布
查看>>
netty 搭建 ssl websocket 服务器,使用 protobuf 通信
查看>>
Slog25_支配vue框架初阶项目之博客网站-登陆功能
查看>>
CSS3 background-image颜色渐变
查看>>
如何理解JavaScript的this关键字
查看>>
【Java猫说】每日算法:#4-选择排序
查看>>
Redis 持久化(persistence)技术口袋书
查看>>