昨天,一个客户打打来电话,说他们的数据库坏了,不能用了,需要我帮助恢复下,这马上要放假了,居然出了这事儿,自己也不太喜欢恢复数据库这类,尤其是他们的数据库是个win上的库,但心里很清楚,客户比咱着急,客户就是上帝,没什么好说的,开工吧。通过认真了解,大体明白了客户的情况,他们的库是在win上的Oracle11g,因为杀毒软件的把Oracle软件的某些文件当成了病毒给删了,而且顽固到拷贝过去就会删掉,后来也不知道删了多少文件,数据库就起不来了,我也不知道他们把数据库给主动关了,还是数据库自己宕掉了,反正结果就是起不来了。经过检查,数据文件应该还没问题,只是大体判断而已,开始恢复吧。

1、安装软件

首先,得先重新安装Oracle软件,经过和客户沟通,他们很自信的说可以自己重新安装软件,于是,先由他们来安装数据库软件,为了保险起见,让他们把软件安装到和之前不同的位置。让我有点惊讶的是,客户安装软件非常快,可能也就10多分钟就装完了。为了说明,假设原来的软件安装路径为:

d:\app\erp\product\11.2.0\dbhome_1

新安装软件的路径为:

d:\app\erp\product\11.2.0\dbhome_2

软件装完了,接下来需要做的就是看看能否用新安装的软件把数据库拉起来。
2、设置环境变量

打开计算机高级设置-->环境变量设置--->设置:

ORACLE_SID=ora11g

ORACLE_BASE=d:\app\erp\product\

ORACLE_HOME=d:\app\erp\product\11.2.0\dbhome_2

将path中oracle有关路径d:\app\erp\product\11.2.0\dbhome_1\bin -->d:\app\erp\product\11.2.0\dbhome_2\bin

3、拷贝相应文件:

cp d:\app\erp\product\11.2.0\dbhome_1\database\*.* d:\app\erp\product\11.2.0\dbhome_2\database\

cp d:\app\erp\product\11.2.0\dbhome_1\network\*.* d:\app\erp\product\11.2.0\dbhome_2\network\
4、注销并重新登录OS用户
5、先删除旧的oracle服务

oradim -delete -srvc oracleserviceora11g
6、新建oracle服务:
oradim -new -srvc oracleserviceora11g -sid ora11g -startmode auto -shutmode immediate -srvcstart demande -spfile
7、重启新建的oracle服务

net start oracleserviceora11g

lsnrctl start
8、登录数据库测试:
sqlplus test/test@ora11g
如果能顺利登录数据库,说明到此一切OK。
9、删除旧的oracle软件目录,以释放空间。

10、至此,客户数据库恢复完成,前后大概半个多小时的样子。

数据库恢复(database restore)之兵不血刃——半小时恢复客户数据库的更多相关文章

  1. 显式激活数据库( ACTIVATE DATABASE)

    某天值班员联系我说,我负责的一套报送系统没有按时生成报文,因为此报警提前量比较大,加上系统经常发生未按时生成报文的事件,也就是没在意,然后不急不慢的到公司,打开系统页面,发现其中一个存储过程跑了将近8 ...

  2. oracle数据库recover和restore的区别

    restore just copy the physical file, recover will consistent the database.restore 是还原,文件级的恢复.就是物理文件还 ...

  3. 每篇半小时1天入门MongoDB——2.MongoDB环境变量配置和Shell操作

    上一篇:每篇半小时1天入门MongoDB——1.MongoDB介绍和安装 配置环境变量 Win10系统为例 右键单击“此电脑”——属性——高级系统设置——高级——环境变量,添加C:\Program F ...

  4. 跟面试官侃半小时MySQL事务,说完原子性、一致性、持久性的实现

    提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关. 而事务的ACID(即原子性Atomicity.一致性Consiste ...

  5. 【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务/用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 先贴错误: 吐槽一下: 进入正题: 新建一个同名数据库 停止MSSQL服务 替换数据库文 ...

  6. 数据库(Database)

    一.定义 1. 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,简单来说是本身可视为电子化的件柜--存储电子文件的处所,用户可以对文件中的数据进行新增.截取.更新.删除等操作.数 ...

  7. smarty半小时快速上手入门教程

    http://www.jb51.net/article/56754.htm http://www.yiibai.com/smarty/smarty_functions.html http://www. ...

  8. 【转载】一个小时学会MySQL数据库

    一个小时学会MySQL数据库   目录 一.数据库概要 1.1.发展历史 1.1.1.人工处理阶段 1.1.2.文件系统 1.1.3.数据库管理系统 1.2.常见数据库技术品牌.服务与架构 1.3.数 ...

  9. 【半小时大话.net依赖注入】(下)详解AutoFac+实战Mvc、Api以及.NET Core的依赖注入

    系列目录 上|理论基础+实战控制台程序实现AutoFac注入 下|详解AutoFac+实战Mvc.Api以及.NET Core的依赖注入 前言 本来计划是五篇文章的,每章发个半小时随便翻翻就能懂,但是 ...

随机推荐

  1. [从零开始搭网站五]http网站Tomcat配置web.xml和server.xml

    点击下面连接查看从零开始搭网站全系列 从零开始搭网站 上一章我们在CentOS下搭建了Tomcat,但是还是没有跑起来...那么这一章就把最后的配置给大家放上去. 有两种方式:一种是用 rm -f 给 ...

  2. P1031 均分纸牌

    题目描述 有N堆纸牌,编号分别为 1,2,…,N1,2,…,N.每堆上有若干张,但纸牌总数必为N的倍数.可以在任一堆上取若干张纸牌,然后移动. 移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的堆 ...

  3. @Autowired 警告 Field injection is not recommended Spring @Autowired注入

    问题: 一. 在IDEA升级2017版后,发现以前使用的 @Autowired 出现了个警告 Field injection is not recommended. @Autowired的三种使用方式 ...

  4. go 多态

    demo1 // Sample program to show how polymorphic behavior with interfaces. package main import ( &quo ...

  5. idea中svn的使用教程

    引言:以下是idea集成小乌龟后的svn使用教程,一张图足以说明问题,后续如果遇到了比较复杂一点的问题再来补充. 参考文档:https://blog.csdn.net/liuhailiuhai12/a ...

  6. java GUI 返回图片源码

    返回图片源码,重开一个类粘贴即可 package cn.littlepage.game; import java.awt.Image; import java.awt.image.BufferedIm ...

  7. django会话session

    因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的.独立的.通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户.对于静 ...

  8. linux学习笔记--程序与进程管理

    .工作管理 1.前台程序放后台程序  命令后 加  & 2.任务执行时将前台任务任务放到后台中并[暂停]  ctr + z 3.jobs 观察后台工作状态 及多少任务在执行,可以通过 help ...

  9. MySQL学习(七)

    学习子查询 1 查出本网站最新的good_id最大的一条商品(要求取出商品名) mysql> select goos_id,goods_name from goods -> order b ...

  10. 虚拟机镜像压缩(qcow2,raw)

    ●qcow2 格式的压缩首先,需要对虚拟机系统的剩余空间写零操作: $ dd if=/dev/zero of=/zero.dat 删除 zero.dat$ rm /zero.dat关闭虚拟机,进入虚拟 ...