CUUG笔记--oracle备份和恢复
本次网络演示案例:
1、表空间备份方式备份数据库
2、普通数据文件损坏完全恢复方式原理剖析
完全恢复:不丢数据
完全恢复方式之一:数据库在mount状态下恢复
搭建测试环境
1.建立表,切换日志,至少每个日志组切换一次
SQL> select count(*) from test;
COUNT(*)
----------
48
2.再次插入数据,但是不提交
3.主机断电导致数据崩溃,导致了数据文件损坏
shutdown abort
二、恢复数据库
1.主机加电,数据文件损害
2.从最近的备份恢复相关数据文件到目的路径
3.尝试打开数据库
alter database open;
为什么该文件需要介质恢复?ORACLE根据控制记录了每个数据库文件该有检查点SCN号和数据文件头的检查点文件头进行比较
v$datafile v$datafile_header
在启动时候可以根据不同SCN确定需要那个归档文件,v$archived_LOG;中的ScN范围( first next)
通过观察alert日志文件,我们发现oracle在recover的时候是使用archivelog+online redo的机制来recover的
当recover介质恢复完成,可以再次检查控制文件和数据文件头的SCN进行检查是否一致
5.尝试打开数据并尝试验证数据
总结《在mount状态适合所有的数据文件恢复
完全恢复方式二。数据库在open状态恢复
另外一种恢复方式,
1.为了尽快打开数据库和可靠行、可以把损坏的数据文件首先offline
alter database datafile 888 offline
2.然后在转储备份
3.然后直接recover tablespace 选择auto方式
4.然后把user表空间online;
5,验证数据是否正确
总结:该恢复方式合适于普通的数据文件损坏,不合适system undo sysaux等TS;优点:可以提高数据库的可靠性,
=========================================================================================================
恢复控制文件丢失的时候需要利用recover using backup controlfile
auto
然后oracle无法识别当前最新的日志组系列号,需要重建控制文件
alter database backup controlfile to trace
注意选择noretlogs的选型,要不就不能完全恢复了
重建结束后查看v$log,查看当前日志组
总结:关键是重建控制文件,重新获得准确当前的日志组
==========================================
完全恢复方式之4
未备份的数据文件丢失
这种方式这种恢复方式只适合于自从新建的数据文件开始,所有的归档日志和redolog都必须存在,还没有备份的
alter database create datafile
recover database
============================================================================================================
不完全恢复
基于时间点的不完全恢复
适合于某张关键的表被删除,需要恢复回来
1.环境准备
1.
SQL> create table test1 as select * FROM EMP;
表已创建。
会话已更改。
SQL> select sysdate from dual;
SYSDATE
-------------------
2013-12-28 21:57:15
2.DROP TABLE TEST1 PURGE
3.关闭数据库
4.从最近的备份的转储所有的数据文件
RMAN> startup mount;
Oracle 实例已启动
数据库已装载
系统全局区域总计 1071333376 字节
Fixed Size 1375792 字节
Variable Size 729809360 字节
Database Buffers 335544320 字节
Redo Buffers 4603904 字节
RMAN>restore database
5.对数据库做基于时间的恢复
recover database until time to_date('2013-12-28 21:57:01','yyyy-mm-dd:hh24:mi:ss');
6.验证数据
==========================================
基于cancel的恢复方式
适合与recovery过程中需要的归档或者online redolog损坏,oracle recovery恢复到不能恢复为止
经常能够发生在断电,导致正在使用的在线日志文件损坏
1、环境准备
1.在某张表插入数据,提交,同时切换日志,归档
2.再次插入数据,提交,归档
3.最后记录表行数为153行,同时弄清楚最后的insert操作记录到那个当前序号日志组
2.主机断电,导致当前的redo损坏
3.尝试打开数据库
数据库装载完毕。
ORA-00313: 无法打开日志组 1 (用于线程 1) 的成员
ORA-00312: 联机日志 1 线程 1: 'C:\APP\YANWEI\ORADATA\ORCL\REDO01.LOG'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
oracle需要实例恢复,需要的日志文件损坏,无法进行
4.尝试做不完全恢复
'C:\APP\YANWEI\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_12_28\O1_MF_1_7_%U_.ARC'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00308: cannot open archived log
'C:\APP\YANWEI\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_12_28\O1_MF_1_7_%U_.ARC'
ORA-27041: unable to open file
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-10879: error signaled in parallel recovery slave
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'C:\APP\YANWEI\ORADATA\ORCL\SYSTEM01.DBF'
最后的提示表明。当前的数据文件无法同步。
5.尝试打开数据库
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: 文件 1 需要更多的恢复来保持一致性
ORA-01110: 数据文件 1: 'C:\APP\YANWEI\ORADATA\ORCL\SYSTEM01.DBF'
SQL>
还是提示要进一步恢复
6.从最近转储所有的数据文件
6.1 shutdown abort
6.2 startup mount
6.3 restose database
7.对数据库进行cancel的不完全恢复
这时候没有提示某个文件需要进一步恢复
8、alter database open resetlogs;
9、检查数据的完整性
最后的一次redo上的事物记录丢失了
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/500314/viewspace-1065329/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/500314/viewspace-1065329/
CUUG笔记--oracle备份和恢复相关推荐
- commvault oracle备份,CommVault for Oracle备份和恢复.pdf
4 .2 ORACLE 备份和恢复 4.2.1 ORACLE 备份 1) 选择配置好的子客户端,开始备份 2) 选择立即运行或者计划运行; 3) 查看备份的运行状态; 必要时,点击查看RMAN 日志 ...
- Oracle数据库教程(Oracle备份、恢复、升级、迁移)视频教程
Oracle数据库教程(Oracle备份.恢复.升级.迁移)视频教程 风哥Oracle备份恢复与迁移升级专题包括:Oracle备份恢复基础.用户模式的备份恢复.RMAN备份恢复.Flashback闪回 ...
- NBU对Oracle备份及恢复手册
NBU对Oracle备份及恢复手册 本文档基于Redhat6.4操作系统,Oracle 10.2,NBU7.5版本,详细记录了笔者试验的全过程 详细解读 和小伙伴们一起来吐槽
- Oracle 备份、恢复表空间数据步骤
Oracle 备份.恢复表空间数据步骤 在前边的博客里,使用逻辑备份 exp/imp 做过全库备份.单表或者多表数据备份.本文总结了怎样使用 exp/imp 进行表空间备份,本文操作步骤适用于 Ora ...
- Oracle 备份 与 恢复 概述
玩Oracle也有2年的时间了, 零零散散的也整理一些资料. 东西一多了,就理不清楚. 所以结合张晓明的<大话Oracle RAC>的一些内容,和自己整理的一些笔记,对Oracle 的备份 ...
- nbu备份本机oracle,使用NetBackup进行oracle备份和恢复
一.环境介绍: 这个实验都是在vmware workstation里完成的.由于NetBackup7只能装在64位的系统上,所以这里采用了64位的rhel5.5系统,以及oracle 10gr2 fo ...
- 使用NetBackup进行oracle备份和恢复
一.环境介绍: 这个实验都是在vmware workstation里完成的.由于NetBackup7只能装在64位的系统上,所以这里采用了64位的rhel5.5系统,以及oracle 10gr2 fo ...
- oracle备份及恢复
一.导出数据库 exp 用户名/密码@ORCL file=D:\data.dmp owner=用户名 plsql的使用:1.登录你要导出的数据库:2.工具→导出表: 二.导入数据库: 1.创建表空间: ...
- 开源备份软件 oracle,oracle备份和恢复
最好把所有表删掉重新导入,表字段改变不会还原出来 ,只会还原数据 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/man ...
最新文章
- 知乎网解决HTML5 Placeholder的方案
- 域的非验证方式还原与验证方式还原的区别
- AngularJs+bootstrap搭载前台框架——准备工作
- 手游传奇架设教程_问道手游如何多开?
- 连载:阿里巴巴大数据实践—实时技术
- leetcode116. 填充每个节点的下一个右侧节点指针
- 初中学历在辽宁学计算机,在辽宁省实验中学学习是怎样一番体验?
- 为什么 Python 不用设计模式?
- 更改 Office 解决方案的安装路径
- python soup提取叶子标签_使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解(新手必学)...
- 分享两种证件照换背景方法,轻松把照片底色变白
- html展开图片,Html 显示图片的三种方式
- php设计模式 参考地址
- 限流是解决高并发大流量的一种方案,至少是可以保证应用的可用性
- Unreal Engine C++ 入门01
- 006输出9行内容,第1行输出1,第2行输出12,第3行输出123,以此类推,第9行输出123456789。
- 机器学习——概率图模型
- ESD静电二极管选型需要关注的要点在哪里?
- 比亚迪太牛了,下午一点投简历,一点十五打电话来面试,简单聊聊就说面试通过,准备谈薪,干脆得吓人!...
- gcms基峰有什么用_请收下!来自前辈的“气质联用”经验分享