Oracle根据快照恢复单条数据

文章访问量:

临时工必备技能+1

我觉得大伙不管是不是运维,只要是要和除了“增删查改”里的“查”以外的SQL语句打交道的,甚至包括select rowid这种,都需要了解如何利用快照恢复数据。

首先是看有没有快照,通过百度,可以得知该语句能查询快照间隔:

SQL
 select * from dba_hist_wr_control; 

每个oracle数据库都有这个视图,基本上不存在查不到的情况。时间的格式为天,然后是时分秒毫秒,也很容易看懂。比如图中就是1小时存一次快照,保存时间是8天。

查询被你误删,误修改的那条数据,则可以通过select

SQL
SELECT * FROM  table_name AS OF TIMESTAMP TO_TIMESTAMP('2025-06-08 00:00:00','yyyy-MM-dd hh24:mi:ss')

为啥标题我说是单条数据,是因为如果你只需要找某几条记录,直接用这个select语句,再带上个where语句就能去批准复制、删除、粘贴了。用法也很简单,把从AS开始到时间戳结束的语句都当作别名,在后面带上where语句即可

SQL
SELECT * FROM  table_name 
AS OF TIMESTAMP TO_TIMESTAMP('2025-06-08 00:00:00','yyyy-MM-dd hh24:mi:ss')
WHERE 1=1

当然你也可以去搭配insert使用,看自己需求使用吧。

Subscribe
提醒
0 评论
Inline Feedbacks
View all comments
0
在此留下你的评论x