网站首页 > 技术文章 正文
Oracle备份和恢复
MTBF:平均故障间隔时间
MTTR:平均恢复时间
备份恢复概述
数据库故障的类型
user process failure 用户自动处理
instance failure smon自动处理
user errors 通过备份恢复解决
media failure 通过备份和日志恢复
备份恢复分类
逻辑备份恢复-面向对象
传统的导入导出:exp/imp
数据泵的导入导出:expdp/impdp
逻辑备份就是热备数据库对象的某一时刻状态,不能运用在media failure上,逻辑备份的恢复就是还原备份,没有recover的概念。
物理备份与恢复-面向media failure
1. 手工备份与恢复(用户管理的备份恢复)通过OS命令,完成备份还原,然后再使用日志进行恢复。
1. 自动备份恢复(rman或者其它备份软件)
物理备份从方式上可以分为一致性备份(冷备)和非一致性备份(热备);
完整的备份策略应以物理备份为主,逻辑备份为辅(备份一些重要的表)。
闪回技术-面向人为的逻辑错误
一种利用UNDO数据或者闪回日志的快速恢复技术。
完全恢复与不完全恢复
media failure后,需要运用日志进行recover。
1. 完全恢复
利用完整备份或者部分备份,将datafile恢复到failure前的最后一次commit,无数据丢失。
不完全恢复
需要运用完整备份和日志将database恢复到过去某个时间点(或SCN),有数据丢失。
非归档模式运行时必须备份:控制文件和整个数据文件,备份前需要关闭数据库(冷备)。
非归档时,在丢失数据文件后只能执行完整的数据库还原,不能进行恢复。
手工备份与恢复
手工备份和恢复命令
备份和还原都使用OS命令
恢复用sqlplus 命令:recover
备份前的检查操作
查询有关视图:v$datafile(控制文件中的信息)\v$datafile_header\v$controlfile\v$logfile\dba_tablespaces\dba_data_files
1. 检查需要备份的数据文件
select name from v$datafile;
select file_id,file_name,tablespace_name from dba_data_files;
1. 检查要备份的控制文件
select name from v$controlfile;
1. 在线redo日志不需要备份
手工一致性备份(热备份)及热备的监控(v$backup)
对只读的表空间不能做热备份,临时表空间不需要备份,非归档模式下不支持手工热备。
1. 备份前进入backup mode
执行begin backup(在数据文件上生成检查点,写入scn,将来恢复的时候以此scn为起点)
SQL>alter database begin backup; //整库备份
SQL>alter database end backup;
SQL>alter tablespace users begin backup;
SQL>alter tablespace users end backup;
备份期间利用v$backup监控
例:
SQL> select file_id,file_name,tablespace_name from dba_data_files;
SQL>alter tablespace test begin backup;
SQL> select FILE#,CHECKPOINT_CHANGE# from v$datafile_header;
SQL> select * from v$backup;
STATUS是ACTIVE,表示可以备份相应的数据文件,并且其中的数据块DBWN仍然可以刷新。
SQL> alter tablespace test end backup;
如果在end backup之前发生数据库abort,那么可以在下次启动到mount时end backup,从而完成实例恢复。
关于split block
一个oracle block一般包含多个os block,当手工热备时,os的cp单位不是oracle block而是os block,而oracle的DBWR又可能不时的从内存中刷新Oracle block(脏块)到磁盘上,因此OS级的拷贝可能造成一种现象:一个Oracle block是由不同版本组成,如未被DBWR刷新的Header block加上另一部分被刷新的foot block,这样cp出来的Oracle block就是split block。
数据库的一致性是不允许oracle block是split的,Oracle采取的办法是:在backup mode后,如果发现首次DBWR要写脏块,则将该块备刷新之前的镜像数据记录到redo buffer,这样虽然cp后的文件里仍然含有split block,而当需要恢复时,日志会前滚该块的前镜像,保证所有的被恢复的oracle block是一个完整的版本,这就是我们常常发现在热备时日志文件会急剧增大的原因。
dbv检查数据文件是否有坏块
在手工备份前,应该检查datafile是否有坏块,备份完成后对备份也做检查
对某个datafile做坏块检查
[oracle@localhost test]$ dbv file=/opt/oracle/app/oradata/test/test01.dbf feedback=50
猜你喜欢
- 2024-10-13 国庆节快乐--一文看懂Oracle数据库跨版本下rman备份恢复过程
- 2024-10-13 史上最全Oracle文件损坏处理办法(附实验步骤)
- 2024-10-13 数据库数据恢复-ORACLE数据库常见故障的数据恢复可能性分析
- 2024-10-13 Oracle数据库不同损坏级别的恢复详情
- 2024-10-13 不懂数据库高可用、备份与恢复,数据库优化?看这本就够了
- 2024-10-13 windows系统回收站和Oracle回收站--致力于恢复不小心删除的对象
- 2024-10-13 Oracle数据误操作全面恢复实战(r11笔记第78天)
- 2024-10-13 TRUNCATE恢复-bbed truncate如何恢复
- 2024-10-13 服务器数据恢复-服务器断电导致Oracle数据库报错的...
- 2024-10-13 服务器断电Oracle数据库修复数据过程
你 发表评论:
欢迎- 最近发表
-
- 前端流行框架Vue3教程:13. 组件传递数据_Props
- 前端必看!10 个 Vue3 救命技巧,解决你 90% 的开发难题?
- JAVA和JavaScript到底是什么关系?是亲戚吗?
- Java和js有什么区别?(java和javascript的区别和联系)
- 东方标准|Web和Java的区别,如何选择这两个专业
- 前端面试题-JS 中如何实现大对象深度对比
- 360前端一面~面试题解析(360前端笔试)
- 加班秃头别慌!1 道 Vue 面试题,快速解锁大厂 offer 通关密码
- 焦虑深夜刷题!5 道高频 React 面试题,吃透 offer 稳了
- 2025Web前端面试题大全(整理版)面试题附答案详解,最全面详细
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)