Oracle数据库数据文件损坏如何恢复

数据文件有时候因为某种原因会导致损坏而导致无法启动数据库,那如何恢复呢?

下面是一次模拟实验,如下

1. 首先创建一个表空间TEST,在创建一个表test在表空间test上

SQL> create tablespace test datafile '/u01/app/oracle/oradata/lhz/test01.dbf' size 10M;

SQL>  create table test as  select * from dba_objects;

Table created

SQL> alter table test move tablespace test;

Table altered

SQL> select count(*) from test;

COUNT(*)

----------

   50881

2. 然后用vi编辑数据文件

[oracle@odb1 ~]$ vi /u01/app/oracle/oradata/lhz/test01.dbf

3.随便输入什么字符,保存

4.关闭数据库实例

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

5.启动实例

SQL> startup

ORACLE instance started.

Total System Global Area  599785472 bytes

Fixed Size                  2098112 bytes

Variable Size             243272768 bytes

Database Buffers          348127232 bytes

Redo Buffers                6287360 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 9 - see DBWR trace file

ORA-01110: data file 9: '/u01/app/oracle/oradata/lhz/test01.dbf'

看到报错信息数据文件不能验证或锁定数据文件

时间: 2024-10-18 12:34:21

Oracle数据库数据文件损坏如何恢复的相关文章

Oracle数据库数据文件位置修改方法

 数据文件就是以dbf结尾的文件也也就是用来存储我们数据的一个文件了,此文件通常比较大所以我们一般存储在空间比较大的目录了,下面一起来看看Oracle数据库数据文件位置修改方法   如何更改Oracle数据文件的位置 A:归档模式下 1.在sqlplus中连接到要移动文件的Oracle数据库,然后执行如下SQL语句查看Oracle数据库文件位置: SQL>select file_name   from   sys.dba_data_files; FILE_NAME ---------------

Oracle某个数据文件损坏,如何打开数据库

oracle|数据|数据库 某个数据文件损坏,如何打开数据库? 系统环境: 1.操作系统:Windows 2000 Server,机器内存128M2.数据库: Oracle 8i R2 (8.1.6) for NT 企业版3.安装路径:C:\ORACLE 错误现象: 因误操作,数据库中某一数据文件被误删,控制面板的Oracle相关服务显示已启动,但用SQL*Plus无法连接,显示以下错误ORA-01033: ORACLE initialization or shutdown in progres

数据库文件损坏的恢复方法

  说明如下:SQL Server 2000文件损坏的恢复 1.建一个测试数据库test(数据库类型为完全). 2.建一个表,插入点记录. create table a(c1 varchar(2)) go insert into a values('aa') go insert into a values('bb') go 3.作完全备份,到文件test_1.bak. 4.在作一点修改. insert into a values('cc') go create table b(c1 int) g

通过句柄恢复Linux下误删除的数据库数据文件

环境介绍: OS:Redhat EnterPrise 5.4DB:Oracle EnterPrise Database 11gR2(11.2.3.0)        在数据库正常运行时,运维人员在无意中将部分数据文件删除了,此时数据库管理员并不知道,且数据库运行正常,并没有立即抛出错误和告警:但是开发人员在对某张表进行更新的时候,正好这张表在被删除的数据文件中,报出ORA-01110和ORA-27041错误.随即数据库管理人员来看现象,发现有一个文件已经从系统层面删除了,并且数据库数据库没有进行

探索ORACLE之RMAN_07 磁盘损坏数据丢失恢复

探索ORACLE之RMAN_07 磁盘损坏数据丢失恢复 作者:吴伟龙   Name:Prodence Woo QQ:286507175  msn:hapy-wuweilong@hotmail.com             有的时候在企业里面难免会出现由于磁盘损坏而导致数据库的故障乃至数据的丢失,那么这个时候,那么这个时候数据的备份就显得尤为的重要.在这一节我们重点讨论下由于装载数据文件,redo日志文件,controlfile控制文件的磁盘损坏的数据恢复.   6.1 通过强制卸载磁盘模拟数据

所有控制文件损坏的恢复--resetlogs方式

        此方式和 所有控制文件损坏的恢复--noresetlogs方式恢复时的前五个步骤是一样的. 1)先备份控制文件            SQL> alter database backup controlfile to 'f:\lib\control.ctl' reuse;数据库已更改.2)生成跟踪文件. SQL> alter database backup controlfile to trace;数据库已更改.SQL> @f:\sql\gettrace.sql---一个

ORACLE 只读数据文件备份与恢复

      第一章 只读数据文件备份与恢复 BLOG文档结果图:       只读数据文件是只读表空间的数据文件,其数据块包括文件头在内不允许更改(少数管理性命令除外). 将表空间设置为只读状态的命令: SQL> alter tablespace TBS_READ read only;   Tablespace altered.   将表空间重新设置为常规的读/写状态的命令: SQL> alter tablespace TBS_READ read write;   Tablespace alt

oracle 01578 数据块损坏 怎么忽略

问题描述 oracle 01578 数据块损坏 怎么忽略 windows 2008 oracle 11 非归档模式 数据库启动时没有错误提示.写入数据时会提示01578,这个数据文件在一个大的空间里(有很多数据文件).我把它offline drop 后,查询它的状态是available.再写入数据时会提示01110错误,用recover 不成功,因为没有归档的日志. 请问:我能否在offline前把这个坏块的错误忽略掉?或者我在offline后不让数据库再去访问这个数据文件呢? 解决方案 在 e

Oracle数据库密码文件的使用与维护

oracle|数据|数据库 概要:Oracle关系数据库系统以其卓越的性能获得了广泛的应用,而保证数据库的安全性是数据库管理工作的重要内容.本文是笔者在总结Oracle数据库安全管理工作的基础上,对Oracle数据库系统密码文件的创建.使用和维护作了详细的介绍,供大家参考. 关键词:Oracle数据库密码文件 在Oracle数据库系统中,用户如果要以特权用户身份(INTERNAL/SYSDBA/SYSOPER)登录Oracle数据库可以有两种身份验证的方法:即使用与操作系统集成的身份验证或使用O