oracle block corrupted,ORA-01578: ORACLE data block corrupted (file # 9, block # 45729)
今天在实验的机子的oracle上的一张表中批量插入5000000条记录,在插入过程中途发生了表空间不够的情况,导致插入终止,在表空间上添加一个数据文件,对表中的数据进行查询,发生如下的错误:
SQL> select count(*) from book;
select count(*) from book
ORA-01578: ORACLE data block corrupted (file # 9, block # 45729)
ORA-01110: data file 9: 'F:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\CREDIT'
这是典型的数据库损坏的提示信息,解决方法:
当Oracle数据库出现坏块时,Oracle会在警告日志文件(alert_SID.log)中记录坏块的信息:
ORA-01578: ORACLE data block corrupted (file # 7, block # ;)
ORA-01110: data file ;: '/oracle1/oradata/V920/oradata/V816/users01.dbf’
其中,<AFN>代表坏块所在数据文件的绝对文件号,;代表坏块是数据文件上的第几个数据块
出现这种情况时,应该首先检查是否是硬件及操作系统上的故障导致Oracle数据库出现坏块。在排除了数据库以外的原因后,再对发生坏块的数据库对象进行处理。
1.确定发生坏块的数据库对象
SELECT tablespace_name,
segment_type,
owner,
segment_name
FROM dba_extents
WHERE file_id = ;
AND ; between block_id AND block_id+blocks-1;
2.决定修复方法
如果发生坏块的对象是一个索引,那么可以直接把索引DROP掉后,再根据表里的记录进行重建;
如果发生坏块的表的记录可以根据其它表的记录生成的话,那么可以直接把这个表DROP掉后重建;
如果有数据库的备份,则恢复数据库的方法来进行修复;
如果表里的记录没有其它办法恢复,那么坏块上的记录就丢失了,只能把表中其它数据块上的记录取出来,然后对这个表进行重建。
3.用Oracle提供的DBMS_REPAIR包标记出坏块
exec DBMS_REPAIR.SKIP_CORRUPT_BLOCKS(' ','');
4.使用Create table as select命令将表中其它块上的记录保存到另一张表上
create table corrupt_table_bak
as
select * from corrupt_table;
5.用DROP TABLE命令删除有坏块的表
drop table corrup_tatble;
6.用alter table rename命令恢复原来的表
alter table corrupt_table_bak
rename to corrupt_table;
7.如果表上存在索引,则要重建表上的索引
oracle block corrupted,ORA-01578: ORACLE data block corrupted (file # 9, block # 45729)相关推荐
- oracle修改数据前备份,Oracle 之利用BBED修改数据块SCN—-没有备份数据文件的数据恢复...
测试环境 OS:redhat6.6 oracle:12.1.0.2 BBED(OracleBlockBrowerandEDitor Tool),用来直接查看和修改数据文件数据的一个工具,是Oracle ...
- Oracle 错误代码(ORA)对照表
ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...
- Oracle 12C 利用Rman Duplicate搭建 Data Guard
环境(备库只需要安装数据库软件): 主库:192.168.1.100 OS: CentOS 7.3 X64 DB: ORACLE12.2.0.1 SID ...
- Oracle的tnsnames.ora配置(PLSQL Developer)
首先打开tnsnames.ora的存放目录,一般为D:\app\Administrator\product\11.2.0\client_1\network\admin,就看安装具体位置了. 步骤阅读 ...
- oracle错误01653,oracle 10g 错误 ORA 01653 的解决过程
oracle 10g 错误 ORA 01653 的解决过程 早上用户反应在操作用友NC时报错 ORA-01653 ,详细信息:ORA-01653: 表 NCV35.GL_DETAIL 无法通过 102 ...
- Oracle Livelabs实验: Setting Up Active Data Guard For On-Premises
本文是Oracle LiveLabs实验:Setting Up Active Data Guard For On-Premises 的过程记录. 实验步骤请参考这里. 因为是利用你自己的OCI云环境搭 ...
- oracle 重建spfile,linux下oracle重建spfileorcl.ora
数据库默认用spfile启动,可以指定用pfile启动,再创建spfile,不启动也可以用pfile创建spfile pfile在/u01/app/oracle/admin/orcl/pfile/in ...
- Oracle 11g Release 1 (11.1) Data Pump 导出模式
http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_export.htm#i1007114 本文内容 Data Pump 提供不同的导出模 ...
- Oracle 11g Release 1 (11.1) Data Pump 导入模式
http://docs.oracle.com/cd/B28359_01/server.111/b28319/dp_import.htm#i1007324 本文内容 导入最显着的特点之一就是导入的模式, ...
最新文章
- 大型AI已有自主意识了?LeCun开喷Open AI首席科学家
- Spring Cloud 加盟重量级成员Spring Cloud Alibaba,打造更符合中国国情的微服务体系...
- Springboot的slf4j的配置文件模板
- import javax.servlet.http.HttpServletRequest 提示错误
- .NET Windows服务应用程序
- “当了十年IT程序员,我转型做自动驾驶开发的这五年”
- 【iOS发展-44】通过案例谈iOS重构:合并、格式化输出、宏观变量、使用数组来存储数据字典,而且使用plist最终的知识...
- 来自运维伪大佬的叨叨
- python下载大文件mp4_python 实现视频流下载保存MP4的方法
- 加权最小二乘(wls)滤波算法原理及实现
- python同时赋值_Python 中变量赋值传递时的引用和拷贝
- w ndows7旗舰版网卡驱动,Win7网卡驱动64位离线安装包 免费版
- MATLAB符号运算——微分
- 百度 图像识别Api logo识别 基于java的Demo
- 建模方法(二)-组合优化问题的定义
- matlab的罗马数字怎么写好看图解,【我想知道1—100的罗马数字怎样写啊就是ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪ这些等】作业帮...
- Excel中怎么把经纬度记录转成经纬度数值形式
- MySQL 中的 “My” 是什么意思?
- 白话智能锁—深度分析干电池漏液问题
- 面试笔记:面经-瓜子
热门文章
- java模拟加速匀速减速_Android学习之 动画加速减速 匀速控制
- SQL Server 2008学习视频资源下载
- QN9021_Drive_Demo
- 【托业】新托业全真题库---TEST1
- Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】
- 阿里,百度,腾讯招聘 Java 程序员的技术标准,你达到要求了吗?
- upper_bound()函数的使用
- QNX Neutrino 虚拟机
- 一步一步学Bootstrap 4(2)-- PhotoX项目
- python可视化51|最常用4个分组( Groups)关系图