Bonjour à tous,
Je suis en train de développer un script de création de data base d'archives.
J'ai ma base Principale, et tous les ans, une nouvelle base se créera à partir de la principale, jusque là rien de bien méchant.
Voici le code de restauration :
RESTORE DATABASE [Archives_2009] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\PANORAMA_TEST.bak' WITH FILE = 1, MOVE N'PANORAMA_TEST' TO N'D:\SQL\PROD\Archives_2009.mdf', MOVE N'PANORAMA_TEST_log' TO N'D:\SQL\PROD\Archives_2009_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [Archives_2009] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\PANORAMA_TEST.bak' WITH FILE = 2, MOVE N'PANORAMA_TEST' TO N'D:\SQL\PROD\Archives_2009.mdf', MOVE N'PANORAMA_TEST_log' TO N'D:\SQL\PROD\Archives_2009_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [Archives_2009] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\PANORAMA_TEST.bak' WITH FILE = 3, MOVE N'PANORAMA_TEST' TO N'D:\SQL\PROD\Archives_2009.mdf', MOVE N'PANORAMA_TEST_log' TO N'D:\SQL\PROD\Archives_2009_log.LDF', NORECOVERY, NOUNLOAD, REPLACE, STATS = 10
GO
RESTORE DATABASE [Archives_2009] FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\PANORAMA_TEST.bak' WITH FILE = 4, MOVE N'PANORAMA_TEST' TO N'D:\SQL\PROD\Archives_2009.mdf', MOVE N'PANORAMA_TEST_log' TO N'D:\SQL\PROD\Archives_2009_log.LDF', NOUNLOAD, REPLACE, STATS = 10
GO
Comme vous pouvez le remarquer, la restauration se divise en 4 parties avec à chaque fois la même requête, sauf que l'argument "File" change de valeur.
Je suppose que cela est du à la taille de la base (1,2Go).
Le problème est donc que le code de restauration sera variable en fonction de la taille de la base de données, par conséquent, je ne peux pas créer un script pouvant s'adapter dans 5 ans, à une base de données de 4,4Go qui demandera 8 fois cette requête alors que mon script n'en contient que 4 ...
J'ai essayé de touché au MAXDATABLOCK et au MAXTRANSFERSIZE afin qu'il ne me découpe pas la restauration en sous requêtes, mais rien n'y fait :(
J'espère avoir été clair ...
Merci.