热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

OracleUndotablespace恢复(无备份)

OracleUndotablespace恢复系统环境:操作系统:RedHatEL55Oracle:Oracle11gR2Oracle9i后,采用了undotablespace管理undo数据,实现undo的自动管理,本案例演示

OracleUndotablespace恢复系统环境:操作系统:RedHatEL55Oracle:Oracle11gR2Oracle9i后,采用了undotablespace管理undo数据,实现undo的自动管理,本案例演示

Oracle Undo tablespace恢复

系统环境:

操作系统:RedHat EL55

Oracle: Oracle 11gR2


Oracle 9i后,采用了undo tablespace管理undo数据,实现undo的自动管理,本案例演示了undo表空间被破坏后如何恢复;如果有备份,通过备份恢复非常容易,但在没有备份的情况下,就需要采用非常规手段来恢复了,呵呵。

1、案例应用环境

undo表空间undo segments:

14:34:44 SYS@ prod>select segment_name,segment_type,tablespace_name from dba_segments 14:35:03 2 where tablespace_name='UNDOTBS1'; SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME -------------------- ------------------ ------------------------------ _SYSSMU10_3550978943$ TYPE2 UNDO UNDOTBS1 _SYSSMU9_1424341975$ TYPE2 UNDO UNDOTBS1 _SYSSMU8_2012382730$ TYPE2 UNDO UNDOTBS1 _SYSSMU7_3286610060$ TYPE2 UNDO UNDOTBS1 _SYSSMU6_2443381498$ TYPE2 UNDO UNDOTBS1 _SYSSMU5_1527469038$ TYPE2 UNDO UNDOTBS1 _SYSSMU4_1152005954$ TYPE2 UNDO UNDOTBS1 _SYSSMU3_2097677531$ TYPE2 UNDO UNDOTBS1 _SYSSMU2_2232571081$ TYPE2 UNDO UNDOTBS1 _SYSSMU1_3780397527$ TYPE2 UNDO UNDOTBS1 10 rows selected. Elapsed: 00:00:00.19

模拟应用环境:

14:43:16 SYS@ prod>select count(*) from scott.emp1; COUNT(*) ---------- 1 Elapsed: 00:00:00.06 14:43:54 SYS@ prod>insert into scott.emp1 select * from scott.emp; 14 rows created. Elapsed: 00:00:00.08 14:44:04 SYS@ prod>commit; Commit complete. Elapsed: 00:00:00.03 14:44:06 SYS@ prod>select count(*) from scott.emp1; COUNT(*) ---------- 15 Elapsed: 00:00:00.01 14:44:20 SYS@ prod>insert into scott.emp1 select * from scott.emp where rownum <4; 3 rows created. Elapsed: 00:00:00.03 14:44:40 SYS@ prod>select count(*) from scott.emp1; COUNT(*) ---------- 18 Elapsed: 00:00:00.01 关库前,事务未提交!


开启新的会话,,模拟断电,将数据库非正常关闭:


[oracle@rh6 dbs]$ sqlplus '/as sysdba'

SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 26 14:46:11 2014

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

14:46:12 SYS@ prod>shutdown abort;

ORACLE instance shut down.


Undo tablesapce datafile被破坏:

[oracle@rh6 dbs]$ rm /u01/app/oracle/oradata/prod/undotbs01.dbf


2、Open database时数据库报错:

[oracle@rh6 prod]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.1.0 Production on Thu Jun 26 14:47:26 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to an idle instance. 14:47:26 SYS@ prod>startup ORACLE instance started. Total System Global Area 835104768 bytes Fixed Size 2217952 bytes Variable Size 775948320 bytes Database Buffers 54525952 bytes Redo Buffers 2412544 bytes Database mounted. ORA-01157: cannot identify/lock data file 3 - see DBWR trace file ORA-01110: data file 3: '/u01/app/oracle/oradata/prod/undotbs01.dbf' 告警日志: ALTER DATABASE OPEN Errors in file /u01/app/oracle/diag/rdbms/prod/prod/trace/prod_dbw0_7481.trc: ORA-01157: cannot identify/lock data file 3 - see DBWR trace file ORA-01110: data file 3: '/u01/app/oracle/oradata/prod/undotbs01.dbf' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file or directory Additional information: 3 Errors in file /u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_7503.trc: ORA-01157: cannot identify/lock data file 3 - see DBWR trace file ORA-01110: data file 3: '/u01/app/oracle/oradata/prod/undotbs01.dbf' ORA-1157 signalled during: ALTER DATABASE OPEN... 14:47:37 SYS@ prod>show parameter undo NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ undo_management string AUTO undo_retention integer 900 undo_tablespace string UNDOTBS1 14:48:18 SYS@ prod>

3、在没有备份的情况下进行修复:


创建pfile:

14:48:18 SYS@ prod>create pfile from spfile;

File created.

Elapsed: 00:00:00.09

查看undo tablespace使用的undo segments:

[oracle@rh6 dbs]$ cd /u01/app/oracle/oradata/prod/

[oracle@rh6 prod]$ strings system01.dbf | grep _SYSSMU | cut -d $ -f 1 | sort -u

and substr(drs.segment_name,1,7) != '_SYSSMU'

D' and substr(drs.segment_name,1,7) != ''_SYSSMU'' ' );

_SYSSMU10_3550978943

_SYSSMU10_3904554333

_SYSSMU11_286947212

_SYSSMU12_3068564564

_SYSSMU13_2761193625

_SYSSMU1_3780397527

_SYSSMU14_2421411996

_SYSSMU15_1683924174

_SYSSMU16_2313212396

_SYSSMU17_2041439332

_SYSSMU1_783380902

_SYSSMU18_2800789714

_SYSSMU19_53723967

_SYSSMU20_3850939844

_SYSSMU2_2232571081

_SYSSMU2_3138176977

_SYSSMU3_1645411166

_SYSSMU3_2097677531

_SYSSMU4_1152005954

_SYSSMU4_870421980

_SYSSMU5_1527469038

_SYSSMU5_2525172762

_SYSSMU6_2443381498

_SYSSMU6_3753507049

_SYSSMU7_1260614213

_SYSSMU7_3286610060

_SYSSMU8_2012382730

_SYSSMU8_2806087761

_SYSSMU9_1424341975

_SYSSMU9_973944058

注意:通过system01.dbf查出了,正在使用的undo segment,以上按使用时间做了排序,注意只选择那些排在最前面的(相同回滚段);默认每个undo tablespace 会应用10个undo segments。

编辑pfile,添加Oracle隐含参数,跳过undo segments的检测:

[oracle@rh6 dbs]$ cat initprod.ora

*.undo_tablespace='SYSTEM'

*.undo_management='MANUAL'

推荐阅读
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • 本周信息安全小组主要进行了CTF竞赛相关技能的学习,包括HTML和CSS的基础知识、逆向工程的初步探索以及整数溢出漏洞的学习。此外,还掌握了Linux命令行操作及互联网工作原理的基本概念。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文详细介绍了如何在BackTrack 5中配置和启动SSH服务,确保其正常运行,并通过Windows系统成功连接。涵盖了必要的密钥生成步骤及常见问题解决方法。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 掌握Linux:基础命令入门
    本章节深入浅出地介绍了Linux系统中的基本命令操作,帮助读者快速上手并理解其核心功能。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 在哈佛大学商学院举行的Cyberposium大会上,专家们深入探讨了开源软件的崛起及其对企业市场的影响。会议指出,开源软件不仅为企业提供了新的增长机会,还促进了软件质量的提升和创新。 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
author-avatar
是个success
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有