Oracle表和表数据恢复
Oracle数据库表及表数据的恢复
1. 表恢复
对误删的表,只要没有使用 purge 永久删除选项,那么基本上是能从 flashback table 区恢复回来的。
数据表和其中的数据都是可以恢复回来的,记得 flashback table 是从 Oralce 10g 提供的,一般步骤有:
a.从 flashback table 里查询被删除的数据表
select * from recyclebin order by droptime desc
b.执行表的恢复
flashback table '需要恢复的表名' to before drop
2. 表数据恢复
对误删的表记录,只要没有 truncate 语句,就可以根据事务的提交时间进行选择恢复。
这功能也是 oracle 10g 以上提供的,一般步骤有:
a. 先从 flashback_transaction_query 视图里查询,视图提供了供查询用的表名称、事务提交时间、undo_sql等字段。
select * from flashback_transaction_query where table_name='需要恢复数据的表名(大写)';
b.查询删除的时间点
select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') time,to_char(dbms_flashback.get_system_change_number) scnfrom dual;
或者你知道大概记得删除点,你也可以这样试试查询,找出删除前的时间点
select * from '需要恢复数据的表名' as of timestamp to_timestamp('时间点', 'yyyy-mm-dd hh24:mi:ss');
c.进行数据恢复
通过第二步找到数据丢失的时间点,恢复极为简单,语句为
flashback table '需要恢复数据的表名' to timestamp to_timestamp('数据丢失的前一时间点','yyyy-mm-dd hh24:mi:ss');
注意:在执行上述操作的时候,需要允许 oracle 修改分配给行的 rowid,这时候 oracle 需要给恢复的数据分配新的物理地址。
alter table table_name enable row movement;
其实找到数据丢失前的时间点后,恢复数据也可以将需要恢复的数据直接插入到目标表中
insert into '数据丢失的表' select * from t of timestamp to_timestamp('时间点', 'yyyy-mm-dd hh24:mi:ss') where .......;
转载于:https://www.cnblogs.com/henuyuxiang/p/6222967.html
Oracle表和表数据恢复相关推荐
- Oracle drop删表后的数据恢复
!!!芭比Q了啊!! 近期做了一次系统迁移,将测试环境的系统由Windows迁移到Centos上面,先迁应用再迁前端(前后端分离的),安装各种应用巴拉巴拉,最后到迁移数据库了,系统用的是Oracle数 ...
- [Oracle]理解undo表空间
[Oracle]理解undo表空间 一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中, ...
- ORACLE 数据、表误删恢复(转)
今天主要以oracle数据库为例,介绍关于表中数据删除的解决办法.(不考虑全库备份和利用归档日志) 删除表中数据有三种方法: ·delete(删除一条记录) ·drop或truncate删除表格中数据 ...
- 【Oracle数据库丢失表排查思路】
Oracle数据库丢失表排查思路 说明:由于系统采用ID取模分表法进行Oracle数据存储,某日发现Oracle数据库中缺少对应的几张业务数据表,遂进行相关问题查询,简单记录一下排查思路: 由于我们代 ...
- Oracle数据库恢复表和表数据
Oracle 表和表数据恢复 1. 表恢复 对误删的表,只要没有使用 purge 永久删除选项,那么基本上是能从 flashback table 区恢复回来的. 数据表和其中的数据都是可以恢复回来的, ...
- oracle 闪回表定义,oracle闪回表详解
--- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间 ...
- oracle sqlplus 创建表,如何使用SQL语言在SQL*Plus中创建表
在Oracle中,通常通过两种方法来创建,一种方法是使用OEM图形化管理工具来创建,另一种方法是在SQL*Plus中执行SQL语句来实现. 这里主要说用SQL语句创建. 使用SQL*Plus语句创建表 ...
- oracle主从关系表查询,Oracle 主从表联合查询解决方法
Oracle 主从表联合查询 表A id type name 1 E AA 2 F 表B id Aid name 1 2 BB 2 2 ...
- 关于Oracle.ManagedDataAccess数据库表加字段后,必须重启的问题
关于Oracle.ManagedDataAccess数据库表加字段后,必须重启的问题,解决方法如下: 在数据库连接字串中,增加一个参数:Metadata Pooling=false 如"Da ...
最新文章
- 学生的新增mySQL文档_MySQL增删改查
- 第十二周项目一-实现复数类中的运算符重载(2)
- DESTOON 404
- 在ASP.Net2.0中使用UrlRewritingNet实现链接重写(转)
- 计算机第二阶段在线作业冯,中国石油大学(北京)《计算机应用基础》第一次在线作业 2...
- Linux下shellcode的编写
- flash java 通信,Flash到JavaScript的通信实例
- transform.SimilarityTransform()==>图像的相似变换=等距变换(平移+旋转变换)+均匀尺度缩放
- VS 错误: 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService...
- vscode 推荐premiter_vscode 有哪些让人眼前一亮的插件?
- mariadb安装_MariaDB CentOS 安装的时候如何确定 Repo 地址
- Android下异步扫描视频文件缩略图
- Go基础编程:工作区
- 使用npm和命令行强制删除文件
- 用计算机制作课程表,怎么用word做表格-Word制作课程表的方法,学习必备表格,简单易学...
- 求两个数最大公因数的c语言程序
- 如何使用K8S实现自动化部署
- Win10小娜搜索空白什么都不显示怎么办,开始菜单,搜索空白
- Install Ubuntu18.04.1 and Win7 on A53S
- 使用流报错:stream has already been operated upon or closed
热门文章
- Centos7之Gcc安装
- SpringMVC解决前台传入的数组或集合类型数据
- bzoj 3218: a + b Problem
- Android——用Activity和Service实现简单的音乐播放器
- 从软件工程看,语言只是工具
- SharePoint Server 2007 trial --- 年末大餐细细品尝 (第七口)
- 《数据管理能力成熟度模型》标准宣贯会在上海召开
- flexbox 伸缩布局
- ipcs, ipcrm
- There was a problem importing one of the Python modules required to run yum