undo 损坏案列

公司一台测试环境的基于linux 平台下 oracle 11.2.0.3 的数据库,为开归档,未备份。 21号晚上,因/目录下 空间使用%100,oracle

公司一台测试环境的基于linux 平台下 oracle 11.2.0.3 的数据库,为开归档,未备份。 21号晚上,因/目录下 空间使用%100,oracle home目录在系统 / 目录下:

因硬盘资源占尽,不能连接操作,oracle 数据库挂起。

某人的操作,查看undotbs1 占用最大,,通过mv 移动到 另一目录,同时系统被重启,使得undotbs1 数据文件损坏,不能使用,最后又做了一个rm  操作, 重启库,导致故障出现!

报错一:

Wed Jan 22 09:42:50 2014
ALTER DATABASE OPEN
Errors in file /u01/app/oracle/diag/rdbms/gtadata13/gtadata13/trace/gtadata13_dbw0_4245.trc:
ORA-01157: cannot identify/lock data file 3 – see DBWR trace file
ORA-01110: data file 3: ‘/u01/app/oracle/oradata/gtadata13/undotbs01.dbf’
ORA-27047: unable to read the header block of file
Linux-x86_64 Error: 25: Inappropriate ioctl for device
Additional information: 1
Wed Jan 22 09:42:52 2014
Checker run found 1 new persistent data failures
Errors in file /u01/app/oracle/diag/rdbms/gtadata13/gtadata13/trace/gtadata13_ora_4361.trc:
ORA-01157: cannot identify/lock data file 3 – see DBWR trace file
ORA-01110: data file 3: ‘/u01/app/oracle/oradata/gtadata13/undotbs01.dbf’
ORA-1157 signalled during: ALTER DATABASE OPEN…

— 就是oracle 在mount后,不能加载到open 状态。

2 接下来操作: 因为undo tablespace 数据文件undotbs1 没有了,想通过重建一个undo 表空间 undotbs2 把数据库启动到open 状态

操作:

SQL> show parameter undo
NAME TYPE VALUE
———————————— ———– ——————————
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1

SQL > CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE ‘/XXXX.DBF’ SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 10G; –重创建表空间
SQL > SELECT * FROM V$TABLESAPCE  SELECT NAME,STATUS FROM V$DATAFILE  — 查询其状态值
SQL > ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2 SCOPE=BOTH    — 通过show parameter undo 查看是否使用。

3 此时,数据库可以open起来, 但是通过client ,或者其他用户连接时,报错:

报错二
SQL> conn input/INPUT
ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 3 cannot be read at this time
ORA-01110: data file 3: ‘/u01/app/oracle/oradata/gtadata13/undotbs01.dbf’
ORA-02002: error while writing to audit trail
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 3 cannot be read at this time
ORA-01110: data file 3: ‘/u01/app/oracle/oradata/gtadata13/undotbs01.dbf’

4 根据报错,发现不仅仅是 undotbs1数据文件有问题,还有开启了审计 audit: 如是

先关闭审计
SQL > SHOW PARAMETER AUDIT
NAME TYPE VALUE
———————————— ———– ——————————
audit_file_dest string /u01/app/oracle/admin/gtadata1
      3/adump
audit_sys_operations boolean FALSE
audit_syslog_level string
audit_trail string DB

SQL > alter system set audit_trail=none scope=spfile      — 设置后需要重启库。  –具体见审计

5 再通过对undotbs1数据文件操作,使其offline 处理(看行否)

SQL > alter database datafile 3 offline drop ;

6 通过 v$logfile,dba_tablespaces, dba_data_files 查看数据表空间,数据文件的状态:

SQL> select tablespace_name,file_id,file_name from dba_data_files;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            TABLESPACE_NAME FILE_ID FILE_NAME
——- ———- ————————————————————-
USERS 4 /u01/app/oracle/oradata/gtadata13/users01.dbf
UNDOTBS1 3 /u01/app/oracle/oradata/gtadata13/undotbs01.dbf
SQL> select status,tablespace_name from dba_tablespaces;
                                                     
STATUS TABLESPACE_NAME
——— ——————————
ONLINE SYSTEM
ONLINE SYSAUX
ONLINE UNDOTBS1 

7 此时发现undotbs1 数据文件还在,同时undotbs1 表空online

如是操作: 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1871789.html

(0)
上一篇 2025年2月22日 08:47:14
下一篇 2025年2月22日 08:47:27

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • navicat连接数据库报错2005怎么办

    关于Navicat for MySQL 连接 MySQL 报2005 -Unknown MySQL server host ‘localhost’(0)错误的情况与解决方法 相关推荐:《Navicat for mysql使用图文教程》 20…

    2025年2月23日
    100
  • navicat如何连接到oracle

    navicat如何连接到oracle? 1.在官网直接下载navicat-for-oracle 2.下载完成后双击安装程序进行安装 3.安装过程如下图所示 4.选择安装位置 5.安装完成后运行软件,点击试用即可。 6.点击连接选择oracl…

    2025年2月23日 数据库
    100
  • 用navicat怎么连接数据库

      navicat是强大的可视化数据库管理工具,navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。很多用户常常会使用navicat软件来管理本地的数据库文件,可是还是有很多用户不知道如何…

    2025年2月23日 数据库
    100
  • navicat怎么创建oracle新表

    下面介绍如何使用Navicat创建oracle数据库表空间的具体操作方法。 推荐教程:navicat图文教程 1、打开Navicat 2、右击oracle数据库,然后点击【打开连接】 3、点击【其它】,然后点击【表空间】,此时显示oracl…

    2025年2月23日 数据库
    100
  • navicat怎么创建oracle表

    一、Oracle安装 https://blog.csdn.net/libingbojava/article/details/82025702 安装完以后使用Navicat连接Oracle数据库。 用户名暂时使用system登录,密码就是安装…

    2025年2月23日 数据库
    100
  • navicat数据库怎么建立

      navicat是一款非常好用的数据库图形界面管理软件。下面介绍如何使用Navicat创建mysql数据库的详细操作方法。 推荐教程:navicat使用教程 1、打开Navicat 2、鼠标右击mysql数据库连接,然后点击【打开连接】 …

    2025年2月23日 数据库
    100
  • navicat怎么把数据库导出

      Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。下面我们就为大家介绍一下如何使用naviact把数据库导出。 推荐教程:navicat图文使用教程   使用Navicat连接到m…

    2025年2月23日 数据库
    100
  • navicat怎么连接数据库文件

    怎么使用Navicat连接数据库? 1、打开Navicat,点击左上角的‘Conection’按钮。 2、点击后,弹出菜单,我们要选择是哪种类型的数据库,根据你本地部署的数据库类型来选就行了,我这里选择MySql。 相关推荐:《Navica…

    2025年2月23日 数据库
    100
  • navicat怎么手动创建数据库

    navicat怎样创建数据库? 1、在服务中启动Mysql数据库 2、打开navicat 3、选中数据库连接“root”右键-》新建数据库 4、填写数据库名称,注意名称不要以数字开头,不要有中文、空格、特殊字符等 5、选择“字符集”,常用的…

    2025年2月23日 数据库
    100
  • 使用navicat怎么连接远程的oracle

    Navicat Premium算是比较好的一个可视化数据库管理工具了,短小精悍,一个工具解决三种数据库的连接问题,真正做到了集成管理,对MySQL,SQLServer而言,连接比较简单,就不赘述了,现总结连接Oracle的步骤如下: 一、说…

    2025年2月23日 数据库
    100

发表回复

登录后才能评论