对于一些误操作或者是坏块,不想恢复整个库或者整个表空间,这些相关的方面能否介绍下?

现在的数据库普遍都比较大,做了备份后恢复的粒度也比较粗,耗时长,有时候仅仅是一些误操作或者是坏块,不想恢复整个库或者整个表空间,这些相关的方面能否介绍下?显示全部

现在的数据库普遍都比较大,做了备份后恢复的粒度也比较粗,耗时长,有时候仅仅是一些误操作或者是坏块,不想恢复整个库或者整个表空间,这些相关的方面能否介绍下?

收起
参与8

查看其它 1 个回答wangql的回答

wangqlwangql系统工程师NULL

这个问题其实和选用的数据库产品有关,大部分都是软件自身实现的,通用的规则少一些,以Oracle举例吧,其他也不太熟:

1. 首先日常的制度上,做好权限管理,这个反而是最重要的。如果权限混乱 谁都可以sys上去,技术再好也没用。

2. 做好日常备份,如果有备份的话,Oracle的坏块实际上可以直接通过块恢复的方式在线把数据块恢复出来。

3. 如果没备份,或者备份没覆盖到,Oracle本身提供了一些手段(dbms_repair包或者10231事件)可以跳过坏块,但相应的可能会损失一点数据,如果可以接受,跳过再补录就行。如果不能接受可能得需要找专业的数据恢复来做。

4. 日常的误操作可以考虑使用闪回技术,Oracle的闪回工具比较多,有下面几个:

  闪回数据库:基于数据块对库做闪回
  flashback drop:基于recycle bin恢复误删除的表
  flashback version query和flashback transaction query: 基于undo技术恢复误操作的数据,记录级别
  flashback table:基于undo技术恢复误操作的表

其他数据库也有类似的技术,但可能不太全,具体根据对应的手册查询一下即可。

IT咨询服务 · 2021-03-25
浏览1310

回答者

wangql
wangql41446
系统工程师NULL
擅长领域: 存储备份软件定义存储

wangql 最近回答过的问题

回答状态

  • 发布时间:2021-03-25
  • 关注会员:3 人
  • 回答浏览:1310
  • X社区推广