Originally Posted by
rvk
De stappen die ik meestal doe zijn...
(Nou moet ik even achter mijn mobiel vandaan om op de computer te kijken... Moment...)
Nu vanaf de pc.... hier zijn de stappen.
Ik probeer dus altijd de datebase te herstellen.
Het kan dus zijn dat sommige records niet goed meekomen.
Dan krijg je bij gbak restore ook foutmeldingen als de constraints gezet gaan worden.
(Welke foutmelding kreeg je daar precies????)
Code:
"C:\Program Files\Firebird\Firebird_2_1\bin\gbak.exe" -b -v -user sysdba -pass masterkey "mijnfoutedb.fdb" mijnbackup.fbk
gbak: writing index PK_VC_301
gbak: writing index VC_301_Z_VC_001
gbak: writing data for table VC_301
gbak: ERROR:database file appears corrupt ()
gbak: ERROR: bad checksum
gbak: ERROR: checksum error on database page 41736
gbak: ERROR: gds_$receive failed
gbak:Exiting before completion due to errors
"C:\Program Files\Firebird\Firebird_2_1\bin\gfix.exe" -v -full -user sysdba -pass masterkey "mijnfoutedb.fdb"
database file appears corrupt ()
-bad checksum
-checksum error on database page 41735
"C:\Program Files\Firebird\Firebird_2_1\bin\gfix.exe" -mend -full -ignore -user sysdba -pass masterkey "mijnfoutedb.fdb"
Summary of validation errors
Number of record level errors : 4
Number of data page errors : 6
Number of index page errors : 4
Number of database page errors : 5428
"C:\Program Files\Firebird\Firebird_2_1\bin\gfix.exe" -v -full -user sysdba -pass masterkey "mijnfoutedb.fdb"
Summary of validation errors
Number of record level errors : 4
Number of index page errors : 4
Number of database page errors : 5422
"C:\Program Files\Firebird\Firebird_2_1\bin\gbak.exe" -b -v -ignore -user sysdba -pass masterkey "mijnfoutedb.fdb" "mijnbackup.fbk"
"C:\Program Files\Firebird\Firebird_2_1\bin\gbak.exe" -c -v -REP -user sysdba -pass masterkey "mijnbackup.fbk" "mijnherstel.fdb" 2> herstel.log
gbak: activating and creating deferred index ADMINISTRATIE_VALUTA
gbak: committing metadata
gbak:finishing, closing, and going home
gbak:Database is not online due to failure to activate one or more indices.
gbak:Run gfix -online to bring database online without active indices.
Met een beetje geluk heb je nu in mijnhersteldb.fdb een database (die offline is) met bijna alle records.
Maar er kunnen er een paar missen en de database is 'offline'.
Je kunt nu wel met flamerobin (of andere manager) verbinding met je db maken en met select kijken welke records je mist en waar precies je constraints de mist in gaan.
Als je die records met update of insert aanpast, dan kun je daarna de constraints wel goed zetten, indexen weer toevoegen en database online halen.
Dus samengevat:
Code:
@rem copy old
"C:\Program Files\Firebird\Firebird_2_1\bin\gfix.exe" -v -full -user sysdba -pass masterkey "mijnfoutedb.fdb" 2> log1.log
"C:\Program Files\Firebird\Firebird_2_1\bin\gfix.exe" -mend -full -ignore -user sysdba -pass masterkey "mijnfoutedb.fdb" 2> log2.log
"C:\Program Files\Firebird\Firebird_2_1\bin\gfix.exe" -v -full -user sysdba -pass masterkey "mijnfoutedb.fdb" 2> log3.log
"C:\Program Files\Firebird\Firebird_2_1\bin\gbak.exe" -b -v -ignore -user sysdba -pass masterkey "mijnfoutedb.fdb" "mijnbackup.fbk" 2> log4.log
"C:\Program Files\Firebird\Firebird_2_1\bin\gbak.exe" -c -v -REP -user sysdba -pass masterkey "mijnbackup.fbk" "mijnherstel.fdb" 2> log5.log
pause
exit
@rem repair
"C:\Program Files\Firebird\Firebird_2_1\bin\gfix.exe" -online normal -user sysdba -pass masterkey "mijnherstel.fdb"
(De @rem repair staat dus voor eventuele repair werkzaamheden.)
Overigens bestaat er de kans dat na de gfix full/gfix mend/gfix full, de db al goed is. Maar gezien jij echt databasepage-errors hebt denk ik dat je de volledige repair moet doen.
Bookmarks