RE: Corrupt unused blocks in sysaux
Date: Mon, 13 Feb 2012 22:02:40 -0500
Can you move the objects from sysaux to a new tablespace, drop the sysaux tablespace (have to be sysdba I upgrade mode I believe), and rename the new one to sysaux? I'd obviously test this process in another non production environment first.
From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of Walker, Jed S
Sent: Monday, February 13, 2012 6:18 PM
Subject: Corrupt unused blocks in sysaux
Someone just brought me to a system that recently had an outage. A disk had gone bad and been replaced (supposedly RAID1). The database was restarted and appears to be working normally; however, there are some corrupt blocks. I first saw this in the alert log and then verified with dbv. So, now I have corrupt blocks in SYSAUX that are not used by an object. Unfortunately there are no RMAN backups as it appears they use streams to replicate to another database.
I tried creating an object in the sysaux tables so I could allocate extents to encompass the blocks and then insert rows hoping to reformat them; however, when I tried to allocate over the blocks I get a corruption message. I'm thinking these are corrupt on disk.
I re-found dbms_repair but the options for marking blocks corrupt seem to be if the blocks are in an object, not free.
Any ideas on what else I can do? I'd really like to just mark off the blocks and be done with it. (This project is hopefully obsolete later this year).
DBVERIFY - Verification starting : FILE = /var/local/u01/app/oracle/oradata/orcl/sysaux.dbf Page 8450 is influx - most likely media corrupt Page 8451 is marked corrupt Page 8452 is marked corrupt Page 8453 is marked corrupt Page 8454 is marked corrupt
select segment_name, segment_type, owner from dba_extents where file_id = 3 and (
8451 between block_id and block_id + blocks -1 or 8452 between block_id and block_id + blocks -1 or 8453 between block_id and block_id + blocks -1 or 8454 between block_id and block_id + blocks -1)
no rows selected
SQL> create table remcorr (n number, c varchar2(4000)) nologging SQL> tablespace sysaux;
SQL> alter table remcorr allocate extent;
SQL> alter table remcorr allocate extent (size 200m);
alter table remcorr allocate extent (size 200m)
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 3, block # 8451) ORA-01110: data file 3: '/var/local/u01/app/oracle/oradata/orcl/sysaux.dbf'
Jed S. Walker, OCP
Principal Engineer, Databases
National Video Advanced Services
P Please only print this email if necessary. Consider the environment and cost.
This electronic mail transmission and any accompanying documents contain information belonging to the sender, which may be confidential and legally privileged. If you are not the intended recipient, any disclosure, copying, distribution or action taken in reliance on the message is strictly prohibited. If you have received this message in error, please delete it immediately. Thank You
Checked by AVG - www.avg.com
Version: 2012.0.1913 / Virus Database: 2112/4807 - Release Date: 02/13/12
Checked by AVG - www.avg.com
Version: 2012.0.1913 / Virus Database: 2112/4808 - Release Date: 02/13/12
http://www.freelists.org/webpage/oracle-l Received on Mon Feb 13 2012 - 21:02:40 CST