Online redo log switching

Hello.
I have a question about online redo logs.
Assume that I have two small redo log groups in my database. I am processing a big batch load consisting of many inserts, but no checkpoing. The first redo log group gets full, it's switched to the second one. The second one gets full too and it need to be switched to the first. No commit until this time, so (I guess) the data has not been saved to datafiles.
Is that possible? Will the database hung ?
If not the first redo log group gets overwritten, doesn't it? What if, after the commit, the database crashes. I will not be able to restore the operations from the first redo group...?

Depends,
If you are running in archive log mode then when you fill the first redo log group it is copied to the archvielog destination, then when the second is filled its copied and we switch back to the first if the archiver hasn't completed you will get a short 'hang' whillst the archiver completes then the transaction will proceed.
if in no archivelog mode you will just switch back and forth between the two log files.
You may be confused because you think that the datablocks in the buffer cache and datafiles are not updated untill the transaction is completed this is not true, the assumption is that most transactions will be completed and commited for a usefull discussion of the concepts see.
Re: basic concepts

Similar Messages

  • Can we use online redo log to recover lost datafile in NOARCHIVE mode?

    I am working on OCA exam and confued about these 2 sample questions. (similar questions with totally different answer)
    Please give me hint about the different between these 2 questions.
    ** If the database is in NOARCHIVELOG mode, and one of the datafile for tablespace USERS is lost, what kind of recovery is possible? (answer: B)
    A. All transactions except those in the USERS tablespace are recoverable up to the loss of the datafile.
    B. Recovery is possible only up to the point in time of the last full database backup.
    C. The USERS tablespace is recoverable from the online redo log file as long as none of the redo log files have been reused since the last backup.
    D. Tablespace point in time recovery is available as long as a full backup of the USERS tablespace exists.
    ** The database of your company is running in the NOARCHIVELOG mode. You perform a complete backup of the database every night. On Monday morning, you lose the USER1.dbf file belonging to the USERS tablespace. Your database has four redo log groups, and there have been two log switches since Sunday night's backup.
    Which is true (answer: B)
    A. The database cannot be recovered.
    B. The database can be recovered up to the last commit.
    C. The database can be recovered only up to the last completed backup.
    D. The database can be recovered by performing an incomplete recovery.
    E. The database can be recovered by restoring only the USER!.dbf datafile from the most recent backup.

    I think Gaurav is correct, you can recover to the last commit even in NOARCHIVELOG, as long as all the changes in the redo logs have not been overwritten. So answer should be B for question 2.
    Here is my test:
    SQL> select log_mode from v$database;
    LOG_MODE
    NOARCHIVELOG
    SQL> select tablespace_name, file_name from dba_data_files;
    TABLESPACE_NAME
    FILE_NAME
    USERS
    C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\USERS01.DBF
    SYSAUX
    C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\SYSAUX01.DBF
    UNDOTBS1
    C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\UNDOTBS01.DBF
    SYSTEM
    C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\SYSTEM01.DBF
    DATA
    C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\DATA01.DBF
    SQL> create table names
    2 ( name varchar(16))
    3 tablespace users;
    Table created.
    so this segment 'names' is created in the datafile users01.
    At this point I shut down and mount the DB, then:
    RMAN> backup database;
    channel ORA_DISK_1: backup set complete, elapsed time: 00:00:29
    Finished backup at 06-OCT-07
    SQL>alter database open
    SQL> insert into names values ('pippo');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL>shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    At this point I delete datafile users01 and restart:
    SQL> startup
    ORACLE instance started.
    Total System Global Area 167772160 bytes
    Fixed Size 1247900 bytes
    Variable Size 67110244 bytes
    Database Buffers 96468992 bytes
    Redo Buffers 2945024 bytes
    Database mounted.
    ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
    ORA-01110: data file 4: 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\USERS01.DBF'
    restoring the backup taken before inserting the value 'pippo' in table names:
    RMAN> restore database;
    Starting restore at 06-OCT-07
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting datafile backupset restore
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set
    restoring datafile 00001 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\SYSTEM01.D
    BF
    restoring datafile 00002 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\UNDOTBS01.
    DBF
    restoring datafile 00003 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\SYSAUX01.D
    BF
    restoring datafile 00004 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\USERS01.DB
    F
    restoring datafile 00005 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA101RC\DATA01.DBF
    channel ORA_DISK_1: reading from backup piece C:\ORACLE\PRODUCT\10.2.0\DB_1\DATA
    BASE\0AITR52K_1_1
    channel ORA_DISK_1: restored backup piece 1
    piece handle=C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\0AITR52K_1_1 tag=TAG20071006
    T181337
    channel ORA_DISK_1: restore complete, elapsed time: 00:02:07
    Finished restore at 06-OCT-07
    RMAN> recover database;
    Starting recover at 06-OCT-07
    using channel ORA_DISK_1
    starting media recovery
    media recovery complete, elapsed time: 00:00:05
    Finished recover at 06-OCT-07
    SQL> alter database open;
    Database altered.
    SQL> select * from names;
    NAME
    pippo
    SQL>
    enrico

  • 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

  • Commit Completes although current online redo log file have been removed.

    Although i have removed current online redo log file in linux os (Oracle Linux),when i type "commit" it says that "commit complete".
    Is this fair for this princip?*:" if Only when all redo records associated with a given transaction are safely on disk in the online logs is the user process notified that the transaction has been committed."*
    I think that it can lead to loss of data in some cases..I'm using Oracle 11g R2 on OEL (x64)..
    Can anyone explain me ? I'm getting stuck in this situation..
    P.S : I haven't multiplexed current ORL group files...

    Javid wrote:
    Although i have removed current online redo log file in linux os (Oracle Linux),when i type "commit" it says that "commit complete".
    Is this fair for this princip?*:" if Only when all redo records associated with a given transaction are safely on disk in the online logs is the user process notified that the transaction has been committed."*
    I think that it can lead to loss of data in some cases..I'm using Oracle 11g R2 on OEL (x64)..
    Can anyone explain me ? I'm getting stuck in this situation..
    In *nix, a file that is open by a process isn't really deleted until the process that has it completes.  So even though you 'deleted' a redo log, oracle is still holding it.  As soon as you stop your database (maybe even as soon as the db does a log switch) the redo will really be gone and no longer available.  consider the implications for archive logging.
    P.S : I haven't multiplexed current ORL group files...You need to fix that. the online logs are the achilles heel of the database. That's why it is standard practice to multiplex them.

  • Clearing Online redo logs on the target physical standby

    Hi,
    Version 11202.
    Primary on machine A
    Standby on machine B
    Following note: 11.2 Data Guard Physical Standby Switchover Best Practices using SQL*Plus [ID 1304939.1].
    Online redo logs on the target physical standby need to be cleared before that standby database can become a primary database. And later :
    On the target physical standby run the following query to determine if the online redo logs have not been cleared... 1) I did not understand where i should run the query. On machine A or on machine B ?
    2)
             Online redo logs on the target physical standby need to be CLEARED
            What does it mean that it need to be CLEARED ? Does transaction might be lost by running the clearing command?
    Thanks

    I have used my note many times in production.
    For example they needed to do some power work on the main server room a few months back on the weekend.
    We did switchovers until the work was complete and then a switch back.
    I wrote a short document called "Switchover post-mortem lessons" the main point from that was :
    1.
    getting ORA-01017 issues in Oracle forms (  Application ) after the switchover to standby.
    The issue was caused by the Standby database having a different parameter for passwords than the Primary database.
    This did not show up in testing because all the tester we used had converted passwords from Oracle 10.
    Solution
    When in doubt issue this on the new Primary :
    SQL>ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;
    Note: This command can be issued repeatedly with no negative effect on the system.2.
    The query to check switch_over status was returning "LOG SWITCH GAP"
    select switchover_status from v$database;
    This is an issue because Oracle says the return values should be one of these :
    NOT ALLOWED
    SESSIONS ACTIVE
    SWITCHOVER PENDING
    SWITCHOVER LATENT
    TO PRIMARY
    TO STANDBY
    RECOVERY NEEDED
    LOG SWITCH GAP is not one of the expected value. In addition this phase is not search friendly either on the Oracle support site or your favorite search engine.
    Given this I ran this query :
    SELECT 
      NAME AS STANDBY,
      SEQUENCE#,
      APPLIED,
      COMPLETION_TIME
    FROM
      V$ARCHIVED_LOG;
    Solution
    SQL>ALTER SYSTEM SWITCH LOGFILE;
    And wait a few minutesMy switchover document had no issue.
    Best Regards
    mseberg

  • Online redo logs vs standby redo logs

    Hi All,
    Oracle version : 10.2.0.4
    OS : SunOS 5.10 Generic_118855-36 i86pc i386 i86pc
    This might be a silly question for the experts :(
    We are having 2 standby databases and 1 logical database. Everything is running fine , I have one confusion : My primary server having 3 online redo log files and 3 standby redo log files (on primary local), but as per the architecture standby redo logs should be on standby server.My question is whether standby redo logs on standby are online redo logs of standby server or standby redo logs of primary server. e.g If i perform a log switch on primary then what is the role of sync and affirm, will lgwr write parallel on online redo logs ,standby redo logs (of primary) or online redo logs (of primary) and online redo logs (which is known as standby redo logs on standby ). Please help me to understand the scenerio.
    Thanks in advance!

    RFS receives redo information from the primary database.
    RFS can write the redo into standby redo logs or directly to archived redo logs. Each LNSn and ARCn process from the primary database has its own RFS process.
    A standby redo log is used only when the database is in the standby role to store redo data received from the primary database. Standby redo logs form a separate pool of log file groups.
    Configuring standby redo log files is highly recommended on all standby databases in a Data Guard configuration, including the primary database to aid in role reversal.
    A standby redo log is required to implement:
    • The maximum protection and maximum availability levels of data protection
    • Real-time apply
    • Cascaded redo log destinations
    Standby redo logs are recommended for maximum performance data protection mode. Unless you are using the real-time apply feature, standby redo logs must be archived before the data can be applied to the standby database. The standby archival operation occurs automatically.

  • Asynch Hot Log mode does not use hot (online) redo logs

    Version 10.2
    We have just set up a test of the Asynch Hot Log replication according to Chap 16 of the Data Warehousing guide.
    We can see data put into the change table. However, it seems that data gets written to the change table ONLY after a log switch. This would suggest that the capture process is not reading the online logs, but is only reading the archived logs.
    I don't think this can be correct behavior because the docs indicate that Oracle "seamlessly switches" between the online and the archived redo logs.
    Is there a flag or something to set to cause the online logs to be available to the capture process? Or is this a bug? Has anyone else observed this behavior?
    Thanks for any insight.
    -- Chris Curzon

    According to the 10g Dataguard docs, section 2.5.1:
    "Physical standby databases do not use an online redo log, because physical standby databases are not opened for read/write I/O."yes, those are used when database is open.
    You should not perform any changes in Standby. Even if those exist online redo log files, whats the difficulty you have seen?
    These will be used whenever you performed switchover/failover. So nothing to worry on this.
    Is this a case of the STANDBY needing at least a notion of where the REDO logs will need to be should a failover occur, and if the files are already there, the standby database CONTROLFILE will hold onto them, as they are not doing any harm anyway?Then oracle functionality itself harm if you think in that way. When they not used in open then what the harm with that?
    Standby_File_management --> for example if you add any datafile, those information will be in archives/redos once they applied on standby those will be added automatically when it is set to AUTO if its manual, then it creates a unnamed file in $ORACLE_HOME/dbs location later you have to rename that file and recovery need to perform .
    check this http://docs.oracle.com/cd/B14117_01/server.101/b10755/initparams206.htm
    HTH.

  • Why the time of the online redo logs doesn't change?

    Oracle 11.1.0.7 on windows 2008.I find the time of the online redo logs doesn't change since Jan 18 when I had restarted database,and the time of some datafiles doesn't change either.the database is always online and changes are wrriting to the files, I don't know how this happened?
    would anyone help me? thank you.

    ROCK wrote:
    I found some datafiles have the latest date,but the other not. They all have write/read operations on them.
    and the switching of the redo logs doesn't change the timestamps of the logfiles since Jan.18 when I had restarted the database. this situation does not appear on the early 8.1.7 database on windows 2000
    Does this situation normal?Hi,
    Why dont you post the output of the query you are using such as
    select group#, first_time, status from v$log;
    select name, last_time, status from v$datafile;
    select name, CHECKPOINT_TIME, status from v$datafile_header;Time stamp wont change for offline and may be for temp tablespace.
    Regards
    Anurag

  • Windows Modified date for online redo logs

    I am doing a full database backup (oracle 10g) weekly and incremental backups nightly. The database is running in archivelog mode and I am multiplexing the online redo logs. However, when I look in windows the modified date for all Redo logs is displayed at the time the database was started up (Sunday night)... datafiles, controlfiles etc... show the latest modified date correctly.
    Is this normal that the modified date is not updating on redo logs or do I need to do something else to ensure my online redo is operating correctly.
    Any help would be appreciated.

    Redo3 was the setting before the switch... redo1 is now the current log. As regards the alert log... what file should I check... there is nothing showing in OEM.
    MEMBER
    GROUP# STATUS
    D:\ORACLE\PRODUCT\ORADATA\WATLI1\REDO03.LOG
    3 ACTIVE
    D:\ORACLE\PRODUCT\ORADATA\WATLI1\REDO02.LOG
    2 INACTIVE
    D:\ORACLE\PRODUCT\ORADATA\WATLI1\REDO01.LOG
    1 CURRENT
    MEMBER
    GROUP# STATUS
    E:\BACKUP\ONLINELOGS\REDO01_A.LOG
    1 CURRENT
    E:\BACKUP\ONLINELOGS\REDO02_A.LOG
    2 INACTIVE
    E:\BACKUP\ONLINELOGS\REDO03_A.LOG
    3 ACTIVE

  • Full Online + REDO Log backup failing

    Hi Experts,
    We have a failing backup when running a 'Full Online + REDO Logs' scheduled via DB13 (ERP6/Windows 2008/Oracle 10.2.0.4)
    Whilst it is successful in backing up the datafiles and the REDO logs to the remote destination, it fails to catalog the backup, displaying the following message:
    ORA-19625: error identifying file
    Backup_Destination\BEFSDJTA\SR3.DATA10
    ORA-27041: unable to open file
    OSD-04002: unable to open file
    O/S-Error: (OS 5) Access is denied.
    RMAN>
    Recovery Manager complete.
    BR0280I BRBACKUP time stamp: 2011-04-21 07.20.49
    BR0279E Return code from 'F:\oracle\SID\102\BIN\rman nocatalog': 1
    BR0536E RMAN call for database instance EQ1 failed
    BR0280I BRBACKUP time stamp: 2011-04-21 07.20.49
    BR0532E Cataloging backups of all database files failed
    From what I understand, RMAN runs under the OracleService<SID> service, which calls the oracle.exe process, which is owned by the local user SYSTEM. This accounts for the access denied problem when accessing the remote destination using the RMAN utility.
    As a test, I'm aware that if I change the ownership of oracle.exe to a non-local, domain user (<SID>adm), I can run RMAN commands without the permission denied error occuring. (performed this on a Sandbox)
    The problem  when I use this <SID>adm account as the oracle.exe owner, is that the SAP application Work Processes won't connect to oracle.
    My questions are:
    Is it a valid workaround to change the process owner of oracle.exe to something other than the local SYSTEM user?
    If so, what are the criteria that need to be met for the new domain user to ensure that the SAP application is stable?
    Does anyone know of an alternative workaround?
    Thanks,
    Chris W

    Hi Markus,
    Thanks for the response.
    I've managed to get the SAP application to run with Oracle using the <SID>adm account as the OracleService<SID> owner.
    The original problem with the SAP work processes in connecting with the Oracle database was due to the Oracle listener services also being owned by local user SYSTEM.
    I changed the listener services ownership to <SID>adm (as well as the OracleService<SID>) and this allowed the connection between the SAP work processes and Oracle.
    Also, I gave the domain <SID>adm account local administrator rights (same as SYSTEM) and have seen no problems since the switch.
    I can also access a remote host using the RMAN utility - problem appears to be solved.
    Chris

  • Open database if an active online redo log is missing

    Hi,
    Sorry for the rather long post, but I specified all the steps I performed and couldn't make it shorter :-(
    I need an advice on how to open the database if an active online redo log is missing.
    For test purposes I intentionally performed a shutdown abort when the redo log group 1 was in active state and then renamed its only member (REDO01.LOG) so that the database couldn't perform crash recovery using it. Then upon startup I obviously got the message:
    ORA-00313: open failed for members of log group 1 of thread 1
    ORA-00312: online log 1 thread 1: 'H:\ORADATA\TESTDB\REDO01.LOG'
    ORA-27041: unable to open file
    OSD-04002: unable to open file
    O/S-Error: (OS 2) The system cannot find the file specified.Ok, so I checked the state of the logs:
    {noformat}
    SQL>SELECT a.GROUP#, first_change#, SEQUENCE#, a.status, SUBSTR(b.MEMBER, 1, 40) MEMBER, b.status mem_status, a.archived
      2    FROM v$log a, v$logfile b
      3   WHERE a.GROUP# = b.GROUP#
      4  ORDER BY a.GROUP#, b.MEMBER;
    GROUP# FIRST_CHANGE#  SEQUENCE# STATUS           MEMBER                         MEM_STA ARC
         1        592134         29 ACTIVE           H:\ORADATA\TESTDB\REDO01.LOG           YES
         2        592268         30 CURRENT          C:\ORADATA\TESTDB\REDO02.LOG           NO
         3        592129         28 ACTIVE           C:\ORADATA\TESTDB\REDO03.LOG           YES
    {noformat}Since opening the database to perform a log switch and thus change the status of the redo log group 1 from ACTIVE to INACTIVE to recreate the member isn't possible, I performed database recovery.
    SQL>recover database until cancel;
    ORA-00279: change 592129 generated at 02/04/2009 10:31:15 needed for thread 1
    ORA-00289: suggestion : C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2009_02_04\O1_MF_1_28_%U_.ARC
    ORA-00280: change 592129 for thread 1 is in sequence #28
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    ORA-00279: change 592134 generated at 02/04/2009 10:31:28 needed for thread 1
    ORA-00289: suggestion : C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2009_02_04\O1_MF_1_29_%U_.ARC
    ORA-00280: change 592134 for thread 1 is in sequence #29
    ORA-00278: log file 'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2009_02_04\O1_MF_1_28_4RLR3JS9_.ARC' no longer needed for this rec
    overy
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2009_02_04\O1_MF_1_29_4RLR4MF3_.ARC'
    ORA-00279: change 592268 generated at 02/04/2009 10:32:03 needed for thread 1
    ORA-00289: suggestion : C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2009_02_04\O1_MF_1_30_%U_.ARC
    ORA-00280: change 592268 for thread 1 is in sequence #30
    ORA-00278: log file 'C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\TESTDB\ARCHIVELOG\2009_02_04\O1_MF_1_29_4RLR4MF3_.ARC' no longer needed for this rec
    overy
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    'C:\ORADATA\TESTDB\REDO02.LOG'
    Log applied.
    Media recovery complete.
    SQL>So for log sequence #28 I accepted the proposed archived redo log in the FRA, for sequence #29 (that's the online redo log that is missing!) I manually specified its archived copy, and for sequence #30 I specified the CURRENT online redo log. And as it seems the media recovery was successful.
    Next I tried to open the database but again got the error:
    SQL>alter database open noresetlogs;
    alter database open noresetlogs
    ERROR at line 1:
    ORA-00313: open failed for members of log group 1 of thread 1
    ORA-00312: online log 1 thread 1: 'H:\ORADATA\TESTDB\REDO01.LOG'
    ORA-27041: unable to open file
    OSD-04002: unable to open file
    O/S-Error: (OS 2) The system cannot find the file specified.
    The status of the log groups and its members is exactly as it was in the first query I wrote above, i.e. the redo log group 1 is still ACTIVE, so it's needed for crash recovery (which I had already done manually if I understand correctly how Oracle works!). I also checked if the datafiles are inconsistent (described in metalink doc id 1015544.102):
    SQL>SELECT DISTINCT CHECKPOINT_CHANGE#, FUZZY FROM V$DATAFILE_HEADER;
    CHECKPOINT_CHANGE# FUZ
                592269 NOSo, everything seems ok as far as datafile consistency is concerned.
    My question is: how can I rename/drop/clear/whatever the member of redo log group 1 to open the database?
    I tried to rename the log file member, to add another member to it, to open the database with resetlogs, to clear the logfile group 1, but all without success:
    1)
    SQL>alter database clear logfile group 1;
    alter database clear logfile group 1
    ERROR at line 1:
    ORA-01624: log 1 needed for crash recovery of instance testdb (thread 1)
    ORA-00312: online log 1 thread 1: 'H:\ORADATA\TESTDB\REDO01.LOG'
    2)
    SQL>alter database open resetlogs;
    alter database open resetlogs
    ERROR at line 1:
    ORA-01139: RESETLOGS option only valid after an incomplete database recovery
    3)
    SQL>alter database rename file 'H:\ORADATA\TESTDB\REDO01.LOG' to 'C:\ORADATA\TESTDB\REDO01.LOG';
    alter database rename file 'H:\ORADATA\TESTDB\REDO01.LOG' to 'C:\ORADATA\TESTDB\REDO01.LOG'
    ERROR at line 1:
    ORA-01511: error in renaming log/data files
    ORA-01512: error renaming log file H:\ORADATA\TESTDB\REDO01.LOG - new file C:\ORADATA\TESTDB\REDO01.LOG not found
    ORA-27041: unable to open file
    OSD-04002: unable to open file
    O/S-Error: (OS 2) The system cannot find the file specified.
    4)
    SQL>alter database add logfile member 'C:\ORADATA\TESTDB\REDO01.LOG' to group 1;
    alter database add logfile member 'C:\ORADATA\TESTDB\REDO01.LOG' to group 1
    ERROR at line 1:
    ORA-00313: open failed for members of log group 1 of thread 1
    ORA-00312: online log 1 thread 1: 'H:\ORADATA\TESTDB\REDO01.LOG'
    ORA-27041: unable to open file
    OSD-04002: unable to open file
    O/S-Error: (OS 2) The system cannot find the file specified.Sorry again for the long post and thank you in advance for any suggestion.
    Regards,
    Jure

    You could check if the recovery was complete by (re)creating the controlfile with the resetlogs option.
    <CREATE CONTROLFILE REUSE DATABASE define_db_name RESETLOGS NOARCHIVELOG
    ...>Thanks for the hint. If possible, could you only check if the steps I'm going to perform are ok.
    I did an "alter database backup controlfile to trace;" and then extracted the create controlfile definition part. So in essence I should run the following statements:
    CREATE CONTROLFILE REUSE DATABASE "TESTDB" RESETLOGS  ARCHIVELOG
        MAXLOGFILES 16
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 8
        MAXLOGHISTORY 292
    LOGFILE
      GROUP 1 'C:\ORADATA\TESTDB\REDO01.LOG'  SIZE 20M,
      GROUP 2 'C:\ORADATA\TESTDB\REDO02.LOG'  SIZE 20M,
      GROUP 3 'C:\ORADATA\TESTDB\REDO03.LOG'  SIZE 20M
    -- STANDBY LOGFILE
    DATAFILE
      'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSTEM01.DBF',
      'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\UNDOTBS01.DBF',
      'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\SYSAUX01.DBF',
      'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\USERS01.DBF'
    CHARACTER SET EE8MSWIN1250
    ALTER DATABASE OPEN RESETLOGS;
    ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\TESTDB\TEMP01.DBF' REUSE;Is that correct?
    About the RMAN backups: Wouldn't a 'CATALOG RECOVERY AREA' populate the controlfile with backup information again (I'm not using a recovery catalog in this case)?
    Thanks for the help!
    Regards,
    Jure

  • Accidently Deleted Online Redo Log Files

    Dear friends
    Just to give a try, I deleted online redo log files from the disk after clearn shutdown (In Test Environment Not A Production Database), then i started the dabase, I know we need atleast two online redo files for database to work properly. now my point of question is how can i create new online redo files ?
    I have 2 redo logfile groups each with one member. In group 2 i have added new member for the deleted one using add logfile member ....... to group 2. but when i try todo the same to add logfile member to group1 I am not abale to do so. because its saying that this is the current logfile member. then I tried manual log switching to use next logfile member but database is not allowing as the database is just mounted not opened. plsease if any body helps me out to sort out this problem it will be a great help.
    Anandkumar S.M
    Oracle DBA
    rC6Exv3

    hello ur instruction u have is some what bit rite. but i was not able to solve the problem
    finally i solved the problem with these commands after database is mounted
    recover database until cancel Enter
    then I select the cancel option when it provide the user with the options
    after cancelling the recover i issued the following command
    alter database open resetlogs;
    this method sorted out my problem
    anyway very very thanks for ur root hints from where i got the Idea to recover online redo logfiles
    Thank u very much

  • 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.

  • Frequent redo log switches

    Oracle 9.2.0.1 on W2k3 server. the redo log is switching every minute, even without any discernable database activity. It's in archive log mode and the redo logs are 100mb in size, so the archive logs are filling up my hard drive. I'm having a hard time figuring out why the redo logs are switching so often. there are 3 redo log groups. Thanks for any help you can give me.

    If the redo logs are defined at 100M in size and the archived redo logs are 100M in size then the online redo logs are being filled. As suggested log miner is one way to determine what is happening.
    Are the redo logs switching all the time or only during periods of peek activity? If the rapid log switches are only happening during certain time periods like 9:30 - 10:30 or the time correspond to the running of certain batch jobs then you should probably increase the size of your online redo logs.
    If the archived redo logs are small then obvious something is forcing log switches prior to their filling. I would check the spfile setting for log_checkpoint_interval, log_checkpoint_timeout, and fast_start_mttr_target to be sure no one had made a mistake changing one of the values prior to running the log miner.
    HTH -- Mark D Powell --

  • 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:22

    no 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.

Maybe you are looking for

  • OMF Error 139  ( mob file not found)

    Just in case anyone else encounters this problem... I've seen posts about it in the past, but I'm not sure it ever got answered. I got error 139 when trying to export an OMF from 7.2 - long story short, the problem turned out to be that I was trying

  • Making a cutsom event handler for nodes

    hi i was wondering how to go about making a custom eventhandler class for nodes for eg. if a have a circle (c1) in the main.fx file and i want to assign it Mouse and Key events(using onMousePressed etc) but i dont want to write it in "c1"'s definiton

  • All user folder icons showing as generic folder icon

    Hi all, I have an issue where all the folders in my User folder are the generic folder icon (e.g. not the pictures, music, desktop specific ones etc). This seems to not just be in my user area, but an issue with Finder, as when viewing my Mac mini's

  • How to undeploy retired applications?

    Hi there! I'm new to Weblogic Server and to this forum as well. I am redeploying an application without any problem but before redeploying a new version I need to undeploy manually (through command line or webconsole) the old version of the app. My q

  • Skinning af|menu

    Hi, I am trying to customize look of af|menu component. In my jspx page I have af|menuBar component and several af|menu items in it. I want to create rounded edges and to put background color gradients on that top level menu items. In skinning docume