Situatie Schets:
Sinds jaar en dag draait men in deze organisatie met het roemruchte Exact voor Windows (momenteel versie 3.73.6 voor degenen die het interesseerd) vanaf een Novell Netware Server (B-Trieve versie dus)
Dagelijks wordt door de finance afdeling van de 2 actieve productie administraties 004 en 005 een backup naar file gemaakt binnen exact. Deze backup wordt vervolgens - eveneens binnen exact - terug gelezen in resp. de 400 en 500 administratie, zodat men dingen in deze adminitratie kan testen voor het op de productie uitgeprobeerd wordt (voorkomt dat er werk verloren gaat door de ietwat *kuch* brakke gedragingen van Exact), en laat een fixed point in time zien waardoor er financele bewerkingen en aansluitingen gerealiseerd worden terwijl de overige mensen weer verder kunnen werken.
Needless to say, die restore naar test administratie is van vitaal belang in onze financiele processen.
Probleemstelling
Met de komst van een Windows2003 Active Directory, en genoemde stabileiteits problemen van Exact-Btrieve heeft men besloten om te gaan migreren naar de SQL versie van Exact: Exact Globe voor Windows. (LET OP: dit is dus *NIET* Exact Globe 200x, maar de oude B-Trieve versie, maar dan gebaseerd op MS SQL 7.0.)
Middels "Enterprise Manager" kan je een backup maken van een database naar file, en deze vervolgens terug halen van die file - OOK naar een database met een aparte naam.
screenies:

Dit lijkt vrij eenvoudig, het werkt ook, wanneer je dit handmatig doet.
Nu moet deze handeling echt *ELKE* dag gebeuren. En da's niet fijn als je het met het handje moet doen. vergeet je iets aan te passen... dan ben je pielemans, want dan overschrijf je in sommige gevallen de productie DB.
Het idee is dus een TSQL job in de server Agent te bouwen die dit doet.
Backup is geen probleem. Dat werkt in notime. Perslot van rekening is dat volledig gedocumenteerd.
Voorbeeld T-SQL Code:
Zover ik na kan gaan zou dit (ongeveer) de code moeten zijn om de restore te doen.
Msg 3234, Sev 16: File 'EfW_004.mdf' is not a database file for database 'EfW_400'. [SQLSTATE 42000]
Msg 3013, Sev 16: Backup or restore operation terminating abnormally. [SQLSTATE 42000]
Ik hoop dat er een SQL koning hier rond dwaalt die mij kan vertellen wat er mis gaat. Zelf ben ik eigenlijk niet zo'n SQL held, en de kennis die ik heb richt zich vooral op MySQL.
Sinds jaar en dag draait men in deze organisatie met het roemruchte Exact voor Windows (momenteel versie 3.73.6 voor degenen die het interesseerd) vanaf een Novell Netware Server (B-Trieve versie dus)
Dagelijks wordt door de finance afdeling van de 2 actieve productie administraties 004 en 005 een backup naar file gemaakt binnen exact. Deze backup wordt vervolgens - eveneens binnen exact - terug gelezen in resp. de 400 en 500 administratie, zodat men dingen in deze adminitratie kan testen voor het op de productie uitgeprobeerd wordt (voorkomt dat er werk verloren gaat door de ietwat *kuch* brakke gedragingen van Exact), en laat een fixed point in time zien waardoor er financele bewerkingen en aansluitingen gerealiseerd worden terwijl de overige mensen weer verder kunnen werken.
Needless to say, die restore naar test administratie is van vitaal belang in onze financiele processen.
Probleemstelling
Met de komst van een Windows2003 Active Directory, en genoemde stabileiteits problemen van Exact-Btrieve heeft men besloten om te gaan migreren naar de SQL versie van Exact: Exact Globe voor Windows. (LET OP: dit is dus *NIET* Exact Globe 200x, maar de oude B-Trieve versie, maar dan gebaseerd op MS SQL 7.0.)
Middels "Enterprise Manager" kan je een backup maken van een database naar file, en deze vervolgens terug halen van die file - OOK naar een database met een aparte naam.
screenies:

Dit lijkt vrij eenvoudig, het werkt ook, wanneer je dit handmatig doet.
Nu moet deze handeling echt *ELKE* dag gebeuren. En da's niet fijn als je het met het handje moet doen. vergeet je iets aan te passen... dan ben je pielemans, want dan overschrijf je in sommige gevallen de productie DB.
Het idee is dus een TSQL job in de server Agent te bouwen die dit doet.
Backup is geen probleem. Dat werkt in notime. Perslot van rekening is dat volledig gedocumenteerd.
Voorbeeld T-SQL Code:
Restore zou ook geen probleem moeten zijn, ware het niet dat alles wat ik zie ervan uitgaat dat je naar dezelfde DB een restore uitvoert.DUMP DATABASE EfW_004 TO EGvW_004 WITH NOUNLOAD, NOINIT, NOSKIP
GO
DUMP TRANSACTION EfW_004 WITH TRUNCATE_ONLY
GO
Zover ik na kan gaan zou dit (ongeveer) de code moeten zijn om de restore te doen.
de uiteindelijke foutmelding die er uit komt is dan:RESTORE DATABASE EfW_400
FROM EGvW_004
WITH FILE = 1, NORECOVERY, REPLACE,
MOVE 'EfW_004.mdf' TO 'D:\Exact\BESTW2\400\EfW_400.mdf',
MOVE 'EfW_004.ldf' TO 'D:\Exact\BESTW2\400\EfW_400.ldf'
GO
LOAD TRANSACTION EfW_400
FROM EGvW_004
GO
Msg 3234, Sev 16: File 'EfW_004.mdf' is not a database file for database 'EfW_400'. [SQLSTATE 42000]
Msg 3013, Sev 16: Backup or restore operation terminating abnormally. [SQLSTATE 42000]
Ik hoop dat er een SQL koning hier rond dwaalt die mij kan vertellen wat er mis gaat. Zelf ben ik eigenlijk niet zo'n SQL held, en de kennis die ik heb richt zich vooral op MySQL.
Better to have loved and lost then never loved at all... yeah right.