代码改变世界

表空间基于时间点的恢复

  abce  阅读(317)  评论(0编辑  收藏  举报

表空间基于时间点的恢复

步骤:
1.检测和解决对要恢复的表空间有依赖关系的对象问题
select *
  from sys.ts_pitr_check
 where (ts1_name = 'UERS' and ts2_name != 'USERS')
    or (ts1_name != 'USERS' and ts2_name = 'USERS');
如果有依赖约束,可以考虑disable掉约束;或者同时还原依赖对象所在的表空间

2.检测哪些对象不会被还原
如果有些表,在还原后还需要存在,可以使用数据泵等工具导出,等表空间还原后再导入
select owner, name, tablespace_name
  from ts_pitr_objects_to_be_dropped
 where tablespace_name = 'USERS'
   and creation_time >
       to_date('2015-06-19 15:00:00', 'YYYY-MM-DD HH24:MI:SS');

3.在磁盘上创建一个目录,作为辅助目录
mkdir /tmp/auxx

辅助目录的空间大小要足够大

4.运行recover tablespace until命令
RMAN> connect target /
RMAN> recover tablespace users until time "to_date('2015-06-19 15:00:00', 'YYYY-MM-DD HH24:MI:SS')" auxiliary destination '/tmp/auxx';

5.备份已经还原的表空间,并将表空间置于online状态
RMAN> backup tablespace users;
RMAN> sql 'alter tablespace users online';

基于时间点的恢复在以下场景不可行:
·表空间包含sys用户的数据
·表空间含有undo segments 或者 rollback segments
·已经被删除的表空间
·表含有内嵌表或者含有varray列
·表是外部表
·表含有快照日志

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示