Oracle-介质恢复
介质恢复是基于物理备份恢复数据,它包括块恢复、数据文件恢复、表空间恢复和整个数据库的恢复。
介质恢复的过程
步骤
介质恢复过程包括还原(RESTORE)和恢复(RECOVER)两个步骤
- RESTORE:将某个时间点的数据文件的拷贝再拷贝回去,还原到一个不一致的状态或不是最新的状态,还需要recover操作
- RECOVER:使用日志(归档或是联机在线日志)将不一致的数据库应用到一致性状态
恢复过程分类
数据库的恢复过程又分为完全恢复和不完全恢复。
完全恢复
完全恢复是一种没有数据丢失的恢复方式,它能够恢复到最新联机在线日志中已提交的数据。
不完全恢复
不完全恢复是一种丢失数据的恢复方式,称为基于时间点的恢复。它只能针对整个数据库的恢复。不完全恢复根据备份情况恢复到与指定时间、日志序列号和SCN具有一致性的数据,之后的数据都将丢失。使用RESTLOGS选项打开数据库
场景
- 丢失归档日志,联机日志的情形
- 在某一刻误操作数据,想要找回数据
不完全恢复的选项
不完全恢复方式 | RMAN选项 |
---|---|
恢复到某个时间点 | until time |
恢复到某个日志序列号 | until suquence |
恢复到某个SCN号 | until SCN |
数据库完全恢复
Oracle数据库中有各种各样的块,如空块、表头块、数据块、索引块、数据文件头块、UNDO段块等。如果损坏的是普通表的数据块,那即不会影响启动数据库,也不会影响其他表的正常访问,只是在访问该表的时候会出现问题。如果损坏的是数据文件的块头,那么将导致数据库无法正常启动和停止,进行块恢复不能修复这个问题,只有数据文件的完全恢复才能恢复数据文件块头的损坏或尝试使用BBED修改数据文件块头。
数据文件的完全恢复
命令还原、恢复6号数据文件
rman target /
restore datafile 6;
recover datafile 6;
打开数据库
alter database open;
数据库不完全恢复
基于时间点的不完全恢复
rman target /
run {
shutdown immediate;
startup mount;
SQL "alter session set nls_date_format=''YYYY-MM-DD HH24:MI:SS''";
set until time '2021-08-08 18:24:00';
restore database;
recover database;
alter database open resetlogs;
}
基于SCN的不完全恢复
run {
shutdown immediate;
startup mount;
set until scn 5166390;
restore database;
recover database;
alter database open resetlogs;
}
基于序列号的不完全恢复
run {
shutdown immediate;
startup mount;
set until sequence 10350 thread 1;
restore database;
recover database;
alter database open resetlogs;
}
不包含10350序号的日志中redo数据
分类:
数据库(Oracle)
标签:
rman
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤