ORA-19566: exceeded limit of 999 corrupt blocks for file

Hi All,
I am new to Oracle RMAN & RAC Administration. Looking for your support to solve the below issue.
We have 2 disk groups - +ETDATA & +ETFLASH in our 3 node RAC environments in which RMAN is configured in node-2 to take backup. We do not have RMAN catalog and the RMAN is fetching information from control file.
Recently, the backup failed with the error ORA-19566: exceeded limit of 999 corrupt blocks for file +ETFLASH/datafile/users.6187.802328091.
We found that the datafiles are present in both disk groups and from the control file info, we got to know that the datafiles in +ETDATA are currently in use and +ETFLASH is having old datafiles.
RMAN> show all;
RMAN configuration parameters for database with db_unique_name LABWRKT are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+ETFLASH/CONTROLFILE/snapcf_LABWRKT.f';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+ETFLASH/controlfile/snapcf_labwrkt.f';
Above configuration shows that SNAPSHOT CONTROLFILE is pointing to +ETFLASH. So I changed the configuration with the SNAPSHOT CONTROLFILE points to '+ETDATA/controlfile/snapcf_labwrkt.f'. At the end of backup, SNAPSHOT file was created in +ETDATA and I was expecting it to be the copy of control file being used which has dbf located in +ETDATA. But still the backup was pointing to old datafiles in +ETFLASH. Since we dont have RMAN catalog, resync also is not possible.
When I ran it manually, it was successfull without any error and was pointing to the exisiting datafiles.
RMAN> backup database plus archivelog all;
I hope the issue will get resolved if the RMAN points only to the datafiles present in +ETDATA. If I am correct, please let me know how can i make it possible? Also please explain me why the newly created snapshot file does not reflect the existing control file info?

Hi,
I am getting an error from the DBA Planning Calendar every time the job ...
So when was your last successfull backup of this datafile. Check if still available.
If this is some time ago, and may be you are currently without any backup, try to backup without rman at once,
to have at least something to work with in case you get additional errors right now.
Then you need to find out what object is affected. You are on the right way already. You need the statement,
that goes to dba_extents to check what object the block belongs to.
Has the DB been recovered recently, so the block might possibly belong to an index created with nologging ?
(this could be the case on BW systems).
If the last good backup of that file is still available and the redologs belonging to this backup up to current time are as well, you could try to recover that file. But I'd do this only after a good backup without rman and by not destroying the original file.
If the last good backup was an rman backup, you can do a verify restore of that datafile in advance, to check if the corruption is really not inside the file to be restored.
Check out the -w (verify) option of brrestore first, to understand how it works.
(I am not sure it this is already available in version 7.00, may be you need to switch to 7.10 or 7.20)
brrestore -c -m /oracle/SHD/sapdata4/sr3_16/sr3.data16  -b xxxxxxxx.ffr -w only_rmv
You should do a dbv check of that file as well, to check if it gets more information. I.E if more blocks are
affected. rman stops right after the first corruption, but usually you have a couple of those in line, esp. if these are
zeroed ones. (This one would also work with version 7.00 brtools)
brbackup -c -u / -t online -m /oracle/SHD/sapdata4/sr3_16/sr3.data16 -w only_dbv
Good luck.
Volker

Similar Messages

  • FullOffline Backup - ORA-19566: exceeded limit of 0 corrupt blocks for file

    Dear SAP gurus,
    I am getting an error from the DBA Planning Calendar every time the job for "Full Offline backup" is run. And it is always as you can see from the log on the same file "oracle/SHD/sapdata4/sr3_16/sr3.data16".
    The oracle error is the following:
    ORA-19566: exceeded limit of 0 corrupt blocks for file /oracle/SHD/sapdata4/sr3_16/sr3.data16
    I found the SAP Note 969192 - RMAN Backup of SYSTEM tablespace terminates with ORA-19566
    but it does no apply because this is for the tablespace SYSTEM and not PSAPSR3.
    Please find below the log:
    BR0051I BRBACKUP 7.00 (46)
    BR0055I Start of database backup: begomwsv.ffd 2011-08-17 10.01.37
    BR0484I BRBACKUP log file: /oracle/SHD/sapbackup/begomwsv.ffd
    BR0477I Oracle pfile /oracle/SHD/102_64/dbs/initSHD.ora created from spfile /oracle/SHD/102_64/dbs/spfileSHD.ora
    BR0101I Parameters
    Name                           Value
    oracle_sid                     SHD
    oracle_home                    /oracle/SHD/102_64
    oracle_profile                 /oracle/SHD/102_64/dbs/initSHD.ora
    sapdata_home                   /oracle/SHD
    sap_profile                    /oracle/SHD/102_64/dbs/initSHD.sap
    backup_mode                    FULL
    backup_type                    offline_force
    backup_dev_type                disk
    backup_root_dir                /mnt/backup/oracle/SHD
    compress                       no
    disk_copy_cmd                  rman
    cpio_disk_flags                -pdcu
    exec_parallel                  0
    rman_compress                  no
    system_info                    shdadm/orashd eccdev01 Linux 2.6.16.60-0.87.1-smp #1 SMP Wed May 11 11:48:12 UTC 2011 x86_64
    oracle_info                    SHD 10.2.0.4.0 8192 17654 1114483454 eccdev01 UTF8 UTF8
    sap_info                       700 SAPSR3 0002LK0003SHD0011Y01548735220015Maintenance_ORA
    make_info                      linuxx86_64 OCI_102 Jan 29 2010
    command_line                   brbackup -u / -jid FLLOF20110817100136 -c force -t offline_force -m full -p initSHD.sap
    BR0116I ARCHIVE LOG LIST before backup for database instance SHD
    Parameter                      Value
    Database log mode              No Archive Mode
    Automatic archival             Disabled
    Archive destination            /oracle/SHD/oraarch/SHDarch
    Archive format                 %t_%s_%r.dbf
    Oldest online log sequence     17651
    Next log sequence to archive   17654
    Current log sequence           17654            SCN: 1114483454
    Database block size            8192             Thread: 1
    Current system change number   1114501246       ResetId: 664011854
    BR0118I Tablespaces and data files
    BR0202I Saving /oracle/SHD/sapdata3/sr3_15/sr3.data15
    BR0203I to /mnt/backup/oracle/SHD/begomwsv/sr3.data15 ...
    #FILE..... /oracle/SHD/sapdata3/sr3_15/sr3.data15
    #SAVED.... /mnt/backup/oracle/SHD/begomwsv/sr3.data15  #1/15
    BR0280I BRBACKUP time stamp: 2011-08-17 10.28.42
    BR0063I 15 of 48 files processed - 44100.117 of 121180.346 MB done
    BR0204I Percentage done: 36.39%, estimated end time: 11:15
    BR0001I ******************________________________________
    BR0202I Saving /oracle/SHD/sapdata4/sr3_16/sr3.data16
    BR0203I to /mnt/backup/oracle/SHD/begomwsv/sr3.data16 ...
    BR0278E Command output of 'SHELL=/bin/sh /oracle/SHD/102_64/bin/rman nocatalog':
    Recovery Manager: Release 10.2.0.4.0 - Production on Wed Aug 17 10:28:42 2011
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    RMAN>
    RMAN> connect target *
    connected to target database: SHD (DBID=1683093070, not open)
    using target database control file instead of recovery catalog
    RMAN> *end-of-file*
    RMAN>
    host command complete
    RMAN> 2> 3> 4> 5> 6>
    allocated channel: dsk
    channel dsk: sid=223 devtype=DISK
    executing command: SET NOCFAU
    Starting backup at 17-AUG-11
    channel dsk: starting datafile copy
    input datafile fno=00019 name=/oracle/SHD/sapdata4/sr3_16/sr3.data16
    released channel: dsk
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03009: failure of backup command on dsk channel at 08/17/2011 10:30:30
    ORA-19566: exceeded limit of 0 corrupt blocks for file /oracle/SHD/sapdata4/sr3_16/sr3.data16
    RMAN>
    Recovery Manager complete.
    BR0280I BRBACKUP time stamp: 2011-08-17 10.30.30
    BR0279E Return code from 'SHELL=/bin/sh /oracle/SHD/102_64/bin/rman nocatalog': 1
    BR0536E RMAN call for database instance SHD failed
    BR0280I BRBACKUP time stamp: 2011-08-17 10.30.30
    BR0506E Full database backup (level 0) using RMAN failed
    BR0222E Copying /oracle/SHD/sapdata4/sr3_16/sr3.data16 to/from /mnt/backup/oracle/SHD/begomwsv failed due to previous errors
    BR0280I BRBACKUP time stamp: 2011-08-17 10.30.34
    BR0307I Shutting down database instance SHD ...
    BR0280I BRBACKUP time stamp: 2011-08-17 10.30.34
    BR0308I Shutdown of database instance SHD successful
    BR0280I BRBACKUP time stamp: 2011-08-17 10.30.34
    BR0304I Starting and opening database instance SHD ...
    BR0280I BRBACKUP time stamp: 2011-08-17 10.30.47
    BR0305I Start and open of database instance SHD successful
    Do you guys have any idea on how to solve this issue??
    Thanks in advance, Marc

    Hi,
    I am getting an error from the DBA Planning Calendar every time the job ...
    So when was your last successfull backup of this datafile. Check if still available.
    If this is some time ago, and may be you are currently without any backup, try to backup without rman at once,
    to have at least something to work with in case you get additional errors right now.
    Then you need to find out what object is affected. You are on the right way already. You need the statement,
    that goes to dba_extents to check what object the block belongs to.
    Has the DB been recovered recently, so the block might possibly belong to an index created with nologging ?
    (this could be the case on BW systems).
    If the last good backup of that file is still available and the redologs belonging to this backup up to current time are as well, you could try to recover that file. But I'd do this only after a good backup without rman and by not destroying the original file.
    If the last good backup was an rman backup, you can do a verify restore of that datafile in advance, to check if the corruption is really not inside the file to be restored.
    Check out the -w (verify) option of brrestore first, to understand how it works.
    (I am not sure it this is already available in version 7.00, may be you need to switch to 7.10 or 7.20)
    brrestore -c -m /oracle/SHD/sapdata4/sr3_16/sr3.data16  -b xxxxxxxx.ffr -w only_rmv
    You should do a dbv check of that file as well, to check if it gets more information. I.E if more blocks are
    affected. rman stops right after the first corruption, but usually you have a couple of those in line, esp. if these are
    zeroed ones. (This one would also work with version 7.00 brtools)
    brbackup -c -u / -t online -m /oracle/SHD/sapdata4/sr3_16/sr3.data16 -w only_dbv
    Good luck.
    Volker

  • ORA-19566: exceeded limit of 0 corrupt blocks

    Hi All,
    We have been encountering some issues with RMAN backup; it has been erroring out with same errors (max corrupt blocks). As of now, I ran the db verify for affected files and found that indexes are failing. When I tried to find out the indexes from extent views, I was unable to find it. Looks like these blocks are in free space as I found it and also the V$backup corruption view shows the logical corruption.
    Waiting for you suggestion....
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
    PL/SQL Release 10.2.0.3.0 - Production
    CORE 10.2.0.3.0 Production
    TNS for HPUX: Version 10.2.0.3.0 - Production
    NLSRTL Version 10.2.0.3.0 - Production
    RMAN LOG:
    channel a3: starting piece 1 at 14-DEC-09
    RMAN-03009: failure of backup command on a2 channel at 12/14/2009 05:43:42
    ORA-19566: exceeded limit of 0 corrupt blocks for file /ub834/oradata/TERP/applsysd142.dbf
    continuing other job steps, job failed will not be re-run
    channel a2: starting incremental level 0 datafile backupset
    channel a2: specifying datafile(s) in backupset
    including current control file in backupset
    channel a2: starting piece 1 at 14-DEC-09
    channel a1: finished piece 1 at 14-DEC-09
    piece handle=TERP_1769708180_level0_292_1_1_20091213065437.rmn tag=TAG20091213T065459 comment=API Version 2.0,MMS Version 5.0.0.0
    channel a1: backup set complete, elapsed time: 01:14:45
    channel a2: finished piece 1 at 14-DEC-09
    piece handle=TERP_1769708180_level0_296_1_1_20091213065437.rmn tag=TAG20091213T065459 comment=API Version 2.0,MMS Version 5.0.0.0
    channel a2: backup set complete, elapsed time: 00:24:54
    RMAN-03009: failure of backup command on a4 channel at 12/14/2009 06:14:33
    ORA-19566: exceeded limit of 0 corrupt blocks for file /ub834/oradata/TERP/applsysd143.dbf
    continuing other job steps, job failed will not be re-run
    released channel: a1
    released channel: a2
    released channel: a3
    released channel: a4
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03009: failure of backup command on a3 channel at 12/14/2009 06:41:00
    ORA-19566: exceeded limit of 0 corrupt blocks for file /ub806/oradata/TERP/icxd01.dbf
    Recovery Manager complete.
    Thanks,
    Vimlendu
    Edited by: Vimlendu on Dec 20, 2009 10:27 AM

    dbv file=/ora/oradata/binadb/RAT_TRANS_IDX01.dbf blocksize=8192
    The result:
    DBVERIFY: Release 10.2.0.3.0 - Production on Thu Nov 20 11:14:01 2003
    (c) Copyright 2000 Oracle Corporation. All rights reserved.
    DBVERIFY - Verification starting : FILE =
    /ora/oradata/binadb/RAT_TRANS_IDX01.dbf
    Block Checking: DBA = 75520968, Block Type = KTB-managed data block
    **** row 80: key out of order
    ---- end index block validation
    Page 23496 failed with check code 6401
    DBVERIFY - Verification complete
    Total Pages Examined : 34560
    Total Pages Processed (Data) : 1
    Total Pages Failing (Data) : 0
    Total Pages Processed (Index): 31084
    Total Pages Failing (Index): 1
    Total Pages Processed (Other): 191
    Total Pages Empty : 3284
    Total Pages Marked Corrupt : 0
    Total Pages Influx : 0
    Seems like I have 1 page failing. I try to run this script:
    select segment_type, segment_name, owner
    from sys.dba_extents
    where file_id = 18 and 23496 between block_id
    and block_id + blocks - 1;
    No rows returned.
    Then, I try to run this script:
    Select tablespace_name, file_id, block_id, bytes
    from dba_free_space
    where file_id = 18
    and 23496 between block_id and block_id + blocks - 1
    Resulting 1 row.
    Seems like I have the possible corrupt block on unused space.
    Edited by: Vimlendu on Dec 20, 2009 2:30 PM
    Edited by: Vimlendu on Dec 20, 2009 2:41 PM

  • ORA-19510 failed to set size of 12288 blocks for file "/sisdev01/dbs/log01b.dbf

    My company's harddisk has corrupted and files under /sisdev01/dbs/ cannot list and don't have any backup, then I have to create a new database again after changing the disk and recovering the data. I plan to reuse the /sisdev01/dbs/ as following.
    I fail in creating database by using the following script:
    CREATE DATABASE SISDEV01
         LOGFILE GROUP 1 '/sisdev01/dbs/log01a.dbf' SIZE 10M
         ,     GROUP 1 '/sisdev01/dbs/log01b.dbf' SIZE 10M
         ,     GROUP 2 '/sisdev01/dbs/log02a.dbf' SIZE 10M
         ,     GROUP 2 '/sisdev01/dbs/log02b.dbf' SIZE 10M
         NOARCHIVELOG
         CHARACTER SET ZHT16BIG5
         NATIONAL CHARACTER SET ZHT16BIG5
         DATAFILE '/sisdev01/dbs/system01.dbf'      
              SIZE 210M AUTOEXTEND OFF
         , '/sisdev01/dbs/rbs01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev01/dbs/temp01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev01/dbs/users01.dbf'
    SIZE 1050M AUTOEXTEND OFF
         , '/sisdev01/dbs/ts_index_ivr01.dbf'
    SIZE 105M AUTOEXTEND OFF
         , '/sisdev01/dbs/ts_ivr01.dbf'
    SIZE 21M AUTOEXTEND OFF
         , '/sisdev01/dbs/ts_ems01.dbf'
    SIZE 21M AUTOEXTEND OFF
         , '/sisdev01/dbs/ts_index_ems01.dbf'
    SIZE 21M AUTOEXTEND OFF
    but I receive error message:
    CREATE DATABASE SISDEV01
    ORA-01501: CREATE DATABASE failed
    ORA-19510: failed to set size of 12288 blocks for file "/sisdev01/dbs/log01b.dbf
    " (blocksize=512)
    ORA-27059: skgfrsz: could not reduce file size
    IBM AIX RISC System/6000 Error: 28: No space left on device
    Additional information: 1
    ORA-19502: write error on file "/sisdev01/dbs/log01b.dbf", blockno 8193 (blocksi
    ze=512)
    ORA-27063: skgfospo: number of bytes read/written is incorrect
    IBM AIX RISC System/6000 Error: 28: No space left on device
    Additional information: -1
    Additional information: 524288
    Here is the content of my parameter file:
    db_file_multiblock_read_count = 8 # SMALL
    # db_file_multiblock_read_count = 16 # MEDIUM
    # db_file_multiblock_read_count = 32 # LARGE
    # db_block_buffers = 60 # SMALL
    db_block_buffers = 550 # MEDIUM
    # db_block_buffers = 3200 # LARGE
    # shared_pool_size = 3500000 # SMALL
    shared_pool_size = 5000000 # MEDIUM
    # shared_pool_size = 9000000 # LARGE
    log_checkpoint_interval = 10000
    processes = 400 # SMALL
    # processes = 100 # MEDIUM
    # processes = 200 # LARGE
    dml_locks = 100 # SMALL
    # dml_locks = 200 # MEDIUM
    # dml_locks = 500 # LARGE
    # log_buffer = 8192 # SMALL
    log_buffer = 32768 # MEDIUM
    # log_buffer = 163840 # LARGE
    # audit_trail = true # if you want auditing
    # timed_statistics = true # if you want timed statistics
    max_dump_file_size = 10240 # limit trace file size to 5 Meg each
    # Uncommenting the line below will cause automatic archiving if archiving has
    # been enabled using ALTER DATABASE ARCHIVELOG.
    log_archive_start = false
    log_archive_dest = /u01/sisdev01_arch
    log_archive_format = arch%s.dbf
    # If using private rollback segments, place lines of the following
    # form in each of your instance-specific init.ora files:
    rollback_segments = (r01, r02)
    # If using public rollback segments, define how many
    # rollback segments each instance will pick up, using the formula
    # # of rollback segments = transactions / transactions_per_rollback_segment
    # In this example each instance will grab 40/10 = 4:
    transactions = 40
    transactions_per_rollback_segment = 10
    # Global Naming -- enforce that a dblink has same name as the db it connects to
    global_names = TRUE
    # Edit and uncomment the following line to provide the suffix that will be
    # appended to the db_name parameter (separated with a dot) and stored as the
    # global database name when a database is created. If your site uses
    # Internet Domain names for e-mail, then the part of your e-mail address after
    # the '@' is a good candidate for this parameter value.
    # db_domain = us.acme.com # global database name is db_name.db_domain
    # define two control files by default
    # control_files = (/sisuat02/dbs/ctl01.ora,/sisuat02/dbs/ctl02.ora)
    control_files = (/sisdev01/dbs/ctl01.ora,/sisdev01/dbs/ctl02.ora)
    DB_NAME=sisdev01
    DB_BLOCK_SIZE=8192
    # DB_BLOCK_LRU_LATCHES=4
    DB_FILES=500
    DB_DOMAIN=shk.sony.com.hk
    background_dump_dest = /u01/dba/sisdev01/log
    user_dump_dest = /u01/dba/sisdev01/log
    NLS_LANGUAGE="traditional chinese"
    NLS_TERRITORY="hong kong"
    NLS_CURRENCY="HK$ "
    NLS_DATE_FORMAT="DD/MM/YYYY"
    NLS_NUMERIC_CHARACTERS=".,"
    utl_file_dir = *
    compatible = 8.1.5
    remote_os_authent = TRUE
    sort_area_size = 65536
    sort_area_retained_size = 65536
    It always fail during creation of logfile log01b.dbf.
    I have tried to send same size logfiles to the directory but it fails too when inserting the second logfile log01b.dbf too.
    NETOUT: 10054452 Error writing file: Error 0
    Can anyone kindly help me?

    This may be a blindingly obvious question but do you have sufficient disk space on /sisdev01/dbs/ partition?

  • ORA-27044: unable to write the header block of file / IBM AIX RISC System/6

    We are getting an error like this...
    Oracle 11.2.0.2
    AIX 5.3
    Error:
    CREATE CONTROLFILE REUSE DATABASE "CLMST" RESETLOGS NOARCHIVELOG
    ERROR at line 1:
    ORA-01503: CREATE CONTROLFILE failed
    ORA-00200: control file could not be created
    ORA-00202: control file: '/clmst02/UAT/oradata/control/control01.ctl'
    ORA-27044: unable to write the header block of file
    IBM AIX RISC System/6000 Error: 89: Invalid file system control data detected
    Additional information: 3
    Additional information: -1
    Additional information: 1

    ORA-09817 IBM AIX RISC System/6000 Error: 89
    Oracle 11.2.0.2
    AIX 5.3
    Related Errors:-
    Mon Nov 05 18:33:51 2012
    ARC3 started with pid=30, OS id=954622
    ARC1: Becoming the 'no FAL' ARCH
    ARC1: Becoming the 'no SRL' ARCH
    ARC2: Becoming the heartbeat ARCH
    Errors in file /clmst01/UAT/oracode/app/oracle/diag/rdbms/clmst/clmst/trace/clmst_ora_2514960.trc (incident=17053):
    ORA-00600: internal error code, arguments: [kccugg_end], [], [], [], [], [], [], [], [], [], [], []
    Errors in file /clmst01/UAT/oracode/app/oracle/diag/rdbms/clmst/clmst/trace/clmst_m000_2105586.trc:
    ORA-00313: open failed for members of log group 3 of thread 1
    ORA-00312: online log 3 thread 1: '/clmst02/UAT/oradata/redo/redo03A.log'
    ORA-27037: unable to obtain file status
    IBM AIX RISC System/6000 Error: 2: No such file or directory
    CREATE CONTROLFILE REUSE DATABASE "CLMST" RESETLOGS NOARCHIVELOG
    ERROR at line 1:
    ORA-01503: CREATE CONTROLFILE failed
    ORA-00200: control file could not be created
    ORA-00202: control file: '/clmst02/UAT/oradata/control/control01.ctl'
    ORA-27044: unable to write the header block of file
    IBM AIX RISC System/6000 Error: 89: Invalid file system control data detected
    Additional information: 3
    Additional information: -1
    Additional information: 1
    Cause:-
    Your /clmst02/ mount point might be corrupted.
    Check:-
    fsck /clmst02
    The current volume is: /dev/fslv00
    File system is currently mounted.
    Primary superblock is valid.
    fsck: Performing read-only processing does not produce dependable results.
    *** Phase 1 - Initial inode scan
    *** Phase 2 - Process remaining directories
    *** Phase 3 - Process remaining files
    *** Phase 4 - Check inode allocation map
    File system inode map is corrupt (NOT FIXED)
    fsck: 0507-278 Cannot continue.
    File system is currently mounted.
    fsck: Performing read-only processing does not produce dependable results.
    Fix:-
    Either you can change the file location to another mount points or shutdown the database and run the fsck on /clmst02 mount point to fix the corrupted one & start the database.
    Fix:-
    Recreate the affected Redolog files
    alter database add logfile group 3 (
    '/clmst02/UAT/oradata/redo/redo03A.log',
    '/clmst03/UAT/oradata2/redo/redo03B.log',
    '/clmst04/UAT/oradata3/redo/redo03C.log') size 50m reuse;

  • ORA-27047: unable to read the header block of file

    My Windows 2003 crashed which was running Oracle XE.
    I installed Oracle XE on Windows XP on another machine.
    I coped my D:\oracle\XE10g\oradata folder of Win2003 to the same location in WinXP machine.
    When I start the database in WinXP using SQLPLUS i get the following message
    SQL> startup
    ORACLE instance started.
    Total System Global Area 146800640 bytes
    Fixed Size 1286220 bytes
    Variable Size 62918580 bytes
    Database Buffers 79691776 bytes
    Redo Buffers 2904064 bytes
    ORA-00205: error in identifying control file, check alert log for more info
    I my D:\oracle\XE10g\app\oracle\admin\XE\bdump\alert_xe I found following errors
    starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
    starting up 4 shared server(s) ...
    Oracle Data Guard is not available in this edition of Oracle.
    Wed Apr 25 18:38:36 2007
    ALTER DATABASE MOUNT
    Wed Apr 25 18:38:36 2007
    ORA-00202: control file: 'D:\ORACLE\XE10G\ORADATA\XE\CONTROL.DBF'
    ORA-27047: unable to read the header block of file
    OSD-04001: invalid logical block size (OS 2800189884)
    Wed Apr 25 18:38:36 2007
    ORA-205 signalled during: ALTER DATABASE MOUNT...
    ORA-00202: control file: 'D:\ORACLE\XE10G\ORADATA\XE\CONTROL.DBF'
    ORA-27047: unable to read the header block of file
    OSD-04001: invalid logical block size (OS 2800189884)
    Please help.
    Regards,
    Zulqarnain

    Try to install win 2003 server software, do the fresh installation of oracle software, now copy the datafiles and controlfiles to same locations as you did on winxp.
    get back to us, if still not out of the woods. I still doubt that a simple restore would do the trick, since you doing it across different platforms, might be I can be wrong, but this is what I personally feel, you not able to start the database on winxp.
    hare krishna
    Alok

  • Without exceeding the credit limit sales order is blocked for credit check.

    Dear Experts,
    In my production server as well as quality server sales order is blocked for dynamic credit check.But the fact is that the credit limit is not exceeded.only 18% of the credit limit is used by the cutomer.The same problem is there in quality server also.
    Kindly help.
    Best Regards
    Biju

    Dear Biju,
    Check whether the customer code has exceeded credit limit in any other credit control area.
    Run the following programs.
    RVKRED77 , RVKRED88 , F.28
    After credit re-organisation, please check again and revert back.
    Also would like to ask you whether you have made any recent changes in the credit master data [FD32].
    Thanks & Regards,
    Hegal K Charles

  • RMAN backup in RAC failing with error ORA-19566

    Hi all, i have 2 node RAC and i am trying to take rman backup of the database which is in ASM filesystem.
    There is a corruption in SYSAUX file and rman is failing to take backup of the sysaux datafile and error thrown at the end like
    piece handle=/home/oracle/orabackup/BLOOM_LVL0_20120627_1qnejueh_s58_p1 tag=TAG20120627T185538 comment=NONE
    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:56
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03009: failure of backup command on ORA_DISK_1 channel at 06/27/2012 18:56:17
    *ORA-19566: exceeded limit of 0 corrupt blocks for file +DATA/bloom/datafile/sysaux.257.775475317*
    Then i tried to validate the backup in rman of the datafile sysaux nad fired the following query
    SQL> SELECT * FROM v$database_block_corruption;
    FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
    3 32011 1 0 ALL ZERO
    3 32049 40 0 ALL ZERO
    3 32034 1 0 ALL ZERO
    3 28964 1 1399837 LOGICAL
    3 32015 2 0 ALL ZERO
    and found all the blocks in the table WRH$_SQL_PLAN.
    Then dropped the table, and tried to take backup of the database and it is failing again with the same error..
    ANY SOLUTION TO TAKE BACKUP OF THE DATABASE.
    anyhow we can SET MAXCORRUPT FOR DATAFILE 3 to value, but does this works all time...
    Thanks in advance,
    TEJAS

    Both are good suggestions, but
    Osama-mustafa wrote:
    RMAN> blockrecover datafile 5 block 2684; -- Fix Eror That ship has already sailed:
    TEJAS_DBA wrote:
    And Yes this is the first time i am taking backup on the database.And:
    Osama-mustafa wrote:
    Or Skip Option
    Like
    RMAN> RUN{
    2> SET MAXCORRUPT FOR DATAFILE 1,3 to 1;
    3> BACKUP DATABASE;
    4> }The OP was aware of this option and hopefully was able to get at least some sort of a backup eventually. But as for the dropped WRH$_SQL_PLAN, TEJAS is, I will use the word "braver" than most. And as often is the case, Dan Morgan offered the only bit of sensible advise.
    Open an SR.
    Good luck.

  • Corrupted block rman

    Hi
    As far as I know, if rman finds block corruption, it will terminate the backup session.
    However, in my scenerio, rman skipped the corrupted block and continue taking backup of remaining datafiles.
    What is the reason for this?
    Note that, I didnt use maxcorrupt in rman script.
    The below is the end of the logfile:
    channel t4: backup set complete, elapsed time: 01:02:50
    released channel: t1
    released channel: t2
    released channel: t3
    released channel: t4
    released channel: t5
    released channel: t6
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03009: failure of backup command on t2 channel at 03/20/2010 17:29:52
    ORA-19566: exceeded limit of 0 corrupt blocks for file /dbs02/prd/mis_refrence.dbf01
    Recovery Manager complete.

    Hi,
    RMAN is terminated only when it does not find the data file etc. But it does not terminate due to block corruption.
    See the following excerpts from the following oracle document link.
    http://download-west.oracle.com/docs/cd/B14117_01/server.101/b10734/rcmconc1.htm#1016108
    RMAN detects and responds to two primary types of backup errors: I/O errors and corrupt blocks. Any I/O errors that RMAN encounters when reading files or writing to the backup pieces or image copies cause RMAN to terminate the backup jobs. For example, if RMAN tries to back up a datafile but the datafile is not on disk, then RMAN terminates the backup. If multiple channels are being used, or redundant copies of backups are being created, RMAN may be able to continue the backup without user intervention.
    If BACKUP AS BACKUPSET creates more than one complete backup set and an error occurs, then RMAN needs to rewrite the backup sets that it was writing at the time of the error. However, it retains any backup sets that it successfully wrote before terminating. The NOT BACKED UP SINCE option of the BACKUP command restarts a backup that partially completed, backing up only files that did not get backed up.
    RMAN copies datafile blocks that are already identified as corrupt into the backup. If RMAN encounters datafile blocks that have not already been identified as corrupt, then RMAN stops the backup unless SET MAXCORRUPT has been used. Setting MAXCORRUPT allows a specified number of previously undetected block corruptions in datafiles during the execution of an RMAN BACKUP command. If RMAN detects more than this number of corruptions while taking the backup, then the command terminates. The default limit is zero, meaning that RMAN does not tolerate corrupt blocks by default.
    When RMAN finds corrupt blocks, until it finds enough to exceed the MAXCORRUPT limit, it writes the corrupt blocks to the backup with a reformatted header indicating that the block has media corruption. If the backup completes without exceeding MAXCORRUPT,then the database records the address of the corrupt blocks and the type of corruption in the control file. Access these records through the V$DATABASE_BLOCK_CORRUPTION view. Note that if more than MAXCORRUPT corrupt blocks are found, the V$DATABASE_BLOCK_CORRUPTION view is not populated. In such a case, you should set MAXCORRUPT higher and re-run the command to identify the corrupt blocks.
    Regards
    Edited by: skvaish1 on Mar 24, 2010 4:39 PM

  • RMAN backup got failed with the error ORA-19566

    Hi,
    One of database, while taking backup using RMAN, it failed with the following error:
    RMAN-03009: failure of backup command on DISK4 channel at 11/28/2012 09:47:29
    ORA-19566: exceeded limit of 0 corrupt blocks for file <faile_name>
    I used DBV to identify the number of blocks corrupted.
    I referred the Metalink iD 457422.1 & 336133.1. But it did not help since the corrupted blocks have got object in it.
    I could able to find the object as well. it is one of the table in the datafile.
    I used 'ALTER TABLE ... MOVE..' command to see if that helps. But again getting the same error while taking the backup and corrupted blocks still exists.
    DB Version : 10.2.0.5
    OS Version : RHEL 5.6
    Please help me out to get this fixed.

    Here it is:
    SQL> Select * from v$database_block_corruption ;
    FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTION_TYPE
    13 3988352 128 0 ALL ZERO

  • SOLR Commit (exceeded limit of maxWarmingSearchers=4)

    My understanding of the following error, "exceeded limit of maxWarmingSearchers=4", when indexing collections, is that I am committing too often. I do not pass in autoCommit="no", which to me means that it committed the changes each and every time cfindex was executed. I am looping over a large collection of information, cfindexing with each loop. If I do pass in autoCommit="no", when and how do I commit those changes? Can I place a "cfindex autoCommit='yes'" after the loop has finished to commit all those changes? What is the best way to do this?

    You should use "MAXCORRUPT" option in rman.
    For more details about this error and solutiones, please check:
    http://heliosguneserol.wordpress.com/2012/07/03/ora-19566-exceeded-limit-of-0-corrupt-blocks/
    http://arjudba.blogspot.com.es/2008/05/ora-19566-exceeded-limit-of-0-corrupt.html
    http://www.runningoracle.com/product_info.php?products_id=397

  • Corrupt blocks ???

    During backup it appeared this error, what it can be wrong?
    RMAN> RUN{
    2> SHUTDOWN IMMEDIATE
    3> STARTUP MOUNT
    4> ALLOCATE CHANNEL disk1 TYPE DISK FORMAT 'D:\ORACLE - BKP\DF_%d_%s_%t_%U.DBF';
    5> CONFIGURE CONTROLFILE AUTOBACKUP ON;
    6> BACKUP DATABASE PLUS ARCHIVELOG TAG 'BACKUP FULL';
    7> ALTER DATABASE OPEN;
    8> }
    To use the archive of control of the data base of destination in time of the catsslogo of recovery
    Database closed
    Database dismounted
    Closing of Oracle instance
    hardwired to the data base of destination (not initiated)
    initiated Oracle instance
    Database mounted
    Total Global Area of the System 135338868 bytes
    Fixed Size 453492 bytes
    Variable Size 109051904 bytes
    Database Buffers 25165824 bytes
    Redo Buffers 667648 bytes
    Channel Allocate: disk1
    Channel disk1: sid=9 devtype=DISK
    parameters of old configuration RMAN :
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    new parameters of configuration RMAN :
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    The new parameters of configuration RMAN had been stored successfully
    Initiating backup in 04/04/06
    Specification backup in 04/04/06 does not correspond to none log of filling in the
    Finished catalogue of recovery
    Initiating backup in 04/04/06
    channel disk1: Initiating joint of backups of the archive of data full
    channel disk1: Specifying files of data in the set of backups
    fno=00001 name=C:\ORACLE\ORADATA\ESTUDO\SYSTEM01.DBF of the archive of entrance data
    fno=00002 name=C:\ORACLE\ORADATA\ESTUDO\UNDOTBS01.DBF of the archive of entrance data
    fno=00007 name=C:\ORACLE\ORADATA\ESTUDO\XDB01.DBF of the archive of entrance data
    fno=00004 name=C:\ORACLE\ORADATA\ESTUDO\INDX01.DBF of the archive of entrance data
    fno=00006 name=C:\ORACLE\ORADATA\ESTUDO\USERS01.DBF of the archive of entrance data
    fno=00003 name=C:\ORACLE\ORADATA\ESTUDO\DRSYS01.DBF of the archive of entrance data
    fno=00005 name=C:\ORACLE\ORADATA\ESTUDO\TOOLS01.DBF of the archive of entrance data
    channel disk1: initiating component 1 in 04/04/06
    channel set free: disk1
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of backup command at 04/04/2006 13:32:36
    ORA-19566: exceeded the limit of corrupt blocks 0 for archive C:\ORACLE\ORADATA\ESTUDO\INDX01.DBF

    Alex , This error reports that you have block corruption in your database , and rman can't backup the corrupt blocks , You can use the rman for backup with the below workaround , but should resolve this corruption, as the file name suggests that this is an index file , so you should be able to get rid of that corrupt block easily.
    To tell RMAN to permit corrupt blocks to be backed up, you must use the
    SET MAXCORRUPT command (note that this goes inside the RUN command):
    SET MAXCORRUPT FOR DATAFILE 'C:\ORACLE\ORADATA\ESTUDO\INDX01.DBF' TO n;
    where 'n' is the number of corrupt blocks which will be allowed in the backup.

  • Data corrupt block

    os Sun 5.10 oracle version 10.2.0.2 RAC 2 node
    alert.log 내용
    Hex dump of (file 206, block 393208) in trace file /oracle/app/oracle/admin/DBPGIC/udump/dbpgic1_ora_1424.trc
    Corrupt block relative dba: 0x3385fff8 (file 206, block 393208)
    Bad header found during backing up datafile
    Data in bad block:
    type: 32 format: 0 rdba: 0x00000001
    last change scn: 0x0000.98b00394 seq: 0x0 flg: 0x00
    spare1: 0x1 spare2: 0x27 spare3: 0x2
    consistency value in tail: 0x00000001
    check value in block header: 0x0
    block checksum disabled
    Reread of blocknum=393208, file=/dev/md/vg_rac06/rdsk/d119. found same corrupt data
    Reread of blocknum=393208, file=/dev/md/vg_rac06/rdsk/d119. found same corrupt data
    Reread of blocknum=393208, file=/dev/md/vg_rac06/rdsk/d119. found same corrupt data
    Reread of blocknum=393208, file=/dev/md/vg_rac06/rdsk/d119. found same corrupt data
    Reread of blocknum=393208, file=/dev/md/vg_rac06/rdsk/d119. found same corrupt data
    corrupt 발생한 Block id 를 검색해 보면 Block id 가 검색이 안됩니다.
    dba_extents 로 검색
    corrupt 때문에 Block id 가 검색이 안되는 것인지 궁금합니다.
    export 받으면 데이타는 정상적으로 export 가능.

    다행이네요. block corruption 이 발생한 곳이 데이터가 저장된 블록이
    아닌 것 같습니다. 그것도 rman백업을 통해서 발견한 것 같는데
    맞는지요?
    scn이 scn: 0x0000.00000000 가 아닌
    0x0000.98b00394 인 것으로 봐서는 physical corrupt 가 아닌
    soft corrupt인 것 같습니다.
    그렇다면 버그일 가능성이 높아서 찾아보니
    Bug 4411228 - Block corruption with mixture of file system and RAW files
    의 버그가 발견되었습니다. 이것이 아닐 수도 있지만..
    이러한 block corruption에 대한 처리방법 및 원인분석은
    오라클(주)를 통해서 정식으로 요청하셔야 합니다.
    metalink를 통해서 SR 요청을 하십시오.
    export는 high water mark 이후의 block corruption을 찾아내지 못하고 이외에도
    아래 몇가지 경우에서도 찾아내지 못합니다.
    db verify( dbv)의 경우에는 physical corruption은 찾아내지 못하고
    soft block corruption만 찾아낼 수 있습니다.
    경험상 physical corruption 이 발생하였으나 /dev/null로
    datafile copy가 안되는데도 dbv로는 이 문제를 찾아내지
    못하였습니다.
    그렇다면 가장 좋은 방법은 rman 입니다. rman은 high water mark까지의
    데이터를 백업해주면서 전체 데이터파일에 대한 체크를 하기도 합니다.
    physical corruption뿐만 아니라 logical corruption도 체크를
    하니 점검하기로는 rman이 가장 좋은 방법이라 생각합니다.
    The Export Utility
    # Use a full export to check database consistency
    # Export performs a full scan for all tables
    # Export only reads:
    - User data below the high-water mark
    - Parts of the data dictionary, while looking up information concerning the objects being exported
    # Export does not detect the following:
    - Disk corruptions above the high-water mark
    - Index corruptions
    - Free or temporary extent corruptions
    - Column data corruption (like invalid date values)
    block corruption을 정상적으로 복구하는 방법은 restore 후에
    복구하는 방법이 있겠으나 이미 restore할 백업이 block corruption이
    발생했을 수도 있습니다. 그러므로 다른 서버에 restore해보고
    정상적인 datafile인 것을 확인 후에 실환경에 restore하는 것이 좋습니다.
    만약 백업본까지 block corruption이 발생하였거나 또는 시간적 여유가
    없을 경우에는 table을 move tablespace 또는 index rebuild를 통해서
    다른 테이블스페이스로 데이터를 옮겨두고 문제가 발생한 테이블스페이스를
    drop해버리고 재생성 하는 것이 좋을 것 같습니다.(지금 현재 데이터의
    손실은 없으니 move tablespace, rebuild index 방법이 좋겠습니다.
    Handling Corruptions
    Check the alert file and system log file
    Use diagnostic tools to determine the type of corruption
    Dump blocks to find out what is wrong
    Determine whether the error persists by running checks multiple times
    Recover data from the corrupted object if necessary
    Preferred resolution method: media recovery
    Handling Corruptions
    Always try to find out if the error is permanent. Run the analyze command multiple times or, if possible, perform a shutdown and a startup and try again to perform the operation that failed earlier.
    Find out whether there are more corruptions. If you encounter one, there may be other corrupted blocks, as well. Use tools like DBVERIFY for this.
    Before you try to salvage the data, perform a block dump as evidence to identify the actual cause of the corruption.
    Make a hex dump of the bad block, using UNIX dd and od -x.
    Consider performing a redo log dump to check all the changes that were made to the block so that you can discover when the corruption occurred.
    Note: Remember that when you have a block corruption, performing media recovery is the recommended process after the hardware is verified.
    Resolve any hardware issues:
    - Memory boards
    - Disk controllers
    - Disks
    Recover or restore data from the corrupt object if necessary
    Handling Corruptions (continued)
    There is no point in continuing to work if there are hardware failures. When you encounter hardware problems, the vendor should be contacted and the machine should be checked and fixed before continuing. A full hardware diagnostics should be run.
    Many types of hardware failures are possible:
    Bad I/O hardware or firmware
    Operating system I/O or caching problem
    Memory or paging problems
    Disk repair utilities
    아래 관련 자료를 드립니다.
    All About Data Blocks Corruption in Oracle
    Vijaya R. Dumpa
    Data Block Overview:
    Oracle allocates logical database space for all data in a database. The units of database space allocation are data blocks (also called logical blocks, Oracle blocks, or pages), extents, and segments. The next level of logical database space is an extent. An extent is a specific number of contiguous data blocks allocated for storing a specific type of information. The level of logical database storage above an extent is called a segment. The high water mark is the boundary between used and unused space in a segment.
    The header contains general block information, such as the block address and the type of segment (for example, data, index, or rollback).
    Table Directory, this portion of the data block contains information about the table having rows in this block.
    Row Directory, this portion of the data block contains information about the actual rows in the block (including addresses for each row piece in the row data area).
    Free space is allocated for insertion of new rows and for updates to rows that require additional space.
    Row data, this portion of the data block contains rows in this block.
    Analyze the Table structure to identify block corruption:
    By analyzing the table structure and its associated objects, you can perform a detailed check of data blocks to identify block corruption:
    SQL> analyze table_name/index_name/cluster_name ... validate structure cascade;
    Detecting data block corruption using the DBVERIFY Utility:
    DBVERIFY is an external command-line utility that performs a physical data structure integrity check on an offline database. It can be used against backup files and online files. Integrity checks are significantly faster if you run against an offline database.
    Restrictions:
    DBVERIFY checks are limited to cache-managed blocks. It’s only for use with datafiles, it will not work against control files or redo logs.
    The following example is sample output of verification for the data file system_ts_01.dbf. And its Start block is 9 and end block is 25. Blocksize parameter is required only if the file to be verified has a non-2kb block size. Logfile parameter specifies the file to which logging information should be written. The feedback parameter has been given the value 2 to display one dot on the screen for every 2 blocks processed.
    $ dbv file=system_ts_01.dbf start=9 end=25 blocksize=16384 logfile=dbvsys_ts.log feedback=2
    DBVERIFY: Release 8.1.7.3.0 - Production on Fri Sep 13 14:11:52 2002
    (c) Copyright 2000 Oracle Corporation. All rights reserved.
    Output:
    $ pg dbvsys_ts.log
    DBVERIFY: Release 8.1.7.3.0 - Production on Fri Sep 13 14:11:52 2002
    (c) Copyright 2000 Oracle Corporation. All rights reserved.
    DBVERIFY - Verification starting : FILE = system_ts_01.dbf
    DBVERIFY - Verification complete
    Total Pages Examined : 17
    Total Pages Processed (Data) : 10
    Total Pages Failing (Data) : 0
    Total Pages Processed (Index) : 2
    Total Pages Failing (Index) : 0
    Total Pages Processed (Other) : 5
    Total Pages Empty : 0
    Total Pages Marked Corrupt : 0
    Total Pages Influx : 0
    Detecting and reporting data block corruption using the DBMS_REPAIR package:
    Note: Note that this event can only be used if the block "wrapper" is marked corrupt.
    Eg: If the block reports ORA-1578.
    1. Create DBMS_REPAIR administration tables:
    To Create Repair tables, run the below package.
    SQL> EXEC DBMS_REPAIR.ADMIN_TABLES(‘REPAIR_ADMIN’, 1,1, ‘REPAIR_TS’);
    Note that table names prefix with ‘REPAIR_’ or ‘ORPAN_’. If the second variable is 1, it will create ‘REAIR_key tables, if it is 2, then it will create ‘ORPAN_key tables.
    If the thread variable is
    1 then package performs ‘create’ operations.
    2 then package performs ‘delete’ operations.
    3 then package performs ‘drop’ operations.
    2. Scanning a specific table or Index using the DBMS_REPAIR.CHECK_OBJECT procedure:
    In the following example we check the table employee for possible corruption’s that belongs to the schema TEST. Let’s assume that we have created our administration tables called REPAIR_ADMIN in schema SYS.
    To check the table block corruption use the following procedure:
    SQL> VARIABLE A NUMBER;
    SQL> EXEC DBMS_REPAIR.CHECK_OBJECT (‘TEST’,’EMP’, NULL,
    1,’REPAIR_ADMIN’, NULL, NULL, NULL, NULL,:A);
    SQL> PRINT A;
    To check which block is corrupted, check in the REPAIR_ADMIN table.
    SQL> SELECT * FROM REPAIR_ADMIN;
    3. Fixing corrupt block using the DBMS_REPAIR.FIX_CORRUPT_BLOCK procedure:
    SQL> VARIABLE A NUMBER;
    SQL> EXEC DBMS_REPAIR.FIX.CORRUPT_BLOCKS (‘TEST’,’EMP’, NULL,
    1,’REPARI_ADMIN’, NULL,:A);
    SQL> SELECT MARKED FROM REPAIR_ADMIN;
    If u select the EMP table now you still get the error ORA-1578.
    4. Skipping corrupt blocks using the DBMS_REPAIR. SKIP_CORRUPT_BLOCK procedure:
    SQL> EXEC DBMS_REPAIR. SKIP_CORRUPT.BLOCKS (‘TEST’, ‘EMP’, 1,1);
    Notice the verification of running the DBMS_REPAIR tool. You have lost some of data. One main advantage of this tool is that you can retrieve the data past the corrupted block. However we have lost some data in the table.
    5. This procedure is useful in identifying orphan keys in indexes that are pointing to corrupt rows of the table:
    SQL> EXEC DBMS_REPAIR. DUMP ORPHAN_KEYS (‘TEST’,’IDX_EMP’, NULL,
    2, ‘REPAIR_ADMIN’, ‘ORPHAN_ADMIN’, NULL,:A);
    If u see any records in ORPHAN_ADMIN table you have to drop and re-create the index to avoid any inconsistencies in your queries.
    6. The last thing you need to do while using the DBMS_REPAIR package is to run the DBMS_REPAIR.REBUILD_FREELISTS procedure to reinitialize the free list details in the data dictionary views.
    SQL> EXEC DBMS_REPAIR.REBUILD_FREELISTS (‘TEST’,’EMP’, NULL, 1);
    NOTE
    Setting events 10210, 10211, 10212, and 10225 can be done by adding the following line for each event in the init.ora file:
    Event = "event_number trace name errorstack forever, level 10"
    When event 10210 is set, the data blocks are checked for corruption by checking their integrity. Data blocks that don't match the format are marked as soft corrupt.
    When event 10211 is set, the index blocks are checked for corruption by checking their integrity. Index blocks that don't match the format are marked as soft corrupt.
    When event 10212 is set, the cluster blocks are checked for corruption by checking their integrity. Cluster blocks that don't match the format are marked as soft corrupt.
    When event 10225 is set, the fet$ and uset$ dictionary tables are checked for corruption by checking their integrity. Blocks that don't match the format are marked as soft corrupt.
    Set event 10231 in the init.ora file to cause Oracle to skip software- and media-corrupted blocks when performing full table scans:
    Event="10231 trace name context forever, level 10"
    Set event 10233 in the init.ora file to cause Oracle to skip software- and media-corrupted blocks when performing index range scans:
    Event="10233 trace name context forever, level 10"
    To dump the Oracle block you can use below command from 8.x on words:
    SQL> ALTER SYSTEM DUMP DATAFILE 11 block 9;
    This command dumps datablock 9 in datafile11, into USER_DUMP_DEST directory.
    Dumping Redo Logs file blocks:
    SQL> ALTER SYSTEM DUMP LOGFILE ‘/usr/oracle8/product/admin/udump/rl. log’;
    Rollback segments block corruption, it will cause problems (ORA-1578) while starting up the database.
    With support of oracle, can use below under source parameter to startup the database.
    CORRUPTEDROLLBACK_SEGMENTS=(RBS_1, RBS_2)
    DB_BLOCK_COMPUTE_CHECKSUM
    This parameter is normally used to debug corruption’s that happen on disk.
    The following V$ views contain information about blocks marked logically corrupt:
    V$ BACKUP_CORRUPTION, V$COPY_CORRUPTION
    When this parameter is set, while reading a block from disk to catch, oracle will compute the checksum again and compares it with the value that is in the block.
    If they differ, it indicates that the block is corrupted on disk. Oracle makes the block as corrupt and signals an error. There is an overhead involved in setting this parameter.
    DB_BLOCK_CACHE_PROTECT=‘TRUE’
    Oracle will catch stray writes made by processes in the buffer catch.
    Oracle 9i new RMAN futures:
    Obtain the datafile numbers and block numbers for the corrupted blocks. Typically, you obtain this output from the standard output, the alert.log, trace files, or a media management interface. For example, you may see the following in a trace file:
    ORA-01578: ORACLE data block corrupted (file # 9, block # 13)
    ORA-01110: data file 9: '/oracle/dbs/tbs_91.f'
    ORA-01578: ORACLE data block corrupted (file # 2, block # 19)
    ORA-01110: data file 2: '/oracle/dbs/tbs_21.f'
    $rman target =rman/rman@rmanprod
    RMAN> run {
    2> allocate channel ch1 type disk;
    3> blockrecover datafile 9 block 13 datafile 2 block 19;
    4> }
    Recovering Data blocks Using Selected Backups:
    # restore from backupset
    BLOCKRECOVER DATAFILE 9 BLOCK 13 DATAFILE 2 BLOCK 19 FROM BACKUPSET;
    # restore from datafile image copy
    BLOCKRECOVER DATAFILE 9 BLOCK 13 DATAFILE 2 BLOCK 19 FROM DATAFILECOPY;
    # restore from backupset with tag "mondayAM"
    BLOCKRECOVER DATAFILE 9 BLOCK 13 DATAFILE 2 BLOCK 199 FROM TAG = mondayAM;
    # restore using backups made before one week ago
    BLOCKRECOVER DATAFILE 9 BLOCK 13 DATAFILE 2 BLOCK 19 RESTORE
    UNTIL 'SYSDATE-7';
    # restore using backups made before SCN 100
    BLOCKRECOVER DATAFILE 9 BLOCK 13 DATAFILE 2 BLOCK 19 RESTORE UNTIL SCN 100;
    # restore using backups made before log sequence 7024
    BLOCKRECOVER DATAFILE 9 BLOCK 13 DATAFILE 2 BLOCK 19 RESTORE
    UNTIL SEQUENCE 7024;
    글 수정:
    Min Angel (Yeon Hong Min, Korean)

  • ORA-02393 Exceeded Call Limit on CPU Usage

    I have created a Profile and attached it to a user, in this example:
    Create Profile percall
    Limit
    CPU_PER_CALL 10
    IDLE_TIME 5;
    I have attached it to one user - USER1
    When USER1 runs a SQL Statement -
    SELECT COUNT(*) FROM TABLE1 A WHERE A.EFFDT = (SELECT MAX(B.EFFDT) WHERE B.EMPLID = A.EMPLID AND B.EFFDT <= SYSDATE);
    I get an error (Which I want to receive) ORA-02393 Exceeded Call Limit on CPU Usage.
    The SQL statement shows in the table DBA_COMMON_AUDIT_TRAIL, but shows a success even though the user received an error ORA-02393.
    What I want is a way for a DBA to be able to report on those ORA-02393 errors. I don't see any entries in the Log files, and don't notice any errors in the Oracle Tables.
    I would like to be able to show the user (after a week when they bring up the issue) what the SQL statement was and why it Exceeded the CPU Usage. If the error could place the SQL statement in a table or just display it in an error log with the Statement to verify that THIS is the statement which exceeded the CPU Usage.
    Thank you
    Aaron

    can you modify the procedure in which the SELECT resides.
    If so, trap & log the error.

  • Error: ORA-00227 - Corrupt block detected in control file

    Hey everybody,
    I'm having problems with Oracle, here is the error displayed:
    SQL> startup;
    ORACLE instance started.
    Total System Global Area 247463936 bytes
    Fixed Size 1258244 bytes
    Variable Size 92278012 bytes
    Database Buffers 150994944 bytes
    Redo Buffers 2932736 bytes
    ORA-00227: corrupt block detected in control file: (block 16, # blocks 1)
    ORA-00202: control file: '/usr/lib/oracle/xe/oradata/XE/control.dbf'
    I wonder what I should do to solve this problem.
    Could anyone help me?
    Thanks

    user10826800 wrote:
    Hey everybody,
    I'm having problems with Oracle, here is the error displayed:
    SQL> startup;
    ORACLE instance started.
    Total System Global Area 247463936 bytes
    Fixed Size 1258244 bytes
    Variable Size 92278012 bytes
    Database Buffers 150994944 bytes
    Redo Buffers 2932736 bytes
    ORA-00227: corrupt block detected in control file: (block 16, # blocks 1)
    ORA-00202: control file: '/usr/lib/oracle/xe/oradata/XE/control.dbf'
    I wonder what I should do to solve this problem.
    Could anyone help me?
    ThanksHi and welcome to the forum. Replace corrupted control file with non-corrupted one and start the database

Maybe you are looking for

  • Check installed options in text mode.

    How can I check installed options (of the RDBMS) in an only text environment (no GUI)?

  • How do I transfer a photo-file (the way it's organised on the phone) into a computer?

    I have organised pictures taken in different times into a folder on my phone, but I don't know how to transfer that folder exactly as it is into my computer. When I copy my photos through "My computer" then click on "iPhone device", I usually get the

  • PSE 6 on old XP computer, PSE 9 on new WIn 7 - where are the pictures?

    I am lost.  I had 9000+ pictures on the old computer outboard drive; and others copied onto the new computer (Win XPSP3.)  I am now am on the new computer (WIN7).  I just opened PSE 9 for the first time.  The guide which came with the PSE disc discus

  • How to collect profiling information

    I try to use -Xrunhprof:cpu:old to collect some profiling information. However I got the following information: HPROF ERROR: thread local table NULL in method exit 08990B84 HPROF ERROR: thread local table NULL in method exit 08990B84 HPROF ERROR: thr

  • Apple Configurator Could not Open

    Hi, We can not open Apple Configurator on one of our Macbook. When tried, this error message pop up The operation couldn't be completed. (com.apple.mdk.fairplay.error error -42110 We have tried to use different account and renew the plist, and still