生产环境中有两台部署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. 200 OK (from cache)原因

    Meta标签中的http-equiv用来标记不可缓存或过期时间,但效果一般.而且代理缓存基本不访问HTML文档内容,所以尽量少用meta标签控制缓存. Pragma: no-cache Forces ...

  2. Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1

    第一篇:官方文档的处理方法,摘自官方 在迁移原先用JDBC/SQL实现的系统,难免需要采用hibernat native sql支持. 1.使用SQLQuery hibernate对原生SQL查询执行 ...

  3. 开涛spring3(1) - Spring概述

    1.1.1  Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发.应用程序是由 ...

  4. NetFramework各个版本的特性笔记

    公式记忆: .Net 2.0=CLR+BCL+C#(VB.Net)+Win Form+Web Form .Net 3.0=.Net 2.0+WCF+WPF+WF+WCS .Net 3.5=.Net 3 ...

  5. grant all赋权后mysql.user表权限字段还是N,但能登录和新建表

    grant all赋权后mysql.user表权限字段还是N,但能登录和新建表 grant all privileges on linuxeye.* to linuxeye@'localhost' i ...

  6. 提高code效率

    分享下个人编码挫折,关于提高编码效率.代码规范.清晰的代码模块顺序.及时总结代码(提取出可复用的)以及清晰的注释,这是我感觉有必要的,因为工作到后期,代码量都非常的大.就是上个周5那天的整体工作效率都 ...

  7. 关于AD9516芯片的硬件设计和FPGA程序编写心得

    最近在做一个项目,其中有涉及时钟芯片AD9516的硬件设计和软件编程,有些使用心得,供大家参考讨论. AD9516,这是一个由ADI公司设计的14路输出时钟发生器,具有亚皮秒级抖动性能,还配有片内集成 ...

  8. 一篇文章介绍GItHub的基础使用

    最近复习了一下Git的使用,简单总结了一些.以供以后查阅和同行参考. 一,安装 首先是Linux下: 打开shell ,输入 sudo apt-get install git-core 之后回车输入密 ...

  9. Java中的框架基础面试知识

    spring mvc 工作机制(原理): DispatcherServlet主要用作职责调度工作,本身主要用于控制流程 Spring mvc运行原理 1.springmvc将所有的请求都提交给Disp ...

  10. angular.js的ng-app 指令定义一个 AngularJS 应用程序。

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...