Backup/Restore d'une Base de données
Backup Database :
DECLARE @name VARCHAR(50) -- nom de la base de données
DECLARE @path VARCHAR(256) -- chemin du fichier du Backup
DECLARE @fileName VARCHAR(256) -- nom du fichier pour le Backup
DECLARE @fileDate VARCHAR(20) -- date du backup
DECLARE @SQL NVARCHAR(MAX)
-- Renseigner le nom de la base de données à migrer
SET @name='Ma_Base'
-- Renseigner le répertoire de Backup
SET @path = N'C:\mssql\MSSQL.2\MSSQL\Backup\'
SET @path = N'C:\mssql\MSSQL.2\MSSQL\Backup\'
-- Mettre la base en mode Read_Only pour éviter tout écriture ou mise à jour de la base
SET @SQL = 'ALTER DATABASE ' + @name + ' SET READ_ONLY WITH ROLLBACK IMMEDIATE'
SET @SQL = 'ALTER DATABASE ' + @name + ' SET READ_ONLY WITH ROLLBACK IMMEDIATE'
EXECUTE (@SQL)
-- Spécifier le format du nom de fichier
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
SET @fileName = @path + @name + '_backup_' + @fileDate + '_Migration.BAK'
-- Spécifier le format du nom de fichier
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
SET @fileName = @path + @name + '_backup_' + @fileDate + '_Migration.BAK'
BACKUP DATABASE @name TO DISK=@fileName WITH STATS = 10
Restore Database :
-- Renseigner les fichiers physiques et logiques
--
--
-- Step 1 : Restore de la base de données XXXXXX
DECLARE @name VARCHAR(50) -- nom de la base de données
DECLARE @path VARCHAR(256) -- chemin du fichier du Backup
DECLARE @fileName VARCHAR(256) -- nom du fichier Backup
DECLARE @fileDate VARCHAR(20) -- date du restore
declare @SQL nvarchar(max)
-- renseigner le nom de la base de données à restaurer
DECLARE @path VARCHAR(256) -- chemin du fichier du Backup
DECLARE @fileName VARCHAR(256) -- nom du fichier Backup
DECLARE @fileDate VARCHAR(20) -- date du restore
declare @SQL nvarchar(max)
-- renseigner le nom de la base de données à restaurer
SET @name='Ma_Base'
-- Renseigner le répertoire de Backup
SET @path = N'F:\mssql\Backup\'
SET @path = N'F:\mssql\Backup\'
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
SET @fileName = @path + @name + '_backup_' + @fileDate + '.BAK'
RESTORE filelistonly from disk=@fileName
-- Step 2 : Attention ! Renseigner les noms des fichiers logiques
RESTORE DATABASE @name
FROM DISK = @fileName
WITH
MOVE 'LogicalNameForTheMDF' TO 'C:\XXX\data\XXXXXXXXXX_Data.mdf',
MOVE 'LogicalNameForTheLDF' TO 'C:\XXX\log\XXXXXXXXXXX_Log.ldf',
STATS = 10
SET @SQL = 'ALTER DATABASE ' + @name + ' SET READ_WRITE WITH ROLLBACK IMMEDIATE'
Exec (@SQL)
set @SQL='ALTER DATABASE ' + @name + ' SET compatibility_level=100'
FROM DISK = @fileName
WITH
MOVE 'LogicalNameForTheMDF' TO 'C:\XXX\data\XXXXXXXXXX_Data.mdf',
MOVE 'LogicalNameForTheLDF' TO 'C:\XXX\log\XXXXXXXXXXX_Log.ldf',
STATS = 10
SET @SQL = 'ALTER DATABASE ' + @name + ' SET READ_WRITE WITH ROLLBACK IMMEDIATE'
Exec (@SQL)
set @SQL='ALTER DATABASE ' + @name + ' SET compatibility_level=100'
Exec (@SQL)
************************************************
N.B :
En ce qui concerne le niveau de compatibilité, s'assurer de bien migrer la BD vers la bonne version :
- 90 = SQL Server 2005
- 100 = SQL Server 2008 and SQL Server 2008 R2
- 110 = SQL Server 2012
Commentaires
Enregistrer un commentaire