ORA-00604: 递归 SQL 级别 2 出现错误
ORA-01578: ORACLE 数据块损坏 (文件号 1, 块号 320539)
ORA-01110: 数据文件 1: '/oracle/oracle10g/oradata/sryx/system01.dbf'-- Create table
create table aat
(
a varchar2(12)
)
storage
(
initial 64K
minextents 1
maxextents unlimited
)
创建任意一张表的时候出现上述错误提示,是表空间损坏还是硬盘出现坏道?如何决绝?非常感谢!
ORA-01578: ORACLE 数据块损坏 (文件号 1, 块号 320539)
ORA-01110: 数据文件 1: '/oracle/oracle10g/oradata/sryx/system01.dbf'-- Create table
create table aat
(
a varchar2(12)
)
storage
(
initial 64K
minextents 1
maxextents unlimited
)
创建任意一张表的时候出现上述错误提示,是表空间损坏还是硬盘出现坏道?如何决绝?非常感谢!
解决方案 »
- oracle函数返回long raw类型的时候,貌似有长度限制,100K以上会被截断!
- 马士兵oracle问题
- 模糊查询中 通配符的使用
- 关于全外连接问题,如何得到我要的结果?
- 合并2张表
- 急~~~急~~~~
- 请教(关于SQL存储在ORACLE中的转换问题!急!!!) 新的________------
- 请问在oracle中是否有实现类似sql server中with cube的功能?
- 高手们,你们初学Oracle9i时是怎么安装的?教教我们吧!!!(高手在那??????)
- 求教 如何将一个字段查询出的多个结果拼接到一起
- 求 救,想了一天了,SQL未正确结束
- oracle中如何解除某个表的锁定??、
DBVERIFY: Release 10.2.0.1.0 - Production on Wed Jun 20 11:38:33 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.DBVERIFY - Verification starting : FILE = /oracle/oracle10g/oradata/sryx/sysaux01.dbfDBV-00200: Block, dba 12614201, already ed corruptedDBV-00200: Block, dba 12614205, already ed corruptedDBV-00200: Block, dba 12614206, already ed corruptedDBV-00200: Block, dba 12623232, already ed corruptedDBV-00102: File I/O error on FILE (/oracle/oracle10g/oradata/sryx/sysaux01.dbf) during verification read operation (-2)
报错,何解?多谢!!
首先创建一张表“table1”,没有任何问题。但是drop table1的时候,出现下列错误:
ORA-00604: 递归 SQL 级别 1 出现错误
ORA-00376: 此时无法读取文件 3
ORA-01110: 数据文件 3: '/oracle/oracle10g/oradata/sryx/sysaux01.dbf'
ORA-06512: 在 line 19点击确定关闭,再drop时提示:
ORA-00942: 表或视图不存在此时select * from table1,提示ORA-00942: 表或视图不存在,任何操作(select、insert)都不行了。但用plsql右键——edit,还是能看到表结构的
如果是归档模式
可以先recover一下
rman窗口下blockrecover datafile 3 block 12614201,12614205,12614206,12623232;
-- *1). 先导出数据 exp ....
-- *2). 彻底卸载原数据库软件,删除Oracle相关注册表信息等。
-- *3). 重新安装与之前版本一样的Oracle软件。
-- *4). 最后用 imp 导入数据(用之前exp 生成的备份数据文件)。-- 方案二:如果有完整的备份的话,用基于块的恢复试试-- 具体操作步骤如下:-- 7.8.4 使用RMAN进行基于数据块的恢复 ( P326 )
-- 从Oracle 9i开始,RMAN开始支持基于数据块的恢复,当表空间中的某个数据块发生损坏,恢复整个文件显得有点过于昂贵,而数据块的恢复可以帮助我们快速恢复,
-- 减少业务影响。基于数据块的恢复可以在线进行,甚至受损数据文件也不受影响,只是在恢复完成之前访问损坏Block会收到错误提示;
-- 基于Block的恢复必须是完全恢复,所以完整的备份必不可少。-- 来看以下测试,首先对测试数据库执行一个完全备份:
D:\> rman target /......RMAN> backup database format='d:\oradata\eygle_fullbk.bak' tag='eygle';......-------------------------------------------------------
eygle@SZTYORA> select count(*) from t; COUNT(*)
----------
49998已用时间: 00: 00: 00.32
eygle@SZTYORA> select count (*) from tt; COUNT(*)
----------
49999已用时间: 00: 00: 00.28
--------------------------------------------------------- 为了测试的需要,可以使用 UltraEdit 或者 WinHex 打开文件修改某个数据块,然后保存,模拟数据块损坏,也可以使用 Oracle 的内部工具 BBED 损坏一个数据块,
-- 用于测试,损坏的数据块在访问时会出现错误:
SQL> select count(*) from t;
select count(*) from t;
*
第 1 行出现错误:
ORA-01578: ORACLE 数据块损坏 (文件号 2, 块号 1050)
ORA-01110: 数据文件 2: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\SZTYORA\EYGLE01.DBF'-- 通过dev工具及警告日志文件都可以发现损坏错误:......-- RMAN 的一个功能是在备份过程中可以发现损坏的数据块,也可以使用 RMAN 验证数据文件,以发现坏块:
RMAN> backup validate datafile 2;......-- 验证完成之后,警告日志及数据库中都会记录损坏的数据块信息,从数据库中查询一下:
SQL> select * from v$database_block_corruption where file#=2; FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTION_TYPE
---------- ---------- ---------- ------------------ ------------------
2 1204 1 0 CHECKSUM
2 1101 1 0 CHECKSUM
2 1409 1 0 CHECKSUM已用时间: 00: 00: 00.32已用时间: 00: 00: 00.17-- 现在可以通过备份来进行基于数据块级别的恢复:
RMAN> blockrecover datafile 2 block 1204 from backupset;
RMAN> blockrecover datafile 2 block 1101 from backupset;
RMAN> blockrecover datafile 2 block 1409 from backupset;
......-- 完成恢复之后,可以登录数据库查询:
SQL> select * from v$database_block_corruption where file#=2; FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTION_TYPE
---------- ---------- ---------- ------------------ ------------------
2 1050 1 0 CHECKSUM
SQL> select count(*) from t;-- 此时数据已经恢复,但是 block corruption 信息仍然记录在数据库中,直到下次 validate 才会清除这部分信息:
D:\> rmant target /......RMAN> backup validate datafile 2;......-- 此时从数据库中查询,坏块信息被清除。
SQL> select * from v$database_block_corruption where file#=2;
这位大虾:首先谢谢你的回答,但我的数据库不是归档模式,而且exp无法导出数据。exp:
EXP-00056: ORACLE error 376 encountered
ORA-00376: file 3 cannot be read at this time
ORA-01110: data file 3: '/oracle/oracle10g/oradata/sryx/sysaux01.dbf'
EXP-00000: Export terminated unsuccessfully