生产环境中有两台部署PowerCenter的ETL业务机,近期发现无法通过客户端连接到ETL服务。

初步怀疑是PowerCenter挂掉了,或者资料库出现了故障。

登陆设备后发现PowerCenter进程存在,但是资料库(Oracle)却挂掉了。

切换oracle账户进入,手动startup资料库,结果启动时报错:ORA-01157,ORA-01110。看报文说明是无法锁定或识别数据文件。

退出sqlplus,发现数据文件存在,猜测可能是故障造成的数据文件损坏,因为是NOARCHIVELOG(非归档)模式,无法通过日志进行恢复。

想起之前有用expdp导出过一次备份,为了尽快恢复ETL生产,只能drop掉数据文件重新建立了。

大致过程如下:

lsnrctl stop

sqlplus / as sysdba
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database archivelog;
SQL>alter database datafile '/oradata/xxx.dbf' offline drop;
SQL>alter database open;
SQL>drop tablespace xxx including contents and datafiles;
SQL>create tablespace xxx ... datafile '/oradata/xxx.dbf' ...;
SQL>exit; impdp \'sys / as sysdba\' tablespaces=xxx directory=DATA_PUMP_DIR dumpfile=xxx.dump logfile=impdp-xxx.log content=metadata_only
impdp \'/ as sysdba\' schemas=etl_user directory=DATA_PUMP_DIR dumpfile=etl_user.dump logfile=impdp-etl_user.log content=data_only lsnrctl start

导入表空间元数据和用户数据后,基本上数据就恢复到了之前的备份点。

下面再针对PowerCenter访问的细节表做下调整就可以了,稍后重新启动下PowerCenter查看运行情况。

如果PowerCenter事前做好了存储服务的资料备份,则再利用备份做下配置的恢复那么基本上就没什么问题。

不过上述操作稍显粗犷(有朋友指出危险性极大),所以诸君操作前请三思而后行,否则造成面积更广的数据损失就得不偿失了。

结论:千好万好,备份最好。

参考文档:

http://www.itpub.net/thread-27492-1-1.html

ORA-01157,记一次Oracle故障恢复过程的更多相关文章

  1. 转载:oracle 启动过程--oracle深入研究

    Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是 ...

  2. Oracle学习笔记--Oracle启动过程归纳整理

    Oracle 启动过程分为nomount状态mount状态open状态 每个状态下Oracle都会进行不同的操作:1.nomount状态 在$ORACLE_HOME/dbs目录下寻找参数文件 参数文件 ...

  3. Oracle安装过程物理内存检查及临时temp空间不足解决办法

    物理内存 – 此先决条件将测试系统物理内存总量是否至少为 922MB (944128.0KB). 预期值 : N/A 实际值 : N/A 错误列表: – 可用物理内存 PRVF-7531 : 无法在节 ...

  4. oracle计算过程执行时间写法

    --在oracle写过程中很多是对数据处理,业务比较繁琐,有的需要结合job定时器使用,这样就需要知道执行过程的大概时间,不废话直接上脚本,统计单位为分钟 PROCEDURE DATA_DEAL_WI ...

  5. 与PHP5.3.5的战斗----记php5.3.5安装过程

    与PHP5.3.5的战斗----记php5.3.5安装过程 摘自:http://blog.csdn.net/lgg201/article/details/6125189这篇文章写的很是不错,,,也是我 ...

  6. 记一次OutOfMemory定位过程-续

    在前文<记一次OutOfMemory定位过程>完成时最终也没有定位到ECS 中JVM Heap size无法控制的原因,今天再次尝试终于有了一些线索,翻查了ECS的部署脚本发现了memor ...

  7. Oracle安装过程中Oracle Database Configuration Assistant失败问题解决

    今天在安装Oracle的过程中出现了oracle Database Configuration Assistant问题,我解决该问题的方法是将我的计算机用户名更改了一下,改成了pc1.之后再在orac ...

  8. centos7.3 安装oracle 详细过程

    centos7.3安装oracle详细过程1.下载Oracle安装包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2 ...

  9. 记一次oracle数据库复制过程

    记录一次自己数据库复制的过程(从公司测试环境复制到客户测试环境),主要是每次自己都会忘记,不如记录一下,方便自己以后找,因此,本篇内容不会很详细,主要是用于给我自己提醒,相对于一种记笔记的效果. cm ...

随机推荐

  1. MySql学习笔记(一) —— 数据的分组

    前面介绍的聚集函数只是用来计算行数,平均数,最大值,最小值而不用检索所有数据.通过count()函数,我们可以计算生产商1003提供的产品数目,但如果我要查询所有生产商提供的商品数,这就需要进行分组查 ...

  2. grok 匹配log4j

    input { file { codec => multiline { pattern => "^\[2016" negate => true what => ...

  3. 【翻译】光速React – Vixlet

    翻译原文链接:https://blog.vixlet.com/react-at-light-speed-78cd172a6411 个人翻译小站链接:http://www.zcfy.cc/article ...

  4. 汽车Vin码识别——可以嵌入到手机里的新OCR识别技术

              汽车Vin码识别(车架号识别),顾名思义,就是识别汽车的Vin码(车架号),汽车Vin码识别(车架号识别)利用的是OCR识别技术,支持视频流获取图像,自动触发识别,另外汽车Vin码 ...

  5. Java中的向上造型和向下造型等

    package com.study.oop.day01; /**  * 如果某个方法是静态 的,它的行为就不具有多态性  * @author LuHongGang  * @date 2017年6月5日 ...

  6. 【小练习06】HTML+CSS--教学大讲堂

    要求实现如下效果图: 代码演示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  7. 解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG

    解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG zoerywzhou@163.com http://www.cnblogs.com/swje/ 作者:Zhouwan 2017-6 ...

  8. 基于angular实现模拟微信小程序swiper组件

    这段时间的主业是完成一个家政类小程序,终于是过审核发布了.不得不说微信的这个小程序生态还是颇有想法的,抛开他现有的一些问题不说,其提供的组件系统乍一看还是蛮酷的.比如其提供的一个叫swiper的视图组 ...

  9. 记住 Python 变量类型的三种方式

    title: 记住变量类型的三种方式 date: 2017-06-11 15:25:03 tags: ['Python'] category: ['Python'] toc: true comment ...

  10. HTML标签类型及特点

    关键词:块级元素  行级元素 行内块元素   一. 概述           HTML(Hyper Text Markup Language )作为一种标记语言,网页所有的内容均书写在标签内部,标签是 ...