Sélectionner une page


Tout le monde par défaut RESTORE DATABASE livré avec RECOVERY Configuration. L’option ‘NORECOVERY’ indique essentiellement au serveur SQL que la base de données attend d’autres fichiers de récupération (éventuellement DIFF Fichier et JOURNAL Fichier et, si possible, un fichier de sauvegarde du journal de fin). Les options RECOVERY vous permettent de terminer toutes les transactions et de rendre la base de données disponible pour l’exécution des transactions.

Donc:

  1. si votre base de données est configurée avec FACILE Vous ne pouvez utiliser qu’un seul modèle de récupération PLEIN restaurer avec NORECOVERY Option si vous en avez un DIFF Sauvegarde. Non JOURNAL Les sauvegardes sont autorisées dans FACILE Base de données du modèle de récupération.
  2. Sinon, si votre base de données est configurée avec PLEIN ou alors EN VRAC Vous pouvez effectuer un modèle de récupération PLEIN Restaurer suivi de NORECOVERYOption, puis faites-en une DIFF suivie par NORECOVERYet enfin performer JOURNAL restaurer avec RECOVERY Possibilité.

Remarquer, DOIT AVOIR LA DERNIÈRE QUESTION DE RÉCUPÉRATION RECOVERY POSSIBILITÉ. Cela pourrait ou non être une manière explicite. Dans Therms de T-SQL, la situation est la suivante:

1.

 USE [master]
    GO
    RESTORE DATABASE Database_name 
    FROM DISK = N'\path_of_backup_file.bak WITH FILE = 1, [REPLACE],NOUNLOAD, 
    RECOVERY -- This option could be omitted.
    GO

L’option WITH REPLACE doit être utilisée avec précaution car elle peut entraîner une perte de données

Si vous effectuez une sauvegarde FULL et DIFF, vous pouvez les utiliser

   USE [master]
    GO
    RESTORE DATABASE Database_name
      FROM DISK = N'\path_of_backup_file.bak' WITH FILE = 1, 
       NOUNLOAD,NORECOVERY
    GO
    RESTORE DATABASE Database_name
      FROM DISK =N'\path_of_**diff**backup_file.bak' WITH FILE = 1, 
     NOUNLOAD, RECOVERY
    GO

 2. USE [master]
    GO
   -- Perform a Tail-Log backup, if possible. 
   BACKUP LOG Database_name
   GO
   -- Restoring a FULL backup
   RESTORE DATABASE Database_name
    FROM DISK = N'\path_of_backup_file.bak' WITH FILE = 1, 
     NOUNLOAD,NORECOVERY
  GO 
  -- Restore the last DIFF backup
  RESTORE DATABASE Database_name
    FROM DISK = N'\path_of_DIFF_backup_file.bak' WITH FILE = 1,
     NORECOVERY,NOUNLOAD
  GO
  -- Restore a Log backup
  RESTORE LOG Database_name
    FROM DISK = N'path_of_LOG_backup_file.trn' WITH FILE = 2,
    RECOVERY, NOUNLOAD
  GO

Bien sûr, vous pouvez effectuer une restauration en utilisant cette option STATS = 10 Cela indique à SQL Server de rapporter tous les 10% terminés.

Si vous le souhaitez, vous pouvez observer le processus ou l’interroger en temps réel. Comme suit:

USE[master]
GO
SELECT session_id AS SPID, command, a.text AS Query, start_time, percent_complete, dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time 
    FROM sys.dm_exec_requests r CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a 
        WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE')
GO

J’espère que cela aide.



Source link

Recent Posts