On Thu, 2005-01-27 at 16:33, Raimund Jacob wrote:

    Filip Sergeys wrote:
    
    hey Filip, * !
    
    i created my own script now, your one was of great help. here is what i 
    made differently:
    
    > 2) dynamically build a command script that will be executed by dbmcli in
    > the very last step. Start with bringing database in admin mode and do
    > util_connect
    
    that's what i do now, too. that's just the second-best solution since 
    you cannot detect errors when they happen. but see below..
    
    > 3) look for the counter file and extract the lognumber of the last
    > applied log file
    
    i do not use a counter-file. i look at the backup-history to find the 
    last successfully imported log fragment. works somehow like this:
    backup_history_open - make sure to see the current version
    backup_history_list -c LABEL,ACTION,RC -Inverted > $tmp
    
                               type-v   v-fragment v-action  v- error code
    l=`tail +3 $tmp | sed -e 's/^LOG_\([0-9]*\)|RESTORE *| *0|/\1/' -e t -e 
    '/.*/d' | head -1`


Thanx, I'll improve my script.

    
    ... now $l is the last fragment. this of course works only when the 
    history-list page we look at contains the matching line. my script fails 
    when it detects that it cannot parse this one page.
    
    > 4) build a loop that scans over every .arch file (archived logfile)
    > 5) if the lognumber in the .arch file is lower than the last applied log
    > number -> skip it
    > 6) if the lognumber in the .arch file is equal to the last applied log
    > number -> apply that log again. (this is needed because then you are
    > sure to have applied the last log PAGE, as already described in earlier
    > mails). The first log you apply should always start with "recover_start
    > ARCH LOG $lognr"
    
    yep.
    
    > 7) subsequent logfiles are applied with the command "recover_replace
    > ARCH </path/to/logfiles/> $lognr"
    > 8) update your counter file with the last lognumber you applied
    > 9) end with recover_cancel
    > 10) util_release (don't forget this one)
    > 11) bring the database back to sleep
    > 12) execute the dynamically build script
    
    yep.
    
    to make sure that inserting my logs worked out, i check the backup 
    history again to see if the last fragment is indeed the last file i 
    tried to import. if there is a mismatch, i abort and show both the 
    script and the result. but it didnt happen, yet.
    
    so this works, hooray. but: my DB crashes every time. i even changed the 
    LOG_SEGMENT_SIZE in both instances (let it be determined automatically). 
    no change. but the crash seems to do no harm.
    
    filip: may i ask you to check your knldiag.err for lines like this:
    
    2005-01-27 16:44:37 18778 ERR     8 Admin    ERROR 'cancelled' CAUSED 
    EMERGENCY SHUTDOWN


I know it does, but it doesn't seem to affect the import. We have
executed failovers during our DRP tests and everything was there up to
the last commit.
The actual failover script (this is another script) copies, just before
the backupinstance is brought online, also the online log files from the
failed instance. This way we can recover up to the last commit.


    perhaps your kernel crashes too, but you dont notice because you 
    db_offline it in any case.
    
    sap-folks: is this supposed to happen? anything i can do to prevent it?

I'd like to know too

    what i need to do now is to run export/import cycles automatically for 
    several days and see if this really works :)
    
    thanks for your help,
        Raimund
    

My pleasure.

Regards,

Filip

    -- 
    7. RedDot Anwendertagung der RedDot Usergroup e.V. am 31.1.2005
    Pinuts pr�sentiert neue Entwicklung, http://www.pinuts.de/news
    
    Pinuts media+science GmbH                 http://www.pinuts.de
    Dipl.-Inform. Raimund Jacob               [EMAIL PROTECTED]
    Krausenstr. 9-10                          voice : +49 30 59 00 90 322
    10117 Berlin                              fax   : +49 30 59 00 90 390
    Germany
    
    
    -- 
    MaxDB Discussion Mailing List
    For list archives: http://lists.mysql.com/maxdb
    To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]
    

-- 
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
* System Engineer, Verzekeringen NV *
* www.verzekeringen.be              *
* Oostkaai 23 B-2170 Merksem        *
* 03/6416673 - 0477/340942          *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

Reply via email to