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
-------------------------------------------------------------
Similar Messages
-
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. -
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.... -
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 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. -
Need to understand when redo log files content is wrote to datafiles
Hi all
I have a question about the time when redo log files are wrote to the datafiles
supposing that the database is in NOARCHIVELOG mode, and all redo log files are filled, the official oracle database documentation says that: *a filled redo log file is available
after the changes recorded in it have been written to the datafiles* witch mean that we just need to have all the redo log files filled to "*commit*" changes to the database
Thanks for help
Edited by: rachid on Sep 26, 2012 5:05 PMrachid wrote:
the official oracle database documentation says that: a filled redo log file is available after the changes recorded in it have been written to the datafiles It helps if you include a URL to the page where you found this quote (if you were using the online html manuals).
The wording is poor and should be modified to something like:
<blockquote>
+"a filled online redo log file is available for re-use after all the data blocks that have been changed by change vectors recorded in the log file have been written to the data files"+
</blockquote>
Remember if a data block that is NOT an undo block has been changed by a transaction, then an UNDO block has been changed at the same time, and both change vectors will be in the redo log file. The redo log file cannot, therefore, be re-used until the data block and the associated UNDO block have been written to disc. The change to the data block can thus be rolled back (uncommitted changes can be written to data files) because the UNDO is also available on disc if needed.
If you find the manuals too fragmented to follow you may find that my book, Oracle Core, offers a narrative description that is easier to comprehend.
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
Author: <b><em>Oracle Core</em></b> -
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. -
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 -
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 -
Hi,
By mistake the redo log files have been removed.
Hence we tried to create the redo log files.
After creating it when select * from v$log is done, it is as follows
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS
FIRST_CHANGE# FIRST_TIM
1 1 0 1073741824 1 YES UNUSED
0
3 1 0 1073741824 1 YES UNUSED
0
2 1 0 1073741824 1 NO CURRENT
179433372 20-NOV-10
Due to this, whatever alter command we use, it is not working.
For ex.
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/alcatel/oracle/oradata/SNM/system01.dbf'
SQL> alter database mount;
alter database mount
ERROR at line 1:
ORA-01100: database already mounted
SQL> alter system switch logfile;
alter system switch logfile
ERROR at line 1:
ORA-01109: database not open
SQL> ALTER DATABASE OPEN;
ALTER DATABASE OPEN
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
WE want to change the status in v$log table from Current to ACTIVE and UNUSED to INACTIVE.
How can we do that?
Can anyone help us?
Regards
SriniHi ,
WE have tried those but in vain..
Please find the error logs
SQL> alter system switch logfile;
alter system switch logfile
ERROR at line 1:
ORA-01109: database not open
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/alcatel/oracle/oradata/SNM/system01.dbf'
SQL> ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/alcatel/oracle/oradata/SNM/system01.dbf'SP2-0734: unknown command beginning "ORA-01194:..." - rest of line ignored.
SQL> ^C
SQL> recover database until cancel;
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done
SQL> alter database open resetlogs;
alter database open resetlogs
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/alcatel/oracle/oradata/SNM/system01.dbf'
SQL> recover database until cancel using backup controlfile;
ORA-00279: change 179433372 generated at 11/20/2010 18:00:10 needed for thread
1
ORA-00289: suggestion : /alcatel/oracle/admin/SNM/arch/arch_1_635_666206692.arc
ORA-00280: change 179433372 for thread 1 is in sequence #635
Srini -
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 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. -
Online redo log files being removed physically
Grid Infra version: 11.2.0.4
RDBMS Version: 11.2.0.4
Although this is a RAC DB, this is not a RAC-specific question. Hence posting it here.
Few months back, I remember issuing a command similair to below (DROP LOGFILE GROUP ...) and the redo log files were still physically present in the diskgroup.
If I remember correctly, the file is not deleted physical so that we can use the REUSE functionality (ALTER DATABASE ADD LOGFILE MEMBER '+REDO/orcl/onlinelog/redo1b.log' reuse to group 11; ) ie. you can use the REUSE command to add the logfile of the same name which is physically present in OS Filesystem/Diksgroup to redo log group.
But today, after I issued the below command, I checked the diskgroup location from ASMCMD
SQL> alter database drop logfile group 31;
Database altered.
From ASMCMD, I can that the file has disappeared physically. Is this a new feature with 11.2.0.4 or am I missing something here ?
ASMCMD> ls +DATA/msblprd/onlinelog/group_31.548.833154995
ASMCMD-8002: entry 'group_31.548.833154995' does not exist in directory '+DATA/msblprd/onlinelog/'Just to add to what Aman has said.
It is a bad practice not to let OMF decide the placement of Online redo logs because of this issue especially when you use ASM.
Executing rm command in Linux/Unix is easy but Dropping ASM aliases in the disk group can be a hassle.
This is documented.
"When a redo log member is dropped from the database, the operating system file is not deleted from disk. Rather, the control files of the associated database are updated to drop the member from the database structure. After dropping a redo log file, ensure that the drop completed successfully, and then use the appropriate operating system command to delete the dropped redo log file."
http://docs.oracle.com/cd/E11882_01/server.112/e25494/onlineredo.htm#ADMIN11324
BTW . You don't even need to set db_create_online_log_dest_n to enable OMF for ORLs.
SQL> show parameter log_dest
NAME TYPE VALUE
db_create_online_log_dest_1 string
db_create_online_log_dest_2 string
db_create_online_log_dest_3 string
db_create_online_log_dest_4 string
db_create_online_log_dest_5 string
SQL> show parameter db_create_file_dest
NAME TYPE VALUE
db_create_file_dest string +MBL_DATA
alter database add logfile thread 4
group 31 ('+MBL_DATA','+MBL_FRA') size 4096M,
group 32 ('+MBL_DATA','+MBL_FRA') size 4096M,
group 33 ('+MBL_DATA','+MBL_FRA') size 4096M,
group 34 ('+MBL_DATA','+MBL_FRA') size 4096M ;
Database altered.
And redo logs will be neatly placed as shown below
INST GROUP# MEMBER STATUS ARC
4 31 +MBL_DATA/bsblprd/onlinelog/group_31.276.832605441 UNUSED YES
+MBL_FRA/bsblprd/onlinelog/group_31.297.832605445 UNUSED YES
32 +MBL_DATA/bsblprd/onlinelog/group_32.547.832605451 UNUSED YES
+MBL_FRA/bsblprd/onlinelog/group_32.372.832605457 UNUSED YES
33 +MBL_DATA/bsblprd/onlinelog/group_33.548.832605463 UNUSED YES
+MBL_FRA/bsblprd/onlinelog/group_33.284.832605469 UNUSED YES
34 +MBL_DATA/bsblprd/onlinelog/group_34.549.832605475 UNUSED YES
+MBL_FRA/bsblprd/onlinelog/group_34.359.832605481 UNUSED YES
Maybe you are looking for
-
Firewall keeps asking for permission to allow incoming...
Help! I have a simple Intel MacMini system running OS X 10.5.5 (Client) with a few web services running on it. It has run for years without problem (mostly Tiger, more recently Leopard). Recently have been having problems with the Leopard Firewall as
-
How to change the size of portal destop title after user login
hi,guys got a question,I want to change the title of desktop,but I found out this title been limited by portal.the size length is 20. in pf_desktop_instance table,the instance_title size is 20,so I changed it to 200,but still fail.so...does any guys
-
Hi: Can someone who's got a new MBP with the SSD fill us in on the vendor that Apple's selected for the SSD drive? Thanks!
-
Cannot install itunes AND Apple Mobile Device
Ok so there is a BIG problem, 3 weeks ago, itunes was working perfectly, and then i got a problem and i had to delete itunes and i also deleted Apple Mobile Device and bonjour and quicktime, but when i try to reinstall itunes, i can't, it just skips
-
TS4235 normal boot hangs, cannot invoke Safe Mode either!
After installing a device driver my macbook air rebooted, and startup hung at about 50%. No problem, I thought, I'll boot in Safe Mode and remove the driver. No joy, I have FileVault enabled so OS X won't boot into Safe Mode. Bit of a design flaw th