Sizing the redo log files using optimal_logfile_size view.
Regards
I have a specific question regarding logfile size. I have deployed a test database and i was exploring certain aspects with regards to selecting optimal size of redo logs for performance tuning using optimal_logfile_size view from v$instance_recovery. My main goal is to reduce the redo bytes required for instance recovery. Currently i have not been able to optimize the redo log file size. Here are the steps i followed:-
In order to use the advisory from v$instance_recovery i had to set fast_start_mttr_target parameter which is by default not set so i did these steps:-
1)SQL> sho parameter fast_start_mttr_target;
NAME TYPE VALUE
fast_start_mttr_target integer 0
2) Setting the fast_start_mttr_target requires nullifying following deferred parameters :-
SQL> show parameter log_checkpoint;
NAME TYPE VALUE
log_checkpoint_interval integer 0
log_checkpoint_timeout integer 1800
log_checkpoints_to_alert boolean FALSE
SQL> select ISSES_MODIFIABLE,ISSYS_MODIFIABLE,ISINSTANCE_MODIFIABLE,ISMODIFIED from v$parameter where name like'log_checkpoint_timeout';
ISSES_MODIFIABL ISSYS_MODIFIABLE ISINSTANCE_MODI ISMODIFIED
FALSE IMMEDIATE TRUE FALSE
SQL> alter system set log_checkpoint_timeout=0 scope=both;
System altered.
SQL> show parameter log_checkpoint_timeout;
NAME TYPE VALUE
log_checkpoint_timeout integer 0
3) Now setting fast_start_mttr_target
SQL> select ISSES_MODIFIABLE,ISSYS_MODIFIABLE,ISINSTANCE_MODIFIABLE,ISMODIFIED from v$parameter where name like'fast_start_mttr_target';
ISSES_MODIFIABL ISSYS_MODIFIABLE ISINSTANCE_MODI ISMODIFIED
FALSE IMMEDIATE TRUE FALSE
Setting the fast_mttr_target to 1200 = 20 minutes of checkpoint switching according to Oracle recommendation
Querying the v$instance_recovery view
4) SQL> select ACTUAL_REDO_BLKS,TARGET_REDO_BLKS,TARGET_MTTR,ESTIMATED_MTTR, OPTIMAL_LOGFILE_SIZE,CKPT_BLOCK_WRITES from v$instance_recovery;
ACTUAL_REDO_BLKS TARGET_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE CKPT_BLOCK_WRITES
276 165888 *93* 59 361 16040
Here Target Mttr was 93 so i set the fast_mttr_target to 120
SQL> alter system set fast_start_mttr_target=120 scope=both;
System altered.
Now the logfile size suggested by v$instance_recovery is 290 Mb
SQL> select ACTUAL_REDO_BLKS,TARGET_REDO_BLKS,TARGET_MTTR,ESTIMATED_MTTR, OPTIMAL_LOGFILE_SIZE,CKPT_BLOCK_WRITES from v$instance_recovery;
ACTUAL_REDO_BLKS TARGET_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE CKPT_BLOCK_WRITES
59 165888 93 59 290 16080
After altering the logfile size to 290 as show below by v$log view :-
SQL> select GROUP#,THREAD#,SEQUENCE#,BYTES from v$log;
GROUP# THREAD# SEQUENCE# BYTES
1 1 24 304087040
2 1 0 304087040
3 1 0 304087040
4 1 0 304087040
5 ) After altering the size i have observed the anomaly as redo log blocks to be applied for recovery has increased from *59 to 696* also now v$instance_recovery view is now suggesting the logfile size of *276 mb*. Have i misunderstood something
SQL> select ACTUAL_REDO_BLKS,TARGET_REDO_BLKS,TARGET_MTTR,ESTIMATED_MTTR, OPTIMAL_LOGFILE_SIZE,CKPT_BLOCK_WRITES from v$instance_recovery;
ACTUAL_REDO_BLKS TARGET_REDO_BLKS TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE CKPT_BLOCK_WRITES
*696* 646947 120 59 *276* 18474
Please clarify the above output i am unable to optimize the logfile size and have not been able to achieve the goal of reducing the redo log blocks to be applied for recovery, any help is appreciated in this regard.
sunny_123 wrote:
Sir oracle says that fast_start_mttr target can be set to 3600 = 1hour. As suggested by following oracle document
http://docs.oracle.com/cd/B10500_01/server.920/a96533/instreco.htm
I set mine value to 1200 = 20 minutes. Later i adjusted it to 120=2 minutes as Target_mttr suggested it to be around 100 (if fast_mttr_target value is too high or too low effective value is contained in target_mttr of v$instance_recovery)Just to add, you are reading the documentation of 9.2 and a lot has changed since then. For example, in 9.2 the parameter FSMTTR was introduced and explicitly required to be set and monitored by the DBA for teh additional checkpoint writes which might get caused by it. Since 10g onwards this parameter has been made automatically maintained by Oracle. Also it's been long that 9i has been desupported followed by 10g so it's better that you start reading the latest documentation of 11g and if not that, at least of 10.2.
Aman....
Similar Messages
-
Bottleneck when switching the redo log files.
Hello All,
I am using Oracle 11.2.0.3.
The application team reported that they are facing slowness at certain time.
I monitored the database and I found that at some switching of the redo log files (not always) I am facing a slowness at the application level.
I have 2 threads since my database is RAC, each thread have 3 redo log groups multiplexed to the FRA, with size 300 MB each.
Is there any way to optimize the switch of redo log files? knowing that my database is running in ARCHIVELOG mode.
Regards,Hello Nikolay,
Thanks for your input I am sharing with you the below information. I have 2 instances so I will provide the info from each instance
Instance 1:
Load Profile Per Second Per Transaction Per Exec Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 4.9 0.0 0.00 0.00
DB CPU(s): 1.1 0.0 0.00 0.00
Redo size: 3,014,876.2 3,660.4
Logical reads: 32,619.3 39.6
Block changes: 7,969.0 9.7
Physical reads: 0.2 0.0
Physical writes: 164.0 0.2
User calls: 7,955.4 9.7
Parses: 288.9 0.4
Hard parses: 96.0 0.1
W/A MB processed: 0.2 0.0
Logons: 0.9 0.0
Executes: 2,909.4 3.5
Rollbacks: 0.0 0.0
Instance 2:
Load Profile Per Second Per Transaction Per Exec Per Call
~~~~~~~~~~~~ --------------- --------------- ---------- ----------
DB Time(s): 5.5 0.0 0.00 0.00
DB CPU(s): 1.4 0.0 0.00 0.00
Redo size: 3,527,737.9 3,705.7
Logical reads: 29,916.5 31.4
Block changes: 8,893.7 9.3
Physical reads: 0.2 0.0
Physical writes: 194.0 0.2
User calls: 7,742.8 8.1
Parses: 262.7 0.3
Hard parses: 99.5 0.1
W/A MB processed: 0.4 0.0
Logons: 1.0 0.0
Executes: 2,822.5 3.0
Rollbacks: 0.0 0.0
Transactions: 952.0
Instance 1:
Top 5 Timed Foreground Events
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avg
wait % DB
Event Waits Time(s) (ms) time Wait Class
DB CPU 1,043 21.5
log file sync 815,334 915 1 18.9 Commit
gc buffer busy acquire 323,759 600 2 12.4 Cluster
gc current block busy 215,132 585 3 12.1 Cluster
enq: TX - row lock contention 23,284 264 11 5.5 Applicatio
Instance 2:
Top 5 Timed Foreground Events
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avg
wait % DB
Event Waits Time(s) (ms) time Wait Class
DB CPU 1,340 24.9
log file sync 942,962 1,125 1 20.9 Commit
gc buffer busy acquire 377,812 594 2 11.0 Cluster
gc current block busy 211,270 488 2 9.1 Cluster
enq: TX - row lock contention 30,094 299 10 5.5 Applicatio
Instance 1:
Operating System Statistics Snaps: 1016-1017
-> *TIME statistic values are diffed.
All others display actual values. End Value is displayed if different
-> ordered by statistic type (CPU Use, Virtual Memory, Hardware Config), Name
Statistic Value End Value
AVG_BUSY_TIME 17,451
AVG_IDLE_TIME 81,268
AVG_IOWAIT_TIME 1
AVG_SYS_TIME 6,854
AVG_USER_TIME 10,548
BUSY_TIME 420,031
IDLE_TIME 1,951,741
IOWAIT_TIME 288
SYS_TIME 165,709
USER_TIME 254,322
LOAD 3 6
OS_CPU_WAIT_TIME 523,000
RSRC_MGR_CPU_WAIT_TIME 0
VM_IN_BYTES 311,280
VM_OUT_BYTES 75,862,008
PHYSICAL_MEMORY_BYTES 62,813,896,704
NUM_CPUS 24
NUM_CPU_CORES 6
NUM_LCPUS 24
NUM_VCPUS 6
GLOBAL_RECEIVE_SIZE_MAX 4,194,304
GLOBAL_SEND_SIZE_MAX 4,194,304
TCP_RECEIVE_SIZE_DEFAULT 16,384
TCP_RECEIVE_SIZE_MAX 9.2233720368547758E+18
TCP_RECEIVE_SIZE_MIN 4,096
TCP_SEND_SIZE_DEFAULT 16,384
TCP_SEND_SIZE_MAX 9.2233720368547758E+18
TCP_SEND_SIZE_MIN 4,096
Operating System Statistics - Detail Snaps: 1016-101
Snap Time Load %busy %user %sys %idle %iowait
22-Aug 11:33:55 2.7 N/A N/A N/A N/A N/A
22-Aug 11:50:23 6.2 17.7 10.7 7.0 82.3 0.0
Instance 2:
Operating System Statistics Snaps: 1016-1017
-> *TIME statistic values are diffed.
All others display actual values. End Value is displayed if different
-> ordered by statistic type (CPU Use, Virtual Memory, Hardware Config), Name
Statistic Value End Value
AVG_BUSY_TIME 11,823
AVG_IDLE_TIME 86,923
AVG_IOWAIT_TIME 0
AVG_SYS_TIME 4,791
AVG_USER_TIME 6,991
BUSY_TIME 475,210
IDLE_TIME 3,479,382
IOWAIT_TIME 410
SYS_TIME 193,602
USER_TIME 281,608
LOAD 3 6
OS_CPU_WAIT_TIME 615,400
RSRC_MGR_CPU_WAIT_TIME 0
VM_IN_BYTES 16,360
VM_OUT_BYTES 72,699,920
PHYSICAL_MEMORY_BYTES 62,813,896,704
NUM_CPUS 40
NUM_CPU_CORES 10
NUM_LCPUS 40
NUM_VCPUS 10
GLOBAL_RECEIVE_SIZE_MAX 4,194,304
GLOBAL_SEND_SIZE_MAX 4,194,304
TCP_RECEIVE_SIZE_DEFAULT 16,384
TCP_RECEIVE_SIZE_MAX 9.2233720368547758E+18
TCP_RECEIVE_SIZE_MIN 4,096
TCP_SEND_SIZE_DEFAULT 16,384
TCP_SEND_SIZE_MAX 9.2233720368547758E+18
TCP_SEND_SIZE_MIN 4,096
Operating System Statistics - Detail Snaps: 1016-101
Snap Time Load %busy %user %sys %idle %iowait
22-Aug 11:33:55 2.6 N/A N/A N/A N/A N/A
22-Aug 11:50:23 5.6 12.0 7.1 4.9 88.0 0.0
------------------------------------------------------------- -
T is frequently switching the redo log files within 5min approx..
i am facing frequent switching of redo logs within 5minutes
can you please tell how to resolve
thanks for helpHi,
I found this:
More frequent log switches may result in decreased performance. If your redo logs switches so faster Oracle will stop processing until the checkpoint completes successfully. Generally it is recommended to size your redo log file in a way that Oracle performs a log switch every 15 to 30 minutes.
A recommended approach is to
Query V$LOG view to determine the current size of the redo log members.
Record the number of log switches per hour.
Increase the log file size so that Oracle switches at the recommended rate of one switch per 15 to 30 minutes.
You can also check messages in the alert log in order to determine how fast Oracle is filling and switching logs. Suppose if your database redo log file size is set to 1MB. It means that Oracle switches the logs every 1 minute. So you will need to increase the size of redo log file to 30MB so that Oracle switches per 30 minutes.
It is also recommended to ensure that your online redo log files do not switch too often during high activity time. Instead in the period of high activity it should switch less while it should switch enough times during the time of low processing workloads. Many database administrators create PL/SQL programs to ensure that the logs switch every 15 to 30 minutes during times when activity is low.
Oracle ARCHIVE_LAG_TARGET can also be used to force a log switch after the specified amount of time elapses. The basic purpose of ARCHIVE_LAG_TARGET parameter is to control the amount of data that is lost and effectively increasing the availability of the standby database but many database administrators set ARCHIVE_LAG_TARGET parameter to make sure that the logs switch at regular intervals during lower activity time periods.
You should also keep in mind that how the size of the online redo log files will affect the instance recovery. Remember the lesser the checkpoints are taken; the longer will be the instance recovery duration. You can decrease the instance recovery time by appropriately setting the LOG_CHECKPOINT_TIMEOUT, LOG_CHECKPOINT_INTERVAL and FAST_START_MTTR_TARGET parameters. -
How to change the redo log file location.... ?
I want all my redo log files to be created in \u10 instead of current /u01?
How to do it? NOARCHIVELOG mode database on Oracle 10g R2.
Thank you,
SmirhHi..
I want all my redo log files to be created in \u10 instead of current /u01?I think it should be /u10 :)...
Anand
Edited by: Anand... on Nov 5, 2009 5:32 AM Removed the misinformation about downtime -
How to increase the size of Redo log files?
Hi All,
I have 10g R2 RAC on RHEL. As of now, i have 3 redo log files of 50MB size. i have used redo log size advisor by setting fast_start_mttr_target=1800 to check the optimal size of the redologs, it is showing 400MB. Now, i want to increase the size of redo log files. how to increase it?
If we are supposed to do it on production, how to do?
I found the following in one of the article....
"The size of the redo log files can influence performance, because the behavior of the database writer and archiver processes depend on the redo log sizes. Generally, larger redo log files provide better performance, however it must balanced out with the expected recovery time.Undersized log files increase checkpoint activity and increase CPU usage."
I did not understand the the point however it must balanced out with the expected recovery time in the above given paragraph.
Can anybody help me?
Thanks,
Praveen.You dont have to shutdown the database before dropping redo log group but make sure you have atleast two other redo log groups. Also note that you cannot drop active redo log group.
Here is nice link,
http://www.idevelopment.info/data/Oracle/DBA_tips/Database_Administration/DBA_34.shtml
And make sure you test this in test database first. Production should be touched only after you are really comfortable with this procedure. -
Where are BLOB Files stored when using redo log files.
I am using Archive Log Mode for my backups. I was wondering if Blob files get stored in the redo log files or if they are archived somewhere else?
Rob.BLOB are just columns of some tables and are stored in related tablespace table by default in their own segments. Changes to BLOB columns are also stored in redo log more or less like any other column.
See an short example for default LOB storage in Re: CLOB Datatype [About Space allocation]
Edited by: P. Forstmann on 27 avr. 2011 07:20 -
How to reduce the size of redo log files
Hi,
I am using Oracle Database 9.2.0.1.0. My present redo log files are of 100 MB each
(redo01.log,redo02.log,redo03.log) which tooks more time to swicth the logs.
I want to change the size to 20MB each so that log switcjing will be faster.
Please let me know the exact step to resize the redo log files so that Ican change it.
Regards,
IndraneelTechnical questions cannot be answered here. Please, post in the right forum :
General Database Discussions -
What is the difference between undo tablespace and online redo log files.
what is the difference between undo tablespace and online redo log files. I am confused
as per my knowledge undo tablespace is used to store the undo information when a table is being updated so that, just incase we need to rollback a transaction we know what was present in the table earlier.
when a transaction fails the SMON performs the rollback of the data.
This undo data is stored in the undo tablespace and read consistency if any is enforced.
is my understanding till here correct?
Now, can this undo data/before image not be stored in the redo log buffer and online redolog files?
can redo-log files not store this information?
in fact, is it that when undo tablespaces exist in a database, the undo data/before image is stored in both the undo tablespace and also the redo log files?
kindly clarify my doubt.
thank you.This question has been asked many times before. The answer is always the same.
Yes, redo contains the before image of data (and the after-image). Therefore, it **COULD** be used to roll back a transaction.
BUT... Redo is written sequentially. Using it to rollback your transaction would involve reading through all the redo written by maybe thousands of other people. It would be painfully slow.
Your transaction is, however, directly linked to just the UNDO that it generates (which is JUST the before image of the data). So, your undo is your undo and doesn't share space with anyone else's undo. Therefore, using it to roll back YOUR transaction is fast.
The fact that undo is only the before image of the data also makes it faster than wading through a sea of before and AFTER images as you'd find in redo. About twice as fast, in fact, since there's half the data. Roughly.
Redo also gets written and flushed to disk whenever there's a commit, 3 seconds are up or too much (1MB, actually) redo gets generated between flushes caused by other factors. Your redo gets flushed when those things happen, even if you haven't actually committed your transaction. And redo logs recycle themselves, meaning that your redo -even if your transaction hasn't been committed yet- can be over-written by later transactions. Try rolling back when that's happened, if redo was the source of your rollback data!
Undo, however, cannot be over-written if the transaction has not been committed. Ever. If you don't commit for three years, there will be three years' undo stored in your database (assuming you had the space, of course!).
I could go on, but that will do. Redo is there fore RECOVERY, after catastrophe. Undo is there for read-consistency (and the occasional change of mind). Two different functions. Two different mechanisms. Each one highly tuned to doing what it does, why it does it, most efficiently and effectively. -
Read the c2 log file of the sql server using java
Hi All,
i want to read the c2 log file using the core java. how is it possible ? if anybody knows about this please give me the sample code to help me.
i am also searching on net but i am not getting any result about this? so please help me to doing this task?
awaited personHi All,
i want to read the c2 log file using the core java. how is it possible ? if anybody knows about this please give me the sample code to help me.
i am also searching on net but i am not getting any result about this? so please help me to doing this task?
awaited person -
How to find the configuration status of REDO logs files?
I am in the process of moving the redo log files.
Before that I want to find out whether it is set up as duplex or any other configurations.
How to find the REDO log configurations.
Oracle 10g R2
Thank you,
SmithExample:
Not duplexed redo log - if number of member is 1, then it is not duplexed:
SQL> select group#, members from v$log;
GROUP# MEMBERS
1 1
2 1
3 1
SQL> select group#, member from v$logfile;
GROUP# MEMBER
1 /u01/app/oracle/oradata/db1/redo01.log
2 /u01/app/oracle/oradata/db1/redo02.log
3 /u01/app/oracle/oradata/db1/redo03.log
SQL> alter database add logfile member '/u01/app/oracle/oradata/db1/redo01_2.log' to group 1;
Database altered.
SQL> alter database add logfile member '/u01/app/oracle/oradata/db1/redo02_2.log' to group 2;
Database altered.
SQL> alter database add logfile member '/u01/app/oracle/oradata/db1/redo03_2.log' to group 3;
Database altered.Duplexed redolog
SQL> select group#, members from v$log;
GROUP# MEMBERS
1 2
2 2
3 2
SQL> select group#, member from v$logfile;
GROUP# MEMBER
1 /u01/app/oracle/oradata/db1/redo01.log
2 /u01/app/oracle/oradata/db1/redo02.log
3 /u01/app/oracle/oradata/db1/redo03.log
1 /u01/app/oracle/oradata/db1/redo01_2.log
2 /u01/app/oracle/oradata/db1/redo02_2.log
3 /u01/app/oracle/oradata/db1/redo03_2.log -
Redo log files in case of NOARCHIVELOG Mode.
Question is related with the oracle architure..
database requires a minimum of two redo log files to guarantee that one is always available for writing while the other is being archived, this sounds perfect when DB is running in ARCHIVELOG mode but at the same time it also forces database to have 2 redo log files even when the DB is running in NOARCHIVELOG mode?
Any particular reason..
I would look for reasons not answers on what redo log is and what information it holds etc..pgoel wrote:
If you had only one file all further changes would have to stop until all changed data blocks had been written to disc. By insisting on a minimum of two log files Oracle can allow the log writer to fill the second log file as the database writer writes out the dirty blocks covered by changes desrcibed in the first log file.What about having a big size redo log file instead of two? Checkppoint being initiated when the redo log file is half filled
I mean, understand the logic, two is better, even best.. but still not getting convinced. I am just trying to think, can not Oracle work with 1 group with 1 big file..specailly when Noarch mode ? Having
Edited by: pgoel on Mar 12, 2011 7:27 PMNo, you still didn't understand and I am not sure how else we can say it. Okay, think about log groups as two buckets which are used to fill the redo content. The LGWR is filling one bucket at a time till it can't accept any more content. Once filled, rather than spilling the content out, it jumps over to the second bucket. Now, taking your statement of big sized redo, Pgoel, it doesn't matter how big sized bucket you bring in, eventually it will fill in. Its not possible that you wont be able to fill it , it just would take more longer than the normal timings. Thats all. So in any case , you need the second bucket. And I am not sure that why you are struck on the archivelog mode. I hope you do understand that its an optional mode. This means, this may or may not be there. If there, its a good thing that before doing the flush of the redo content, Oracle would be able to save the contents in the archived (think about the name, it's very meaning is to preserve, to archive) log file. If not, the redo content wuold be lost and there won't be any record of transactions leaving you to reenter the lost transactions. Its a meaningless point on which you are struck i.e. the archive or no-archivelog mode. Be it whatever, Oracle would still need minimum of the two log groups.
HTH
Aman.... -
Question about how Oracle manages Redo Log Files
Good morning,
Assuming a configuration that consists of 2 redo log groups (Group A and B), each group consisting of 2 disks (Disks A1 & A2 for Group A and Disks B1 and B2 for group B). Further, let's assume that each redo log file resides by itself in a disk storage device and that the device is dedicated to it. Therefore in the above scenario, there are 4 disks, one for each redo log file and, each disk contains nothing else other than a redo log file. Furthermore, let's assume that the database is in ARCHIVELOG mode and that the archive files are stored on yet another different set of devices.
sort of graphically:
GROUP A GROUP B
A1 B1
A2 B2The question is: When the disks that comprise Group A are filled and Oracle switches to the disks in Group B, can the disks in Group A be taken offline, maybe even physically removed from the system if necessary, without affecting the proper operation of the database ? Can the Archiver process be temporarily delayed until the disks (that were removed) are brought back online or is the DBA forced to wait until the Archiver process has finished creating a copy of the redo log file into the archive ?
Thank you for your help,
John.Hello,
Dropping Log Groups
To drop an online redo log group, you must have the ALTER DATABASE system privilege. Before dropping an online redo log group, consider the following restrictions and precautions:
* An instance requires at least two groups of online redo log files, regardless of the number of members in the groups. (A group is one or more members.)
* You can drop an online redo log group only if it is inactive. If you need to drop the current group, first force a log switch to occur.
* Make sure an online redo log group is archived (if archiving is enabled) before dropping it. To see whether this has happened, use the V$LOG view.
SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1 YES ACTIVE
2 NO CURRENT
3 YES INACTIVE
4 YES INACTIVE
Drop an online redo log group with the SQL statement ALTER DATABASE with the DROP LOGFILE clause.
The following statement drops redo log group number 3:
ALTER DATABASE DROP LOGFILE GROUP 3;
When an online redo log group is dropped from the database, and you are not using the Oracle Managed Files feature, the operating system files are not deleted from disk. Rather, the control files of the associated database are updated to drop the members of the group from the database structure. After dropping an online redo log group, make sure that the drop completed successfully, and then use the appropriate operating system command to delete the dropped online redo log files.
When using Oracle-managed files, the cleanup of operating systems files is done automatically for you.
Your Database wont be affected as you can operate with 2 redo log files in each group as The minimum number of redo log files required in a database is two because the LGWR (log writer) process writes to the redo log files in a circular manner. so the process will hang becuase you are having 2 only groups if you want to remove 1 add a third one and make it the current group then remove the one you want to be offline.
Please refer to:
http://download.oracle.com/docs/cd/B10500_01/server.920/a96521/onlineredo.htm#7438
Kind regards
Mohamed
Oracle DBA -
How to recover the database when some of the archive log file get deleted.
I am facing a problem with Oracle database, which is related to archivelogs.
Our development database is running in archivelog mode, but we don't have backups scheduled and have no recovery catalog.
When the database was in running condition, disk got full, so some archivelogs were deleted manually.
After this they restarted the DB, and now DB is not coming up. Errors are as follows:
SQL> startup
ORACLE instance started.
Total System Global Area 1444383504 bytes
Fixed Size 731920 bytes
Variable Size 486539264 bytes
Database Buffers 956301312 bytes
Redo Buffers 811008 bytes
Database mounted.
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/export/home/oracle/dev/ADVFRW/ADVFRW.system'
SQL> recover datafile '/export/home/oracle/dev/ADVFRW/ADVFRW.system'
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
SQL> recover database using backup controlfile;
ORA-00279: change 215548705 generated at 09/02/2008 17:06:10 needed for thread
1
ORA-00289: suggestion :
/export/home/oracle/dev/ADVFRW/ADVFRW.archivelog1/LOG_ADVFRW_1107_1.ARC
ORA-00280: change 215548705 for thread 1 is in sequence #1107
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/export/home/oracle/dev/ADVFRW/ADVFRW.archivelog1/LOG_ADVFRW_1107_1.ARC
ORA-00308: cannot open archived log
'/export/home/oracle/dev/ADVFRW/ADVFRW.archivelog1/LOG_ADVFRW_1107_1.ARC'
ORA-27037: unable to obtain file status
SVR4 Error: 2: No such file or directory
Additional information: 3
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
CANCEL
Media recovery cancelled.
SQL>
1. How to recover the database and bring it online
Any help will be highly appreciated.
With Regards
Hemant Joshi
Edited by: hem_Kec on Sep 7, 2008 9:07 AMHi,
Archive log files are the copies of redolog files.As redo log files are circularly overwritten,oracle generates archive log file of the corresponding redo logfiles being overwritten.So if you have a backup that dates back to 10 am in the morning and if your database creashed at 3 pm,you cannot use the redo log files alone as they have incomplete information.To completely recover the database upto 3 pm,you need archive log files generated between 10 am to 3 pm. In your case since you are missing one archive log file,you cannot perform complete recovery and hence would suffer data loss. -
Restore in noarchivelog mode ( redo log files have been dropped )
1, A full backup taken using RMAN is available on disk.
2, The current control files were NOT damaged and do not need to be restored.
3, All data files are damaged .
4, The database is in NOARCHIVELOG mode.
I restore database :
1. RMAN> STARTUP MOUNT
2. RMAN> RESTORE DATABASE;
3. RMAN> recover database;
in this step , I got the information about needing redo log files ; but the redo log
files have been dropped , what should i do ?
else
I want to know there is the command 'recover database using backup control file'
in rman or not ?
TksPossibly loss of data (because information in online redo logs is lost):
recover database until cancel;
(cancel immediately)
alter database open resetlogs; (to build a new set of redo logs)
It's not necessary to use a backup controlfile here. -
How to recover from one corrupted redo log file in NOARCHIVE mode?
Oracle 10.2.1.
The redo log file was corrupted and Oracle can't work.
When I use STARTUP mount, I got no error msg.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1652555776 bytes
Fixed Size 1251680 bytes
Variable Size 301991584 bytes
Database Buffers 1342177280 bytes
Redo Buffers 7135232 bytes
Database mounted.
But I have some applications which are depended on Oracle can't be started.
So, I tried STARTUP open. But I got error msg.
SQL> startup open
ORACLE instance started.
Total System Global Area 1652555776 bytes
Fixed Size 1251680 bytes
Variable Size 301991584 bytes
Database Buffers 1342177280 bytes
Redo Buffers 7135232 bytes
Database mounted.
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 497019 change 42069302 time 11/07/2007
23:43:09
ORA-00312: online log 4 thread 1:
'G:\ORACLE\PRODUCT\10.2.0\ORADATA\NMDATA\REDO04.LOG'
So, how can I restore and recover my database?
If use RMAN, how to do that?
Any help will be appreciated.
Thanks.Hi, Yingkuan,
Thanks for the helps.
Actually, I have 10 redo log files exists. All of them are here.
I tried your suggestion:
alter database clear unarchived logfile group 4;
The error msg I got is the same as before:
SQL> alter database clear unarchived logfile group 4;
alter database clear unarchived logfile group 4
ERROR at line 1:
ORA-01624: log 4 needed for crash recovery of instance nmdata (thread 1)
ORA-00312: online log 4 thread 1:
'G:\ORACLE\PRODUCT\10.2.0\ORADATA\NMDATA\REDO04.LOG'
Compared to losing all the data, it is OK for me lose some of them.
I have more than 1 TB data stored and 99.9% of them are raster images.
The loading of these data were the headache. If I can save them, I can bear the lost.
I want to grasp the last straw.
But I don't know how set the parameter: allowresetlogs_corruption
I got the error msg:
SQL> set allowresetlogs_corruption=true;
SP2-0735: unknown SET option beginning "_allow_res..."
I have run the command:
Recover database until cancel
Alter database open resetlogs
The error msg I got is the following:
SQL> recover database until cancel
ORA-00279: change 41902930 generated at 11/05/2007 22:01:48 needed for thread 1
ORA-00289: suggestion :
D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\NMDATA\ARCHIVELOG\2007_11_09\O1_MF_
1_1274_%U_.ARC
ORA-00280: change 41902930 for thread 1 is in sequence #1274
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\NMDATA\SYSTEM01.DBF'
ORA-01112: media recovery not started
SQL>
From the log file, I got the following:
ALTER DATABASE RECOVER database until cancel
Fri Nov 09 00:12:48 2007
Media Recovery Start
parallel recovery started with 2 processes
ORA-279 signalled during: ALTER DATABASE RECOVER database until cancel ...
Fri Nov 09 00:13:20 2007
ALTER DATABASE RECOVER CANCEL
Fri Nov 09 00:13:21 2007
ORA-1547 signalled during: ALTER DATABASE RECOVER CANCEL ...
Fri Nov 09 00:13:21 2007
ALTER DATABASE RECOVER CANCEL
ORA-1112 signalled during: ALTER DATABASE RECOVER CANCEL ...
Thank you very much. and I am looking forward to your followup input.
Maybe you are looking for
-
Dear all, I am facing one problem with my user pc "The wait operation time out" ERROR= Aconnection was successfully established with the server. but then an error occurred during the pre-loging handshake. (provided , SSL providing error-0 , The wait
-
Looking for some information and help
To all, Can run run the Oracle e-business suite on the Oracle Database Express Edition 11g? Is it hard ti install for a non-db? Thank You
-
Need CD-RW/DVD-ROM combo drive for Tecra 8200
I have just bought an old Tecra 8200 with a CD-Rom drive in its SelectBay. I would like to change to a CD-RW/DVD-ROM combo drive. Could anyone let me know the correct model number for this combo drive please? Best wishes Michael
-
Need solution regarding input text component
when the user enters some text in the input text field in the priview mode, the text entered by the user will fall in the destination only when the user clicks somewhere outside the component. else the entered text will not fall in the destination.ca
-
Wireless adapter lost after Windows 7 update - HP Pavillion DV6-6160sl
I did an upgrade of windows 7 and then suddenly the wireless adapter has disappeared. The activation button does not work anymore and the adapter is no longer visible in the list of PC devices. Does anybody know how to reinstall this device, how to s