Sauvegarde et restauration de votre base de données SQL Server à partir de la ligne de commande
La partie la plus importante d'un plan de maintenance SQL Server consiste à sauvegarder 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 vrai fichier de sauvegarde via SQL Server..
Bien que cela puisse être fait en développant un plan de maintenance dans SQL Management Studio, les éditions gratuites Express 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] TO 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 "”
Les éléments ci-dessus créent une copie de sauvegarde entièrement restaurable de «MyDB» dans le fichier «D: BackupsMyDB.bak», qui peut être utilisée 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 être créé 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 ayant uniquement accès à la machine locale. 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 “RESTAURATION DE LA BASE DE DONNÉES [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 lors de l'utilisation de la commande ci-dessus est qu'elle est destinée à être utilisée sur le même serveur SQL Server 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 peuvent 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 des 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 versions antérieures, remplacez «SqlCmd» par «oSql»..