手工备份恢复oracle数据库
手工备份恢复oracle数据库:
虽然已经有了rman工具
但是手工恢复oracle能够让你对oracle数据库有更加深入的了解
数据库一致性开机条件:
数据文件 scn,控制文件 scn,redo scn一致
控制文件记录:
数据文件应该到达的scn
当前redo
数据的物理结构信息
归档信息
前提条件:
归档日志开启
数据文件有备份
控制文件有备份
备份数据:
数据文件备份:
数据文件进入备份模式:
select 'alter tablespace '|| tablespace_name||' begin backup;' from dba_tablespaces where tablespace_name not like '%TEMP%';

确认进入备份状态:

再操作系统执行物理拷贝命令:
cp *.dbf /home/oracle/sg_backup_dbf/
拷贝完成,退出备份模式:

数据文件备份完成!!!
备份完成切换几次归档(多切换几次)
alter system switch logfile;
控制文件备份:
备份成二进制的形式:
SQL>alter database backup controlfile to '/home/oracle/backup_ctl/PROD4_CTL_20170703';
备份成逻辑文件:
SQL> alter database backup controlfile to trace as '/home/oracle/backup_ctl/prod4.ctl';
一、表空间数据文件删除恢复:
重启数据报错:

根据提示查看数据文件已经不存在(被删除)
通过拷贝先前备份数据文件进行恢复:
cp /home/oracle/sg_backup_dbf/* .
查看scn号:(不一致状态)

通过执行recover database进行数据恢复()

启动数据库:
SQL> alter database open;
#恢复完成!
二、控制文件被删除:
重启数据库:

通过老版本数据文件恢复:
cp /home/oracle/backup_ctl/PROD4_CTL_20170703 ./control01.ctl
cp /home/oracle/backup_ctl/PROD4_CTL_20170703 ./control02.ctl
再次重启:

执行恢复:
SQL> recover database using backup controlfile until cancel;
#auto 模式
报错:
(旧的控制文件并不知道redo的情况)

再次执行恢复:
SQL> recover database using backup controlfile until cancel;
#Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
#/u01/app/oracle/oradata/PROD4/PROD4/redo01.log #使用指定的redo文件恢复(手动输入这行)
开机:
SQL> altr database open resetlogs;
恢复完成!
控制文件损坏进行恢复后需要进行一次全备
使用altr database open resetlogs; 开机时,重新初始化了redolog,
archive log,以前的数据文件的备份全部失效
删除无用archive log
三、当前redo损坏
重启数据库无法开机
恢复:
删除数据文件
使用旧备份恢复数据文件
恢复和前面提到的类似:
恢复命令:
recover database using backup controlfile until cancel;
#auto
recover database using backup controlfile until cancel;
#cancel
删除控制文件
关闭数据库
使用备份的逻辑控制文件恢复控制文件(找出类似如下部分,直接执行)
(恢复控制文件时需要数据文件,但是使用现在的数据文件是不行的,这就是前面先删除数据文件再恢复的原因)

执行开机:
alter database open resetlogs;
全备
删除无用archive log
总结:
一致性开机的原理
scn号
开机的步骤
开机的所需文件
手工备份恢复oracle数据库的更多相关文章
- Navicat备份远程Oracle数据库到本地
公司的数据库是本地的,我只能在公司连,回家就不能跑项目了,一跑就报SQLException,所以希望可以把数据库复制到我的本地来. 因为一直在用Navicat操作数据库,这里就分享一下用Navicat ...
- [转]PLSQL Developer备份恢复oracle数据
本文转自:http://www.cnblogs.com/iampkm/archive/2013/06/09/3128273.html 使用PL sql提供的功能可以快速的备份恢复oracle数据. 1 ...
- PLSQL Developer备份恢复oracle数据
使用PL sql提供的功能可以快速的备份恢复oracle数据. 1 导出存储过程,触发器,序列等所有用户对象.(备份) 在PL/SQL Developer的菜单Tools(工具) => Exp ...
- PL/SQL远程备份和恢复Oracle数据库
(转自:http://blog.csdn.net/huchunfu/article/details/25165901) 在客户端远程备份的文件保存在数据库所在主机上,不会直接拷贝到客户端.—————— ...
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
数据库名.实例名.数据库域名.全局数据库名.服务名 , 这是几个令很多初学者容易混淆的概念.相信很多初学者都与我一样被标题上这些个概念搞得一头雾水.我们现在就来把它们弄个明白. 一.数据库名 什么是数 ...
- 恢复oracle数据库误删除数据的方法汇总
学习数据库时,我们只是以学习的态度,考虑如何使用数据库命令语句,并未想过工作中,如果误操作一下,都可能导致无可挽回的损失.当我在工作中真正遇到这些问题时,我开始寻找答案.今天主要以oracle数据库为 ...
- 如何将备份的oracle数据库还原到指定用户下。
上一文章 oracle11g数据库--创建表空间,创建用户,用户授权并指定表空间.我们已经建好了指定的新用户pdmis. 接下来我们需要将备份好的数据库,还原至新用户pdmis下. 想要还原,我们需要 ...
- 系统重装后恢复Oracle数据库
这周装系统的固态盘坏了,固态硬盘用到坏也是第一次碰到....只能新买个硬盘重装系统了.到了Oracle数据库恢复那一步了,其实很简单.只要没把数据库安装路径放在系统盘就行.*^____^* 先找到重装 ...
- CentOS 上面 恢复 Oracle 数据库实例的简单操作流程
1. 当获取了数据库的备份可以进行 oracle数据库的备份恢复操作 linux上面要复杂一些. 这里面简单描述一下. 2. 远程连接 linux 主要工具可以选择 xshell 如图示: 3. 建议 ...
随机推荐
- vue2.0中关于active-class
一.首先,active-class是什么, active-class是vue-router模块的router-link组件中的属性,用来做选中样式的切换: 相关可查阅文档:https://router ...
- 十款APP开发框架
对于大部分Web开发人员,HTML.CSS和 Java是他们最熟练的开发技能.然而,开发一个原生的移动App,对他们来说却是完全陌生的领域.因为开发Android,iOS 或 Windows Phon ...
- Unity 默认进入的scenes
1,如果有多个场景,那么第一个场景要放在最上边,(其他的也要加) 2,如果不添加,那么Unity会把当前打开的场景添加进来. 3,切换场景的代码 using UnityEngine.SceneMana ...
- JavaScript:理解执行环境、作用域链和活动对象
作用域的原理,对JS将如何解析标识符做出了解答.而作用域的形成与执行环境和活动对象紧密相关. 我们对于JS标识符解析的判断,存在一个常见误区 首先,看一个关于JS标识符解析的问题 ,源于风雪之隅提出的 ...
- JS一个经典闭包问题
这里是记录一些本人在学习过程中觉得重要的知识点,记录下来以供日后查看,如有不对欢迎指正,望在前端的路上共勉! <!DOCTYPE html> <html lang="en& ...
- Eigen下载安装
首先提供Eigen的两个重要网站 官方网站 下载地址 1.下载 wget http://bitbucket.org/eigen/eigen/get/3.3.5.tar.gz 2.解压缩 tar -zx ...
- Vue的数据依赖实现原理简析
首先让我们从最简单的一个实例Vue入手: const app = new Vue({ // options 传入一个选项obj.这个obj即对于这个vue实例的初始化 }) 通过查阅文档,我们可以知道 ...
- Python学习笔记(6)元组
2019-03-02 元组(tuple): (1)元组是不可变的,无法进行任意修改.插入.删除一个元素. (2)创建元组大部分时候用小括号,如果创建的元组中只有一个元素,需要在它的后面加上一个逗号. ...
- URL中一些特殊符号的替代符
下表中列出了一些URL特殊符号及编码 十六进制值 1.+ URL 中+号表示空格 %2B 2.空格 URL中的空格可以用+号或者编码 %20 3./ 分隔目录和子目录 %2F 4.? 分隔实际的 UR ...
- 再识Quartz
在之前的项目中使用过Quartz,但都是基于XML配置定义任务的.目前一个项目应用需要对任务进行创建.暂停.删除等动态管理.所以再次在网上翻了翻,再来好好重新认识下Quartz. 名词解释: sche ...