Backup & Recovery :: Oracle Crashed And Data Corrupted?
May 20, 2013
I am the only DBA in my company and Oracle just crashed on me. The data is corrupted as well as the data on my backup! Is there ANY way I can get the information back?
I have an application that writes blobs via pro*c. It is running at several sites without errors for a few years now. One of the newer sites has started reporting "ora-01578 ORACLE data block corrupted".
I've tried using rman backup validate - it does not report any errors.
I've tried using rman restore and recover to correct the problem.
I've tried deleting the file with the corrupt block and using rman restore and recover to recreate it.
In any of the above cases, I do not see any errors being encountered, and when I restart the application, it works for a while and then starts reporting "ora-01578 ORACLE data block corrupted".
I've had the client do a physical check of the disk and it indicated the media was okay.
We've failed over to the standby system, so I have a wee bit of breathing room - but I'm going to be away for 4 days and will have to get back on this when I get back. I'm a little puzzled that I can fix it for a short while and then it breaks again.
we are running oracle 9iR2 ( 9.2.0.1.0) on windows server 2003 R2 and facing ORA-01578: ORACLE data block corrupted (file # 17, block # 312316)
SQL> select * from payrol.slip; select * from payrol.slip * ERROR at line 1: ORA-01578: ORACLE data block corrupted (file # 17, block # 312316) ORA-01110: data file 17: 'E:ORACLEORADATAMTMASYSMTM.ORA' ORA-26040: Data block was loaded using the NOLOGGING option
1) SELECT name FROM v$datafile WHERE file#=17; output E:ORACLEORADATAMTMASYSMTM.ORA
2) SELECT block_size FROM dba_tablespaces WHERE tablespace_name = (SELECT tablespace_name FROM dba_data_files WHERE file_id=17); output 8192
3) SELECT tablespace_name, segment_type, owner, segment_name FROM dba_extents WHERE file_id = &AFN and &BL between block_id AND block_id + blocks - 1;
We are facing block corruption error and it's refer to system datafile (SYSTEM01.DBF).Below is the script through it, we can come to know about the extent.
select segment_name, segment_type from dba_extents where file_id=1 and 134144 between block_id and block_id+blocks-1;
select owner,index_name,index_type, table_name from dba_indexes where index_name='I_CDEF3';
How to resolve the problem as it is related to system datafile? We tried to drop the index but system is not allowing to do.
ORA-00701 - object necessary for warmstarting database cannot be altered.
I am having 3 oracle database instances running on 3 seperate Linux Node(RHEL Node).
Instance -1 named - DS Instance -2 named - MIS Instance -3 named - OAS
Among of these 3 nodes, we are facing Block Corruption issues with sysaux tablespace.Error in Instance name DS is
Errors in file /u01/home/dba/oracle/diag/rdbms/ds4db/DS/trace/DS_j000_655388.trc (incident=300847): ORA-01578: ORACLE data block corrupted (file # 2, block # 38428) ORA-01110: data file 2: '/DSdb1/dssysaux.dbf' ORA-26040: Data block was loaded using the NOLOGGING option GATHER_STATS_JOB encountered errors. Check the trace file. [code]....
for this I googled and found some solution as oracle doc [430230.1] related to sysaux couruption.After this again we are facing the same issue in sysaux tablespace.
I have an oracle autoback of controlfile and spfile. I am trying to restore the production database using this backup, into a new server with a different directory structure.
I have completed the following steps in the restore process.
1. Creating a pfile from spfile
2. Changing the the location of cdump, udump, bdump and the control files ( there are three )
3. Then creating a spfile from this pfile
I am stuck on the next step where to rename all the datafiles and tempfile and restore the database. Following is what I did.
After mounting the database in RMAN, tried to run the following.
RMAN> run 2> { 3> allocate channel c1 device type disk 4> ; 5> @/home/oracle/rman_scripts/newloc.rman 6> SET NEWNAME FOR DATAFILE 1 TO '/u02/oradata/dorian/system01.dbf'; 7> SET NEWNAME FOR DATAFILE 2 TO '/u02/oradata/dorian/undotbs01.dbf'; 8> SET NEWNAME FOR DATAFILE 3 TO '/u02/oradata/dorian/sysaux01.dbf'; 9> SET NEWNAME FOR DATAFILE 4 TO '/u02/oradata/dorian/users01.dbf';
[code]....
I am getting the following error message.
Starting restore at 25-JAN-2012 21:26:48 released channel: c1 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 01/25/2012 21:26:49 RMAN-06026: some targets not found - aborting restore RMAN-06100: no channel to restore a backup or copy of datafile 30 RMAN-06100: no channel to restore a backup or copy of datafile 29 RMAN-06100: no channel to restore a backup or copy of datafile 28
How to restore database if rman catalog corrupted and we we dont have bacup of catalog db ..all the backup info are stored in catalog db for prod databases.
We are using HP data Protector as oracle database backup tools.but we are facing below error. But we are able to login to the database through same user.
BR0301E SQL error -1033 at location BrDbConnect-2, SQL statement: 'CONNECT system/********' ORA-01033: ORACLE initialization or shutdown in progress BR0310E Connect to database instance ARP failed
I have facing problem while taking backup on Windows 7 client of Oracle 11g R2 database. I have installed oracle 11gR2 for windows on windows 7 machine. I have created a directory like below in database.
On Database Server
SQL> create directory win_expdp_dir as 'd:expimp';
Directory created.
SQL> grant read, write on directory win_expdp_dir to lab;
Grant succeeded.
On Windows 7 machine (client machine)
D:appproduct11.2.0client_1BIN>expdp lab/lab@wbdata.wbh-db11g DIRECTORY=win_expdp_dir DUMPFILE=lab.dmp LOGFILE=lab.log Export: Release 11.2.0.1.0 - Production on Mon May 2 12:51:44 2011 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options ORA-39002: invalid operation ORA-39070: Unable to open the log file.
I have give all sharing rights on d:expimp directory. My main question is why i'm getting this error. Is there any thing missing in setup. how to take export on windows 7 client.
I've read a lot about the different types of backup available with Oracle (hot and cold backup). However, I was thinking of a different way of performing this task. I'm currently using Windows Server 2008 R2 and Oracle 11g Standard Edition. I'd like to schedule an entire backup of my server via the utility "Windows Server Backup" (available for free).That way, I could recover my entire server with all the programs and files in case the latter crashes.I'm wondering if this solution could be used as a way of backing up (and recovering) the Oracle database. Should I still set up a regular hot backup with the Archivelog mode enabled in case some operations/transactions were being done at the time of the crash (for the data integrity)?
I set 'maxopenfiles 4' when allocating channel to sbt in my products env, I got 2 backup pieces in one backup set because that tablespace has 7 datafiles. Other configuration is kept as default, such as no maxsize, no MAXPIECESIZE, and etc setting.
I read document from Oracle. It says:"By default a backup set contains one backup piece. To restrict the size of each backup piece, specify the MAXPIECESIZE option of the CONFIGURE CHANNEL or ALLOCATE CHANNEL commands. " And also, maxopenfiles configure does not force another backup piece generated. So, why do I get another backup piece?
BTW, I tried this on another testing environment. I only get one backup piece even there are more than 2 times maxopnefiles datafiles.
I have the RMAN full database backup of oracle 10g (10.2.0.3) on Sun Solaris OS which i want to restore on oracle 11g (11.2.0.3) on Linux OS. The backup pieces was transferred to oracle 11g server manually in binary mode.
the backup is taken in above format. I know the ORACLE_SID and dbid of the database from which the backup has been taken. whenever i tried the following command
mepc@tcstctmatson:/mepc_backup/May22fullbkp$ rman target / Recovery Manager: Release 11.2.0.3.0 - Production on Tue Jul 31 12:14:54 2012 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: MEPC (DBID=1595278680)
RMAN> shutdown; using target database control file instead of recovery catalog database closed database dismounted Oracle instance shut down
RMAN> startup nomount;
connected to target database (not started) Oracle instance started
When you create a backup in SQL Server, whether the backup is on disk or on tape, SQL Server writes the letters TAPE to the first four bytes of the backup. Does Oracle write any specify value to the front of every backup, and if so, what are the first four bytes?
what is %N determines in Oracle RMAN HOT Backup. In some documentation it says it gives you backup with respect to tablespace. Is it a version specific ..bcos when tried in above version it failed....
I have a scenario like while taking the hot backup i forgot put end backup mode,at the same time one of user u1 updating some lacks of recordsinto the T1 table.at some time he wants rollback.and my redolog file size is very less.is it possible to rollback? if yes how?
We are trying to restore a database on the different server using RAM incremental level 0 and 1 backups. We have weekly Incremental level 0 backups along with incremental backups on daily basis. During recovery of Incremental level 0 backup, RMAN is expecting/looking for Incremental Level 0 backup of prior week as well. Is this the usual process for RMAN to look for prior level 0 backup though we need to restore from the current level 0 backup and roll forward by a week with subsequent Level 1 backup.?
We intend to restore from the Level 0 of 1/16 and roll forward with daily incrementals till 1/22. RMAN is expecting level 0 backupsets from 1/9 backup as well and keep failing since those backups are not available. quick inputs since we are in middle of recovery and trying to resolve if this is even doable.
db can only be opened if all the datafile and controlfiles are synchronize.I wonder if db crash and we dont have any kind of backup. is there some way to synchronize the control file with the datafile?....any way.db is not idle either when crashes we can manage data lose.just want our database open
Yesterday my colleague noticed that, the complete data (1 year) got missed out from a table and the data is available only from last friday.
And then we restroed the data from the backup.
Now we have been asked to find out who has deleted or truncated the data? But in the database, audit is enabled only to log sys operations. So is there any way to find who ran the delete or truncate command on this DCA_CLA_BATCH table on friday?
SQL> show parameter audit
NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ audit_file_dest string /dborafiles/edcap/edcapd/adump audit_sys_operations boolean TRUE audit_syslog_level string audit_trail string OS
Replication happens across the servers to make sure that the data is the same (synchronized). If one of the server crashes and later recovers, does it need to repair the data to keep them in sync with the other servers?
I have problem on using "delete obsolete" in RMAN.
First, let describe my backup configuration.
1. Full backup every Monday (17-Oct, 10-Oct, 3-Oct, 26-Sep) 2. Incremental backup for other days 3. Enable autobackup of control file 4. Backup archive log every day 5. RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS 6. Execute "Delete obsolete" every day 7. control file is used instead of catalog
The results observed: 1. Backup of control files older than 30 days will be deleted 2. Backup of archive log files older than 30 days will be deleted. 3. Backup of datafiles older than ~14 days but before 30 days are also DELETED.
In my example, the backup of datafiles created at 26-Sep is deleted at 16-Oct.
I tried "restore database validate until time "sysdate-22"" at 17-Oct. And RMAN reported "datafile xx will be created automatically during restore operation". It seems that RMAN failed to do restoration up to 22 days ago. The retention policy I set seems not effective on datafile backups.
I checked view v$backup_set and the "Keep" is "No" and "Keep until" is empty.
The only thing I can think of, is the settings of "CONTROL_FILE_RECORD_KEEP_TIME". It is marked "7" in the Oracle, which is less than the retention. But I suppose this only causes the backup not deleted, but NOT be deleted earlier.
Our client has this scenario:May 23th 4:00 PM a user truncate a critical table. The customer need to recover the data before truncate.
The recover materials list like this: 1. A cold backup of this database at May 1th. 2. The archive log except May 1th ~ May 15th. 3. Every day exp at 00:30 and 12:00.
Is there any way to recover the data before truncate table with these material?
I am trying to backup my entire database's files :
[oracle@testing-oracle-1 ~]$ rman target / Recovery Manager: Release 11.2.0.1.0 - Production on Mon Jun 24 16:09:54 2013 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1341263457) RMAN> list backup;
using target database control file instead of recovery catalog specification does not match any backup in the repository
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON; new RMAN configuration parameters: CONFIGURE CONTROLFILE AUTOBACKUP ON; new RMAN configuration parameters are successfully stored RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/oracle/backupsets/control_files/cf_%F.BCKP';2>
[code]....
I see that a backup set was created to "/u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_06_24/" , in spite of my specification.
So I asked RMAN to list all the backups I have:
RMAN> list backup;
List of Backup Sets =================== BS Key Size Device Type Elapsed Time Completion Time ------- ---------- ----------- ------------ --------------- 1 41.14M DISK 00:00:00 24-JUN-13 BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20130624T161025 Piece Name: /u01/app/oracle/backupsets/818957425_1_%r.BCKP
[code]....
Here I see that 4 backup sets have been created.The backup sets 1 & 3 containing the archived redo logs (818957425_1_%r.BCKP and 818957451_3_%r.BCKP) are placed as I wanted in /u01/app/oracle/backupsets/ dir.
The file containing the Control File and Spfile (cf_c-1341263457-20130624-00.BCKP) is placed as I wanted in /u01/app/oracle/backupsets/control_files/ dir.However, The backup set file containing the data files(o1_mf_nnnd0_TAG20130624T161026_8wjkb2tg_.bkp) is placed under the directory /u01/app/oracle/flash_recovery_area/ORCL/backupset/2013_06_24/ ,and I don't understand why.
When I backup my database without the archived redo logs - it is saved correctly:
RMAN> RMAN> delete backup; using channel ORA_DISK_1 List of Backup Pieces BP Key BS Key Pc# Cp# Status Device Type Piece Name
[code]....
1. Why aren't my data files backed up to the location I specified when I backup using PLUS ARCHIVELOG syntax?
2. Why are my redo logs saved to two different backup sets and not just one?
3. Is there a way to combine backup of all files (data files, control file, spfile, redo logs & arch redo's) in one backup set, one file?