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\'
-- 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'
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' 
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
SET @name='Ma_Base'
-- Renseigner le répertoire de 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'
  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

Posts les plus consultés de ce blog

Comment calculer YTD, MTD en MDX - PeriodsToDate

Comment vérifier l'existence d'un fichier avant d'exécuter des tâches

Gestion de sécurité SSRS