Recovery of online (current) redo-logs
Hello Recovery experts,
My question is related to recovery of online (current) redo-logs group.
1) Is it required to bring down the database for performing recovery of online (current) redo-logs group ?
2) Is below commands sufficient ?
'alter database clear logfile <group num>' ;
'alter database open resetlogs;'
3) Any other suggestions ?
Help appreciated.... cause I dont have a test setup. I tried to do on a windows desktop. and above commands worked fine. (but i think there may be more commands. my database is really not doing anything (idle) hence no redo is really getting generated.
It may depend on the true state of the redo log.
Check Recovering After the Loss of Online Redo Log Files: Scenarios and Losing an Active Online Redo Log Group.
To force a redo log switch issue:
SQL> alter system switch logfile;
Similar Messages
-
Hi All,
I got a scenario in which my current redo log file is lost:
Do I need to:
1)Clear log file group
(or)
2)I should perform incomplete recovery.
What are the steps I should follow to recover this current redo log file?
1)*If it is inactive* I can make use of
ALTER DATABASE CLEAR LOGFILE UNARCHIVED GROUP 2;
which will drop and recreate the log file.To recover from loss of an active online log group in NOARCHIVELOG mode:
If the media failure is temporary, then correct the problem so that the database can reuse the group when required.
Restore the database from a consistent, whole database backup (datafiles and control files) as described in "Restoring Datafiles Before Performing Incomplete Recovery". For example, enter:
% cp /disk2/backup/*.dbf $ORACLE_HOME/oradata/trgt/
Mount the database:
STARTUP MOUNT
Because online redo logs are not backed up, you cannot restore them with the datafiles and control files. In order to allow the database to reset the online redo logs, you must first mimic incomplete recovery:
RECOVER DATABASE UNTIL CANCEL
CANCEL
Open the database using the RESETLOGS option:
ALTER DATABASE OPEN RESETLOGS;
Shut down the database consistently. For example, enter:
SHUTDOWN IMMEDIATE
Make a whole database backup.
To recover from loss of an active online redo log group in ARCHIVELOG mode:
If the media failure is temporary, then correct the problem so that the database can reuse the group when required. If the media failure is not temporary, then use the following procedure.
Begin incomplete media recovery, recovering up through the log before the damaged log.
Ensure that the current name of the lost redo log can be used for a newly created file. If not, then rename the members of the damaged online redo log group to a new location. For example, enter:
ALTER DATABASE RENAME FILE "?/oradata/trgt/redo01.log" TO "/tmp/redo01.log";
ALTER DATABASE RENAME FILE "?/oradata/trgt/redo01.log" TO "/tmp/redo02.log";
Open the database using the RESETLOGS option:
ALTER DATABASE OPEN RESETLOGS;
My question is when the redo log file is current. What steps we should follow?
Best regards,
Rafi.
http://rafioracledba.blogspot.com/
2)If it is active then I can make use of below steps:Rafi (Oracle DBA) wrote:
Hi Asif,
This link I have seen by refering to previous post.I just have a slight doubt in mind.
1)Do I need to make use of statement:
Alter database clear unarchived log file group#;
(or)
Only if your group is current(or you are not able to drop it) and is not archived then you should use above query.
We should perform incomplete recovery for this.If we have to perform incomplete recovery what are the steps I should follow?
I doubt you should be performing incomplete recovery for this.
Eg:Let us say my group 1 is dropped it has only one member and it is in active state.How to recover database?Can I get the steps?
You would not be able to drop it if it is in active state, did you meant it is corrupted? If yes then you can use below query
Alter database clear [unarchived] LOGFILE GROUP #;>
Best regards,
Rafi
http://rafioracledba.blogspot.com/
Make sure to backup your database after above activity.
Regards
Anurag -
Suppose the current online redo log is corrupted, is there any way to make database functional other than doing incomplete recovery?
Oracle documentation says we have to do incomplete recovery. Is Cancel based Incomplete recovery the only option.
If this database is also the primary database for A physical standby database how to synchronize the Standby database with Primary? Since we would be opening Primary with Resetlogs....Incomplete Recovery upto the last (archive) redo log before the current one IS the only option.
Your current redo log would have some transactions in it. Also, the datafiles would have had some dirty blocks written to disk by DBWR. Therefore, the datafiles would be inconsistent until and unless you can apply the redo that goes with those changes. Since the redo cannot be applied from the corrupt file, the datafiles themselves must be reverted to a prior image -- upto the last redo that can be applied.
As for the standby, if you have Flashback configured, you can Flashback the Standby to the point 2 SCNs before the Primary Resetlogs.
See DataGuard Scenario 12.5 at
http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/scenarios.htm#i1049616
Else use Scenario 8.4 at
http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/manage_ps.htm#i1026480
Hemant K Chitale
http://hemantoracledba.blogspot.com
Edited by: Hemant K Chitale on Jul 22, 2009 12:13 AM -
I have 6 Tera byte of database. My current redo log is currpted. I dont want to go for incomplete recovery as my database size is too large.
what is the other option to recover the database
oracle version is 9iThis method wont work because I am talking about current online redo log
You can clear an inactive redo log group when the database is open or closed. The procedure depends on whether the damaged group has been archived.
To clear an inactive, online redo log group that has been archived, use the following procedure:
1. If the database is shut down, then start a new instance and mount the database:
STARTUP MOUNT
2. Reinitialize the damaged log group. For example, to clear redo log group 2, issue the following statement:
ALTER DATABASE CLEAR LOGFILE GROUP 2; -
Missing current redo log files
hello to all
i have a question please if you can guide me.
if i lose all current redo log files (current redo log group files) how i can repair it and open
database ? (i don't have problem by missing INACTIVE redo group)
thanksHi,
>>if i lose all current redo log files (current redo log group files) how i can repair it and
open database ? (i don't have problem by missing INACTIVE redo group)Well, It depends. The database was active when the current log file was lost ? Are you using RMAN ? The database is operating in ARCHIVELOG mode or NOARCHIVEMOG mode ? Basically, an incomplete recovery is necessary when there is a loss of the current redo log files. It means that you don’t have all the redo log files up to the point of failure, so the only alternative is[b] to recover prior to the point of failure. To perform incomplete recovery after the redo log files have been lost, you do the following (if you are not using RMAN):
1) Execute a SHUTDOWN command and restore all data files (*.dbf) from most recent backup.
2) Execute a STARTUP MOUNT command to read the contents of the control file.
3) Execute a RECOVER DATABASE UNTIL CANCEL command to start the recovery process.
SQL> startup mount;
4) Execute a RECOVER DATABASE UNTIL CANCEL command to start the recovery process.
SQL> recover database until cancel;
5) Apply the necessary archived logs up to, but not including, the lost or corrupted log.
6) Open the database and reset the log files.
SQL> alter database open resetlogs;
7) Shut down the database.
SQL> shutdown normal;
8) Take a full cold backup
In resume, for more information, take a look at [url http://download-west.oracle.com/docs/cd/B19306_01/backup.102/b14191/recoscen008.htm#sthref1872]Recovering After the Loss of Online Redo Log Files: Scenarios
Cheers
Legatti -
Why it automatically recover current redo log in RMAN command window?
Firstly, I restore controlfile and datafiles from a backupset.
Then when I recover database in RMAN command window like below:
RMAN> recover database;
Starting recover at 15-AUG-13
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=156 devtype=DISK
starting media recovery
archive log thread 1 sequence 9 is already on disk as file /u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_9_90sd0slz_.arc
archive log thread 1 sequence 10 is already on disk as file
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_10_90sd0tsb_.arc
archive log thread 1 sequence 11 is already on disk as file
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_11_90sd110b_.arc
archive log thread 1 sequence 12 is already on disk as file
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_12_90sd2ksr_.arc
archive log thread 1 sequence 13 is already on disk as file
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_13_90sd2mc6_.arc
archive log thread 1 sequence 14 is already on disk as file
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_14_90sd2qrm_.arc
archive log thread 1 sequence 15 is already on disk as file
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_15_90sd2s0w_.arc
archive log thread 1 sequence 16 is already on disk as file /u01/app/oracle/oradata/lonion/redo03.log
archive log filename=/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_9_90sd0slz_.arc thread=1 sequence=9
archive log filename=/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_10_90sd0tsb_.arc thread=1 sequence=10
archive log filename=/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_11_90sd110b_.arc thread=1 sequence=11
archive log filename=/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_12_90sd2ksr_.arc thread=1 sequence=12
archive log filename=/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_13_90sd2mc6_.arc thread=1 sequence=13
archive log filename=/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_14_90sd2qrm_.arc thread=1 sequence=14
archive log filename=/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_15_90sd2s0w_.arc thread=1 sequence=15
archive log filename=/u01/app/oracle/oradata/lonion/redo03.log thread=1 sequence=16
media recovery complete, elapsed time: 00:00:04
Finished recover at 15-AUG-13
RMAN>
But, when I recover database in SQL*Plus command window like below:
[oracle@lonion ~]$ uniread sqlplus /nolog
[uniread] Loaded history (2178 lines)
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Aug 15 19:25:38 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba
Connected.
SQL>
SQL> recover database;
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 2147842454 generated at 08/15/2013 18:34:28 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_9_%u_.a
rc
ORA-00280: change 2147842454 for thread 1 is in sequence #9
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 2147842651 generated at 08/15/2013 18:40:25 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_10_%u_.
arc
ORA-00280: change 2147842651 for thread 1 is in sequence #10
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_9_90sd
0slz_.arc' no longer needed for this recovery
ORA-00279: change 2147842653 generated at 08/15/2013 18:40:26 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_11_%u_.
arc
ORA-00280: change 2147842653 for thread 1 is in sequence #11
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_10_90s
d0tsb_.arc' no longer needed for this recovery
ORA-00279: change 2147842656 generated at 08/15/2013 18:40:32 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_12_%u_.
arc
ORA-00280: change 2147842656 for thread 1 is in sequence #12
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_11_90s
d110b_.arc' no longer needed for this recovery
ORA-00279: change 2147842684 generated at 08/15/2013 18:41:21 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_13_%u_.
arc
ORA-00280: change 2147842684 for thread 1 is in sequence #13
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_12_90s
d2ksr_.arc' no longer needed for this recovery
ORA-00279: change 2147842686 generated at 08/15/2013 18:41:23 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_14_%u_.
arc
ORA-00280: change 2147842686 for thread 1 is in sequence #14
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_13_90s
d2mc6_.arc' no longer needed for this recovery
ORA-00279: change 2147842689 generated at 08/15/2013 18:41:27 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_15_%u_.
arc
ORA-00280: change 2147842689 for thread 1 is in sequence #15
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_14_90s
d2qrm_.arc' no longer needed for this recovery
ORA-00279: change 2147842691 generated at 08/15/2013 18:41:28 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_16_%u_.
arc
ORA-00280: change 2147842691 for thread 1 is in sequence #16
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_15_90s
g0or9_.arc' no longer needed for this recovery
ORA-00279: change 2147842986 generated at 08/15/2013 19:14:29 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_17_%u_.
arc
ORA-00280: change 2147842986 for thread 1 is in sequence #17
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_16_90s
g0os5_.arc' no longer needed for this recovery
ORA-00308: cannot open archived log
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_17_%u_
.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
SQL> recover database using backup controlfile;
ORA-00279: change 2147842986 generated at 08/15/2013 19:14:29 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_08_15/o1_mf_1_17_%u_.
arc
ORA-00280: change 2147842986 for thread 1 is in sequence #17
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/lonion/redo01.log ---- Yon see, proceeding this process, it can't automatically apply the current redo log.
Log applied.
Media recovery complete.
SQL>
Question Coming:
Now, my question is that 「Why it automatically recover current redo log in RMAN command window but not in SQL*Plus」?
BTW: Please pay attention to the red font.It also seems not work.
SQL> recover automatic database using backup controlfile;
ORA-00279: change 2148632889 generated at 09/26/2013 12:45:22 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_09_26/o1_mf_1_48_%u_.
arc
ORA-00280: change 2148632889 for thread 1 is in sequence #48
ORA-00278: log file
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_09_26/o1_mf_1_48_%u_
.arc' no longer needed for this recovery
ORA-00308: cannot open archived log
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_09_26/o1_mf_1_48_%u_
.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: cannot open archived log
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_09_26/o1_mf_1_48_%u_
.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-00308: cannot open archived log
'/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_09_26/o1_mf_1_48_%u_
.arc'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file
or directory
Additional information: 3
SQL>
It must specify the redo log.
SQL> recover database using backup controlfile;
ORA-00279: change 2148632889 generated at 09/26/2013 12:45:22 needed for thread
1
ORA-00289: suggestion :
/u01/app/oracle/flash_recovery_area/LONION/archivelog/2013_09_26/o1_mf_1_48_%u_.
arc
ORA-00280: change 2148632889 for thread 1 is in sequence #48
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/oradata/lonion/redo02.log
Log applied.
Media recovery complete.
SQL> -
Need to drop a current redo log on a Standby
Oracle 11.2.0.2
I have 3 redo logs on a newly created Standby database.
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1 YES UNUSED
3 NO CURRENT
2 YES UNUSED
The redo log in Group 3 needs to be dropped and recreated. How can I force a log switch on a Standby in mount mode?
SQL> alter database drop logfile group 3;
alter database drop logfile group 3
ERROR at line 1:
ORA-01623: log 3 is current log for instance ufms216 (thread 1) - cannot drop
ORA-00312: online log 3 thread 1: '/path/redo03.dbf'
SQL> alter system switch logfile;
alter system switch logfile
ERROR at line 1:
ORA-01109: database not open
Please help !!!
Thanks!
DaveSAME ERROR/SITUATION
SQL> startup mount
ORACLE instance started.
Total System Global Area 1.2527E+10 bytes
Fixed Size 2231240 bytes
Variable Size 3657434168 bytes
Database Buffers 8858370048 bytes
Redo Buffers 8691712 bytes
Database mounted.
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1 YES UNUSED
3 NO CURRENT
2 YES UNUSED
SQL> alter database drop logfile group 3;
alter database drop logfile group 3
ERROR at line 1:
ORA-01623: log 3 is current log for instance ufms216 (thread 1) - cannot drop
ORA-00312: online log 3 thread 1: '/a0253/d01/oradata/ufms216/redo03.dbf'
SQL> alter system switch logfile;
alter system switch logfile
ERROR at line 1:
ORA-01109: database not open
SQL> alter database recover managed standby database cancel;
alter database recover managed standby database cancel
ERROR at line 1:
ORA-16136: Managed Standby Recovery not active
SQL>
HELP! -
Increase current redo log size in standby database in mount stage
We have oracle 10g standby database. The standby database is always running in mount stage while apply logs manually not data guard is used.
We have increase size or online redo log in primary . Now want to inrease in standby database also.
how to increase the size of current online redo log in standby database while it in mount stage .
in mount stage we cant run alter system switch logfileuser11965804 wrote:
We have oracle 10g standby database. The standby database is always running in mount stage while apply logs manually not data guard is used.
We have increase size or online redo log in primary . Now want to inrease in standby database also.
how to increase the size of current online redo log in standby database while it in mount stage .
in mount stage we cant run alter system switch logfilein 10g Standby will be always in Mount status when MRP is running.
When you increase size of online redo log files in primary, You should increase in standby also..
Standby redo log file size should be equal or higher than primary. You no need to switch log files on Standby.
You will have only standby redo log files in standby not ORL(online redo log files)
You can use this below script to add standby redo log files.
http://www.pythian.com/news/581/oracle-standby-redo-logs/ -
ORACLE 11.2.0.2
I have a corrupted redo log on a Physical Standby db. The corrupted file is the current log. I cant do an "alter system switch logfile" because the database is not writeable.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
Database altered.
SQL> SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;
GROUP# ARC STATUS
1 YES UNUSED
2 YES UNUSED
3 NO CURRENT
SQL>
SQL> alter system switch logfile;
alter system switch logfile
ERROR at line 1:
ORA-16000: database open for read-only access
How can I drop log file #3? The database is currently a physical, if I convert ti to a logical, then the dp would be writeable. Would this work? Any other ideas??http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/manage_ps.htm
8.3.5 Adding or Dropping Online Redo Log Files
Changing the size and number of the online redo log files is sometimes done to tune the database. You can add or drop online redo log file groups or members to the primary database without affecting the standby database. Similarly, you can drop log file groups or members from the primary database without affecting your standby database. However, these changes do affect the performance of the standby database after switchover.
Caution:
Whenever you add an online redo log file to the primary database, you should add corresponding online and standby redo log files to the standby database.
For example, if the primary database has 10 online redo log files and the standby database has 2, and then you switch over to the standby database so that it functions as the new primary database, the new primary database is forced to archive more frequently than the original primary database.
Consequently, when you add or drop an online redo log file at the primary site, it is important that you synchronize the changes in the standby database by following these steps:
If Redo Apply is running, you must cancel Redo Apply before you can change the log files.
If the STANDBY_FILE_MANAGEMENT initialization parameter is set to AUTO, change the value to MANUAL.
Add or drop an online redo log file:
To add an online redo log file, use a SQL statement such as this:
SQL> ALTER DATABASE ADD LOGFILE '/disk1/oracle/oradata/payroll/prmy3.log' SIZE 100M;
To drop an online redo log file, use a SQL statement such as this:
SQL> ALTER DATABASE DROP LOGFILE '/disk1/oracle/oradata/payroll/prmy3.log';
Repeat the statement you used in Step 3 on each standby database.
Restore the STANDBY_FILE_MANAGEMENT initialization parameter and the Redo Apply options to their original states. -
Redo Log Switch 결과...
환경 : 8.1.7.3.0 (no archive log 모드)
log_checkpoint_timeout = 0
log_checkpoint_interval = 999999999
redo log size = 200M
현재 check point는 log switch 상태에서만 가능하도록 설정된 것 같습니다.
거래량이 적어서 그런지 log switch는 30시간 주기입니다.
제가 실행한 것은 아래 4번째 로그가 current일때
alter system checkpoint를 하고 조금 있다가..
alter system switch logfile를 하여 1번째가 current가 된 상황입니다.
3/16일 14시 까지도 계속 active상태입니다...
1. 문제가 생긴건지요??? 도움부탁합니다...
2. no archive log mode에서도 switch 주기를 줄이는 것이 복구에 도움이 되나요...?
===========================================
STATUS , FIRST_CHANGE#,FIRST_TIME
CURRENT , 8846777646687,2007-03-15 16:57:55
INACTIVE, 8846777587798,2007-03-14 10:34:40
INACTIVE, 8846777609448,2007-03-14 17:17:38
ACTIVE , 8846777643690,2007-03-15 16:01:22no archivemode에서 정상복구를 바라는 것인지요?
잘못된 정책이란 생각이 듭니다.
no archive mode에서 v$log의 first_change# 중에 가장 작은 것
이 v$recover_file의 change# 보다 크거나 같다면 복구불능입니다.
배치작업이라도 있어서 log switch가 한번의 cycle을 돌게 되면 이전
백업으로는 복구불능입니다. archive mode로 지금 바로 바꾸시지요..
log_checkpoint_timeout은 checkpoint에 대한 timeout 시간값을
지정하는 것입니다.
LOG_CHECKPOINT_INTERVAL specifies the frequency of checkpoints in terms of the number of redo log file blocks that can exist between an incremental checkpoint and the last block written to the redo log. This number refers to physical operating system blocks, not database blocks.
checkpoint는 아시는 바와 같이 데이터파일과
리두로그 컨트롤파일의 SCN을 일치시키는 것입니다. 주요한 것은
DBWR프로세스가 데이터파일에 write를 하겠구요.
물론 checkpoint와 인스턴스 복구는 관련이 있습니다. checkpoint timeout을
적당히주면 instance recovery에서 좀 더 빠르게 instance 복구후 DB가
open되겠습니다. 만약 설정하신대로 하신다면 DB를 abort로
내리고 open하게 되면
instance recovery시에 더 많은 시간이 필요하겠습니다.
게다가 트랜잭션으로 인한 log switch하는 시간이 30시간보다
작다면 timeout을 준들 영향을 주지 않겠지요. redo log가 꽉
차게 되면 log switch를 자동으로 하게 되는데 log switch를
하기전에 checkpoint를 주게 되어 있으니까요.
그런데 checkpoint와 물리적/논리적 복구와는 다른 개념입니다.
checkpoint는 위에서 말씀드린 instance recovery와 관련이 있고
물리적/논리적 복구에서는 archive file이 떨어져 있는가 current redo log가
존재하는가에 따라서 복구가능여부를 결정되는 것이지요..
그리고 ACTIVE 상태라는 것은 문서상의 정의에서는 archive mode일 경우
archiving이 되는 중일 경우, 그리고 이 상태는 complete recovery시에 redo log
적용시 필요한 정보가 있다는 것입니다.
no archive mode에서 복구정책을 적용 하겠다는 것은 위험한 발상인 것 같습니다.
물론 DSS시스템의 경우에는 이미 정책을 no archive mode로
만들어두고 주말마다 offline backup을 하기도 합니다.
하지만 DSS에서는 하루에 300번 이상의 log switch가 일어나는
경우가 있을 정도이니 아무리 백업이 되어 있다 한들 완전복구는
불능이겠지요. offline backup을 했을 때까지만 복구가 됩니다.
$LOG
This view contains log file information from the control files.
Column Datatype Description
GROUP#
NUMBER
Log group number
THREAD#
NUMBER
Log thread number
SEQUENCE#
NUMBER
Log sequence number
BYTES
NUMBER
Size of the log (in bytes)
MEMBERS
NUMBER
Number of members in the log group
ARCHIVED
VARCHAR2(3)
Archive status (YES |NO)
STATUS
VARCHAR2(16)
Log status:
UNUSED - Online redo log has never been written to. This is the state of a redo log that was just added, or just after a RESETLOGS, when it is not the current redo log.
CURRENT - Current redo log. This implies that the redo log is active. The redo log could be open or closed.
ACTIVE - Log is active but is not the current log. It is needed for crash recovery. It may be in use for block recovery. It might or might not be archived.
CLEARING - Log is being re-created as an empty log after an ALTER DATABASE CLEAR LOGFILE statement. After the log is cleared, the status changes to UNUSED.
CLEARING_CURRENT - Current log is being cleared of a closed thread. The log can stay in this status if there is some failure in the switch such as an I/O error writing the new log header.
INACTIVE - Log is no longer needed for instance recovery. It may be in use for media recovery. It might or might not be archived.
no archive mode에서도 복구하는 여러가지 방법들이 있기는 합니다.
예를들어 current redo log가 깨졌을 때에 recovery 방법이라던지
등등이 문서에 있긴하지요. 하지만 no archivemode에서 백업을 붓고
복구하는 방법은 찾아보기 힘드실 것입니다. 위에서도 말씀드렸듯이
no archive mode에서
v$recover_file의 CHANGE# > v$logl의 minimum FIRST_CHANGE# 이면 데이터파일은 복구가능합니다.
그러나 CHANGE# <= minimum FIRST_CHANGE# 이면 복구 불가능합니
다. 그러니 백업을 붓고 복구를 하는 방법에 대한 문서는 거의
찾기 힘듭니다. advance 방법에 대한 문서에서만 adjust_scn을 쓴다던지 하는 등이 나와있을 뿐입니다.
글 수정:
민천사(민연홍)
아무래도 졸면서 썼나봅니다.;;
interval과 timeout은 엄연히 다른데요. 왜 timeout과 interval을
혼동했는지..;;
LOG_CHECKPOINT_INTERVAL specifies the frequency of checkpoints in terms of the number of redo log file blocks that can exist between an incremental checkpoint and the last block written to the redo log. This number refers to physical operating system blocks, not database blocks.
LOG_CHECKPOINT_TIMEOUT specifies (in seconds) the amount of time that has passed since the incremental checkpoint at the position where the last write to the redo log (sometimes called the tail of the log) occurred. This parameter also signifies that no buffer will remain dirty (in the cache) for more than integer seconds. -
When occurs crash recovery,why use active online redo log not archived log?
If current redo log had archived, but it's still 'ACTIVE'. As we all know, archived log is just an archived copy of the current redo log which is still 'ACTIVE', they have the same data. But why use active online redo log not archived log for crash recovery?(I think, if crash recovery can use archived log, then whether the online redo log is 'ACTIVE' or not, it can be overwritten)
Quote:
Re: v$log : How redo log file can have a status ACTIVE and be already archived?
Hemant K Chitale
If your instance crashes, Oracle attempts Instance Recovery -- reading from the Online Redo Logs. It doesn't need ArchiveLogs for Instance Recovery.
TanelPoder
Whether the log is already archived or not doesn't matter here, when the instance crashes, Oracle needs some blocks from that redolog. Archivelog is just an archived copy of the redolog, so you could use either the online or achive log for the recovery, it's the same data in there (Oracle reads the log/archivelog file header when it tries to use it for recovery and validates whether it contains the changes (RBA range) in it what it needs).Aman.... wrote:
John,
Are you sure that the instance recovery (not the media recovery) would be using the archived redo logs? Since the only thing that would be lost is the isntance, there wouldn't be any archived redo log generated from the Current redo log and the previous archived redo logs, would be already checkpointed to the data file, IMHO archived redo logs won't participate in the instance recovery process. Yep, shall watch the video but tomorrow .
Regards
Aman....
That's what I said. Or meant to say. If Oracle used archivelogs for instance recovery, it would not be possible to recover in noarchive log mode. So recovery relies exclusively on the online log.
Sorry I wasted your time, I'll try to be less ambiguous in future -
The file structure online redo log, archived redo log and standby redo log
I have read some Oracle documentation for file structure and settings in Data Guard environment. But I still have some doubts. What is the best file structure or settings in Oracle 10.2.0.4 on UNIX for a data guard environment with 4 primary databases and 4 physical standby databases. Based on Oracle documents, there are 3 redo logs. They are: online redo logs, archived redo logs and standby redo logs. The basic settings are:
1. Online redo logs --- This redo log must be on Primary database and logical standby database. But it is not necessary to be on physical standby database because physical standby is not open. It doesn't generate redo log. However, if don't set up online redo log on physical standby, when primary failover and switch standby as primary. How can standby perform without online redo logs? In my standby databases, online redo logs have been set up.
2. Archived redo logs --- It is obviously that primary database, logical and physical standby database all need to have this log file being set up. Primary use it to archive log files and ship to standby. Standby use it to receive data from archived log and apply to database.
3. Standby redo logs --- In the document, it says A standby redo log is similar to an online redo log, except that a standby redo log is used to store redo data received from another database. A standby redo log is required if you want to implement: The maximum protection and maximum availability levels of data protection and Real-time apply as well as Cascaded destinations. So it seems that this standby redo log only should be set up on standby database, not on primary database. Am my understanding correct? Because I review current redo log settings on my environment, I have found that Standby redo log directory and files have been set up on both primary and standby databases. I would like to get more information and education from experts. What is the best setting or structure on primary and standby database?FZheng:
Thanks for your input. It is clear that we need 3 type of redo logs on both databases. You answer my question.
But I have another one. In oracle ducument, it says If you have configured a standby redo log on one or more standby databases in the configuration, ensure the size of the current standby redo log file on each standby database exactly matches the size of the current online redo log file on the primary database. It says: At log switch time, if there are no available standby redo log files that match the size of the new current online redo log file on the primary database. The primary database will shut down
My current one data gurard envirnment setting is: On primary DB, online redo log group size is 512M and standby redo log group size is 500M. On the standby DB, online redo log group size is 500M and standby redo log group size is 750M.
This was setup by someone I don't know. Is this setting OK? or I should change Standby Redo Log on standby DB to 512M to exactly meatch with redo log size on primary?
Edited by: 853153 on Jun 22, 2011 9:42 AM -
RMAN x Online redo logs - doubt
When using RMAN's online hot backup, RMAN does not back up the online redo logs, does it?
Is there a way to do that?The online redo logs files are never backed up by RMAN or any hot backup method.
The online redo logs files contain the latest data or redo generated by the database.(The data comes from redo log buffer written by LGWR).
The contents of the current redo logs are not archived until a log switch occurs.
This means if all your members in a redo log group fails, you would lose the latest information. So its best practice to invoke log switch before starting archivelog backup. -
Hi,
DB: 10.2.0.4
OS: UNIX/Windows
I have some doubts in archive log generation.
*1)* Once current redo log is filed , LGWR will move to next redo log which is available with status INACTIVE , and current one will become ACTIVE.If more archive logs are generating , based on business , ACTIVE will become INACTIVE after sometime and can use for CURRENT redo log.
If no archive logs are generated , my redo log is not coming out from status ACTIVE to INACTIVE .Even i waited for 5 minutes , but i had the same status.
What will be the time to make ACTIVE to INACTIVE?. What causing to make this happen ?.
Normally , when checkpoint is happened DBWR will write the CURRENT log data to data files , right?.In ACTIVE state , has archive log generated?. Many times i seen archive log is generated even it is in ACTIVE state.
*2)* My Archive logs size (25MB) is not equal to the redo log size. Normally , when we switch the logs or any rman backup , logs will be switched automatically and how much redo is filled , same will be generated with size.
But, in my case , more archive logs are generating and many have the different size out of generated and no manual switching or rman script are running during this period.
Any idea on this?.
Thanks,
Sunandsunand wrote:
Hi,
DB: 10.2.0.4
OS: UNIX/Windows
I have some doubts in archive log generation.
*1)* Once current redo log is filed , LGWR will move to next redo log which is available with status INACTIVE , and current one will become ACTIVE.If more archive logs are generating , based on business , ACTIVE will become INACTIVE after sometime and can use for CURRENT redo log.
If no archive logs are generated , my redo log is not coming out from status ACTIVE to INACTIVE .Even i waited for 5 minutes , but i had the same status.
What will be the time to make ACTIVE to INACTIVE?. What causing to make this happen ?.
Normally , when checkpoint is happened DBWR will write the CURRENT log data to data files , right?.In ACTIVE state , has archive log generated?. Many times i seen archive log is generated even it is in ACTIVE state.
That is wrong.DBWR process write dirty blocks from database buffer cache to datafiles but not "CURRENT log data to data files".So if your current online log group is full then ARCH process will try archiving this group to available destination and without archiving there will not happen LOG SWITCH.After archiving log switch will happen and LOG SEQUENCE NUMBER will increase then you will get new current log group.IF old group status is ACTIVE it means this group still need instance recovery.SO when you execute ALTER SYSTEM CHECKPOINT in this case status of this group will INACTIVE.
*2)* My Archive logs size (25MB) is not equal to the redo log size. Normally , when we switch the logs or any rman backup , logs will be switched automatically and how much redo is filled , same will be generated with size.
But, in my case , more archive logs are generating and many have the different size out of generated and no manual switching or rman script are running during this period.
Any idea on this?.
As you know archivelogs is a copy of online redologs,but there can be several reasons and result these size can be different.For example manual log switch or if you set ARCHIVE_LAG_TARGET != 0.Finally archive logs contains information for media recover,but online redo logs contain instance and media recovery it means these size can be different. -
Checksum error in redo log block
I received ORA-00368 in my database and to resolve it I tried following steps:-
1) recover database until cancel;
2) alter database open resetlogs;
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/u01/oracle/data/system01.dbf'
3) recover database;
ORA-00283: recovery session canceled due to errors
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 12018 change 5983381348672 time 05/18/2010
16:08:24
ORA-00312: online log 10 thread 1: '/u02/oracle/data/log10b.dbf'
ORA-00312: online log 10 thread 1: '/u01/oracle/data/log10a.dbf'
There are 4 log groups with 2 members each and the database is in archive mode. Log group# 10 is current and all others are inactive.
Could you please let me know how should I proceed further either with or without losing transaction in group# 10 redo log?
Thanks
RajkumHow can I drop the CURRENT log group# 10 and start the database with remaining 3 log groups? Database is in archive mode.Short answer: You cant. It is the CURRENT redo log... most probably your database wasnt shut down cleanly hence requiring a recovery. This recovery cannot be done because you have a corruption in your redo log needed to roll-forward the changes.
Without a valid backup and a restore/recovery until time there is no chance of opening the database without the help of Oracle. I strongly suggest you open a SR and prepare your management for some costs because you are running a unsupported database version on a unsupported (at least today) operating system. I also doubt you have a valid support contract for a 9i database...
Ronny Egner
My Blog: http://blog.ronnyegner-consulting.de
Maybe you are looking for
-
Getting error in my device while signing up to ICloud. The same ID's is working well in downloading itunes
-
RFC Adapter : JCO_ERROR_CONVERSION : Unparseable date
Hi all, We are working with RFC Adapter . We are getting the following error in RWB --> Component Monitoring --> Adapter Engine --> RFC Adapter " JCO_ERROR_CONVERSION: Date '01.12.2005' has a wrong format at field VALIDITYBEGIN: Unparseable date: "0
-
I have an arraycollection that is populated from a webservice. Users can edit all fields and possible every row in teh database will need to be modified. I'm trying to find the best way to get this data back to coldfusion to modify several database r
-
Source System Connection BW and R/3
Hi BW Gurus, In BW Only One Client 400 is available and I have 2 Clients like Client 100 and Client 200 in R/3. My Question is BW Client 400 is directly and separtly link with R/3 Client 100 and Client 200. Please have a look the link http://img168.
-
Cannot load mod_bonjour.so in apache2
* I am running apache2 on tiger. I copy mod_bonjour.so from /private/....(cant remember) to /opt/local/apache2/modules/ * sudo apachectl restart, then it cannot find the mod_bonjour.so. Error: no such symbol... * I assume I need to recompile the mod_