更新时间:2022-01-19 11:54:34 来源:极悦 浏览1307次
数据库恢复是一个非常复杂的话题,通过定期练习恢复技术,当真实情况发生时,一切都应该到位。
当实例崩溃或中止(使用关闭中止)时,Oracle 会执行自动恢复。恢复涉及两步过程
前滚步骤- 数据库将当前在线重做日志文件中已提交和未提交的数据应用到当前在线数据文件中
回滚步骤- 数据库使用撤消段中的撤消数据删除上一步中应用的未提交事务
恢复从重做日志中称为线程检查点重做字节地址的点开始。这是崩溃前完成最后一个检查点的时间。您可以通过减少检查点发生的时间来帮助减少恢复发生的时间,从而减少必须恢复的数据量。通过设置参数fast_start_mttr_target(最长为 3600 秒 - 1 小时),您可以指定恢复需要多长时间,注意这只是一个目标,oracle 将尽力满足此目标,降低此阈值也可能会影响服务器的性能。还有另外两个系统参数可用于控制何时发生检查点log_checkpoint_timeout和fast_start_io_target。
设置 MTTR |
更改数据库集 fast_start_mttr_target = 600; 注意:数值以秒为单位 |
显示当前 MTTR | 从 v$instance_recovery 中选择 recovery_estimated_ios、estimated_mttr、target_mttr; |
其他有用的系统参数 | |
LOG_CHECKPOINT_TIMEOUT |
日志缓冲区写入此目标内的磁盘可能会对性能产生很大影响(默认为零,最大值为 3600 秒 - 1 小时) 更改系统集 fast_start_mttr_target=60 范围=两者;(无需重启) |
FAST_START_IO_TARGET | 缓冲区缓存中任何新的或修改的块在写入磁盘之前等待的最大秒数(覆盖 fast_start_mttr_target)。 |
有两种类型的恢复可能的完全恢复和不完全恢复
完成- 意味着没有数据丢失的恢复,重做和归档重做日志中的所有更改都被重新应用。
不完整 -意味着数据丢失,因为您只恢复了部分数据,这可能是由于数据损坏而您只想恢复到某个时间点
如果数据文件中只有几个块损坏,您应该考虑块介质恢复,这可以通过RMAN执行。
我已将恢复技术分解为不同的关键区域
完全恢复
恢复非关键文件(临时表空间、重做日志文件、索引表空间、只读表空间和密码文件)
恢复关键文件(控制文件)
数据库恢复不完整
从用户错误中恢复
闪回数据库
闪回(闪回查询、闪回表查询、闪回版本查询和闪回事务查询)
有一个表可以用来识别需要介质恢复的文件
V$RECOVERY_FILE | 报告丢失或损坏的文件,该表将识别文件和错误。 |
恢复数据库可以通过三种方式RMAN、传统的用户管理恢复(Netbackup、ufsrestore)或企业管理器 (OEM)。
RMAN 完整数据库 |
## 仔细检查备份集是否存在,我们可以恢复 rman> sql "立即关机"; 注意:必须是挂载模式,redo日志会在恢复过程中前滚数据库 |
RMAN 表空间恢复 |
## 仔细检查备份是否存在,我们可以恢复 ## 现在使表空间脱机并恢复文件 ## 恢复整个表空间时需要使表空间脱机 |
RMAN 数据文件恢复 |
## 仔细检查备份是否存在,我们可以恢复 ## 恢复数据文件然后恢复它, ## 只要没有人使用表空间就可以不脱机,dba_data_files (online_status) 指出文件需要恢复 |
用户管理 | 1.以挂载方式打开 2.恢复数据文件(Netbackup或ufsrestore) 3.恢复数据库 sql>recover database; 4.打开数据库 sql>alter database open; |
OEM | 见甲骨文手册 |
以上就是关于“完整的Oracle数据库恢复”的介绍,大家如果想了解更多相关知识,可以关注一下极悦的Oracle数据库教程,里面的课程内容详细,通俗易懂,适合没有基础的小伙伴学习,希望对大家能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习