生产环境中有两台部署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. OpenCV探索之路(十四):绘制点、直线、几何图形

    绘制点和圆 void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int li ...

  2. NopCommerce(3.9)作业调度插件

    NopCommerce(3.9)作业调度插件视频教程录制完成,下面是插件源码下载地址和插件视频教程下载地址:插件下载地址: http://www.nopcommerce.com/p/2752/jobs ...

  3. javascript基础-DOM原理

    解释清楚DOM原理并不是一件容易的事,但是任何一个前端工程师,都必须牢牢掌握它. DOM整体架构: 图解: DOM,即针对XML文档的应用程序编程接口(API).通俗一点说,HTML属于XML的一种, ...

  4. Linux常用命令说明(记录自己Linux命令使用情况,后续会持续更新)

    首次记录时间--20170602 感觉自己Linux命令使用掌握的情况非常差,今天先记录当前会的几个. 1#cd(change directory) 切换工作目录(或者叫修改当前目录) eg. cd ...

  5. [HDU1001] Sum Problem

    Problem Description Hey, welcome to HDOJ(Hangzhou Dianzi University Online Judge). In this problem, ...

  6. Vue单页式应用(Hash模式下)实现微信分享

    前端微信分享的基本步骤: 一.绑定域名: 先登录微信公众平台进入"公众号设置"的"功能设置"里填写"JS接口安全域名".这个不多说,微信开发 ...

  7. Java常用类之String类练习

    1.编程. 已知字符串:"this is a test of java". 按要求执行以下操作: (1) 统计该字符串中字母s出现的次数 (2) 取出子字符串"test& ...

  8. 怎么一次性获取form所有的值?rerialize() 、 serializeArray()方法的使用

    from直接提交当然方便,但是有时候需要对数据进行处理再用ajax提交,挨个去获取值未免太麻烦,讲两个一次性获取所有值的方法. 方法1 $("form").serialize(); ...

  9. C# 模拟浏览器请求

    public string getHtml(string Url, string type = "UTF-8")        {            try           ...

  10. 实现最简单PHP MVC实例

    关于网上大多MVC的简介我就不再多说,就是Model(模型)View(视图) C(控制器)这里作为一个刚入门PHP MVC框架的我,这里我搭建一个最简易的mvc项目,从而理解MVC 1在apache服 ...