/ / Sauvegarder et restaurer votre base de données SQL Server à partir de la ligne de commande

Sauvegarde et restauration de votre base de données SQL Server à partir de la ligne de commande

La partie la plus importante d'un serveur SQLLe plan de maintenance sauvegarde régulièrement vos bases de données. Pour sauvegarder une base de données, vous ne pouvez pas simplement copier les fichiers MDF et LDF respectifs de la base de données, car SQL Server les verrouille. Au lieu de cela, vous devez créer un véritable fichier de sauvegarde via SQL Server.

Bien que cela puisse être fait en développant unPlan de maintenance dans SQL Management Studio, les éditions Express gratuites de SQL Server ne proposent pas cette interface. Pour contourner ce problème, vous pouvez facilement sauvegarder vos bases de données en exécutant la commande ci-dessous tout en étant connecté en tant qu'administrateur Windows:

SqlCmd -E -S nom_serveur –Q “BASE DE DONNEES DE SAUVEGARDE [Name_of_Database] TO DISK = 'X: PathToBackupLocation [Name_of_Database] .bak'”

Les exemples ci-dessous aideront.

Instance SQL Server par défaut:

SqlCmd -E -S MyServer –Q “BASE DE DONNEES DE SAUVEGARDE [MyDB] SUR DISK = 'D: BackupsMyDB.bak'”

Instance nommée SQL Server:

SqlCmd -E -S MyServerMyInstance –Q “BASE DE DONNEES DE SAUVEGARDE [MyDB] TO DISK = 'D: BackupsMyDB.bak'”

Ce qui précède crée une copie de sauvegarde entièrement restaurable.“MyDB” dans le fichier “D: BackupsMyDB.bak” qui peut être utilisé pour la récupération après sinistre. Bien sûr, vous pouvez modifier l’emplacement de la sauvegarde et le fichier selon vos besoins, mais assurez-vous de spécifier un emplacement de dossier existant sur la machine locale. Ce fichier de sauvegarde peut ensuite être copié sur un lecteur de bande ou un autre emplacement de sauvegarde externe.

Une question commune est «Un fichier de sauvegarde peut-il êtrecréé sur un lecteur mappé ou un emplacement UNC? ”et la réponse rapide est non. La raison en est que le service Windows SQL Server s'exécute en tant que compte d'utilisateur qui n'a accès qu'à l'ordinateur local. Vous pouvez changer le compte sous lequel le service est exécuté, mais cela est vivement déconseillé pour des raisons de sécurité.

Restauration d'une sauvegarde de base de données à partir de la ligne de commande

Pour restaurer une base de données à partir d'un fichier de sauvegarde, utilisez simplement la commande suivante:

SqlCmd -E -S Nom_serveur –Q “BASE DE DONNEES DE RESTAURATION [Nom_de_la_Base de Données] FROM DISK = 'X: PathToBackupFile [Nom_Fichier] .bak'”

Par exemple:

SqlCmd -E -S MyServer –Q “RESTORE DATABASE [MyDB] FROM DISK =’ D: BackupsMyDB.bak '”

La commande ci-dessus restaurera une sauvegarde de «MyDB» à partir des données stockées dans le fichier de sauvegarde «D: BackupsMyDB.bak». Toute modification apportée à MyDB depuis la création du fichier de sauvegarde sera perdue.

Une chose importante à retenir lorsque vous utilisez leLa commande ci-dessus indique qu'il est destiné à être utilisé sur le même serveur SQL sur lequel le fichier de sauvegarde correspondant a été créé. Les fichiers de sauvegarde SQL stockent des informations «en coulisse» qui contrôlent où et comment les fichiers de données du fichier de sauvegarde sont copiés. Si vous restaurez une sauvegarde à partir d'un autre serveur SQL, les emplacements de chemin dans le fichier de sauvegarde risquent de ne pas correspondre au serveur sur lequel vous effectuez la restauration, ce qui entraînera une erreur. Bien que cela puisse être corrigé, il est beaucoup plus facile de restaurer les sauvegardes créées sur un autre serveur SQL Server à l'aide de l'outil SQL Management Studio.

Remarque: les commandes ci-dessus fonctionnent sur SQL 2005 et supérieur (toutes les éditions). Pour SQL 2000 et les versions antérieures, remplacez «SqlCmd» par «oSql».