网站首页 > 技术文章 正文
概述
闪回表是一种能够恢复表或设置表到过去某个特定的时间点而又不需要进行不完全恢复的闪回技术。
使用闪回表时,所有的相关对象都能得到恢复。
Oracle11g flashback table 特性:
1、在线操作;
2、恢复到指定时间点或SCN的任何数据;
3、自动恢复相关属性、如索引、触发器等;
4、满足分布式的一致性;
5、满足数据一致性,所有相关对象将自动一致;
6、闪回表技术是基于回滚数据(undodata)来实现的,因此,要想闪回表到过去的某个时间上,必须确保与回滚表空间有关的参数设置合理。
闪回表语法:
FLASHBACK TABLE [SCHEMA.] <TABLE_NAME> TO {BEFORE DROP [RENAME TO TABLE] | [SCN | TIMESTAMP] expr [RNABLE | DISABLE] TRIGGERS}
实例:
SQL>delete from test where id=7766; SQL>commit; 进行恢复 SQL>alter table test enable row movement; SQL>flashback table test to timestamp to_timestamp('2019-03-1015:33:30','yyyyy-mm-dd hh24:mi:ss')
局限性:
FLASHBACK TABLE 命令作为单独一个事务执行,获取DML锁,统计信息不会闪回;当前索引及依赖对象被维护; 闪回表有如下特性:
1) 不能对系统表做闪回操作;
2) 在执行DDL操作后不能做闪回操作;
3) 闪回操作命令写入alert日志文件;
4) 闪回操作会产生undo 和redo数据;
注意 SYS 用户不支持闪回,Flashback Table 也是使用 UNDO tablespace 的内容来实现对数据的回退。
注意:如果想要对表进行 flashback,必须允许表的 row movement.
Alter table table _name row movement;
要 查 看 某 表 是 否 启 用 row movement , 可 以 到 user _tables 中 查 询 ( 或all_tables,dba_tables),
例如:
SQL> select row _movement from user_tables where table_name='EMP';
要启用或禁止某表 row movement,可以通过下列语句:
--启用
SQL> ALTER TABLE emp ENABLE ROW MOVEMENT;
--禁止
SQL> ALTER TABLE table _name DISABLE ROW MOVEMENT;
实例:
1、基础环境准备
SQL> create table C (id number(2)); SQL> insert into C values(1); SQL> insert into C values(2); SQL> commit; SQL> select * from c; SQL> alter session set nls _date_format="yyyy-mm-dd hh24:mi:ss"; SQL> select sysdate from dual; SQL> select current _scn from v$database;
2、删除数据
SQL> delete from C; SQL> commit; SQL> alter table c enable row movement;
3、恢复数据
SQL> flashback table c to scn 55714263; SQL> select * from C;
总结
Flashback table 命令支持同时操作多个表,表名中间以逗号分隔即可,如果你执行一条flashback table 命令时同时指定了多个表,要记住单个 flashback table 是在同一个事务中,因此这些表的恢复操作要么都成功,要么都失败。
后面会分享更多关于devops和DBA方面内容,感兴趣的朋友可以关注下!!
猜你喜欢
- 2024-10-13 国庆节快乐--一文看懂Oracle数据库跨版本下rman备份恢复过程
- 2024-10-13 史上最全Oracle文件损坏处理办法(附实验步骤)
- 2024-10-13 数据库数据恢复-ORACLE数据库常见故障的数据恢复可能性分析
- 2024-10-13 Oracle数据库不同损坏级别的恢复详情
- 2024-10-13 不懂数据库高可用、备份与恢复,数据库优化?看这本就够了
- 2024-10-13 windows系统回收站和Oracle回收站--致力于恢复不小心删除的对象
- 2024-10-13 Oracle数据误操作全面恢复实战(r11笔记第78天)
- 2024-10-13 TRUNCATE恢复-bbed truncate如何恢复
- 2024-10-13 服务器数据恢复-服务器断电导致Oracle数据库报错的...
- 2024-10-13 一起来学习Oracle的备份恢复基础吧-1
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)