Sauvegardes Syntaxe Backing Up a Whole Database BACKUP DATABASE { database_name | @database_name_var } TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;] Backing Up Specific Files or Filegroups BACKUP DATABASE { database_name | @database_name_var } <file_or_filegroup> [ ,...n ] TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;] Creating a Partial Backup BACKUP DATABASE { database_name | @database_name_var } READ_WRITE_FILEGROUPS [ , <read_only_filegroup> [ ,...n ] ] TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ] [;] Backing Up the Transaction Log (full and bulk-logged recovery models) BACKUP LOG { database_name | @database_name_var } TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { <general_WITH_options> | <log-specific_optionspec> } [ ,...n ] ] [;] Truncating the Transaction Log (breaks the log chain) BACKUP LOG { database_name | @database_name_var } WITH { NO_LOG | TRUNCATE_ONLY } [;] <backup_device>::= { { logical_device_name | @logical_device_name_var } | { DISK | TAPE } = { 'physical_device_name' | @physical_device_name_var } } <MIRROR TO clause>::= MIRROR TO <backup_device> [ ,...n ] <file_or_filegroup>::= { FILE = { logical_file_name | @logical_file_name_var } | FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } } <read_only_filegroup>::= FILEGROUP = { logical_filegroup_name | @logical_filegroup_name_var } <general_WITH_options> [ ,...n ]::= --Backup Set Options COPY_ONLY | DESCRIPTION = { 'text' | @text_variable } | NAME = { backup_set_name | @backup_set_name_var } | PASSWORD = { password | @password_variable } | [ EXPIREDATE = { date | @date_var } | RETAINDAYS = { days | @days_var } ] | NO_LOG --Media Set Options { NOINIT | INIT } | { NOSKIP | SKIP } | { NOFORMAT | FORMAT } | MEDIADESCRIPTION = { 'text' | @text_variable } | MEDIANAME = { media_name | @media_name_variable } | MEDIAPASSWORD = { mediapassword | @mediapassword_variable } | BLOCKSIZE = { blocksize | @blocksize_variable } --Data Transfer Options BUFFERCOUNT = { buffercount | @buffercount_variable } | MAXTRANSFERSIZE = { maxtransfersize | @maxtransfersize_variable } --Error Management Options { NO_CHECKSUM | CHECKSUM } | { STOP_ON_ERROR | CONTINUE_AFTER_ERROR } --Compatibility Options RESTART --Monitoring Options STATS [ = percentage ] --Tape Options { REWIND | NOREWIND } | { UNLOAD | NOUNLOAD } --Log-specific Options { NORECOVERY | STANDBY = undo_file_name } | NO_TRUNCATE Sauvegardes partielles (Nouveauté) Les sauvegardes partielles sont nouvelles dans SQL Server 2005. Les sauvegardes partielles sont conçues pour le mode de récupération simple et permettent d'améliorer la souplesse des sauvegardes de bases de données très volumineuses qui contiennent un ou plusieurs groupes de fichiers en lecture seule. Cependant, les sauvegardes partielles fonctionnent sur toutes les bases de données, quel que soit le mode de récupération. Une sauvegarde partielle s'apparente à une sauvegarde complète de base de données, mais la première ne contient pas tous les groupes de fichiers. En revanche, une sauvegarde partielle contient toutes les données du groupe de fichiers primaire, chaque groupe de fichiers en lecture-écriture et tous les fichiers en lecture seule éventuellement spécifiés. Les sauvegardes partielles sont utiles à chaque fois que vous souhaitez exclure des groupes de fichiers en lecture seule. La sauvegarde partielle d'une base de données en lecture seule ne contient que le groupe de fichiers primaire. SYNTHAXE BACKUP DATABASE nom_base de données READ_WRITE_FILEGROUPS [ , <file_filegroup_list> ] TO <backup_device> WITH DIFFERENTIAL Remarque : Les sauvegardes partielles ne sont pas prises en charge par SQL Server Management Studio ou par l'Assistant Plan de maintenance. Sauvegardes partielles différentielles Les sauvegardes partielles différentielles sont utilisées uniquement avec les sauvegardes partielles. Une sauvegarde différentielle partielle n'enregistre que les extensions de données qui ont changé dans les groupes de fichiers depuis la sauvegarde partielle précédente, appelée la base de la sauvegarde différentielle. Si seules les données capturées par une sauvegarde partielle sont modifiées, une sauvegarde partielle différentielle est plus petite que la base et plus rapide à créer. Pour une base de données volumineuse, la création d'une sauvegarde différentielle facilite la réalisation de sauvegardes des données fréquentes et réduit ainsi le risque de perte de données. Toutefois, la restauration à partir de sauvegardes partielles différentielles demande nécessairement plus de temps et de procédures que la restauration à partir d'une sauvegarde partielle. Le processus de restauration est aussi plus complexe car il implique deux fichiers de sauvegarde. Une sauvegarde partielle différentielle est destinée à être utilisée avec une seule base différentielle. La tentative de création d'une sauvegarde partielle différentielle multibase génère une erreur. Unité de sauvegarde Au cours d'une opération de sauvegarde, les données sauvegardées (la sauvegarde) sont écrites sur une unité de sauvegarde physique. Une unité de sauvegarde physique est soit un lecteur de bande, soit un fichier disque fourni par le système d'exploitation. Vous pouvez réaliser une sauvegarde sur 1 à 64 unités de sauvegarde. Si une sauvegarde nécessite plusieurs unités de sauvegarde, les unités doivent toutes correspondre à un seul type d'unité (disque ou bande). CREATION : Développez Objets serveur, puis cliquez avec le bouton droit sur Unités de sauvegarde. Cliquez sur Nouvelle unité de sauvegarde, pour ouvrir la boîte de dialogue Unité de sauvegarde. Entrez un nom d'unité OU USE master; GO EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak'; USE master; GO EXEC sp_addumpdevice 'disk', 'networkdevice', '\\<servername>\<sharename>\<path>\<filename>.bak'; USE master; GO EXEC sp_addumpdevice 'tape', 'tapedump1', '\\.\tape0'; USE master GO EXEC sp_addumpdevice 'disk', 'AdvWorksData', 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BACKUP\AdvWorksData.bak'; GO BACKUP DATABASE AdventureWorks TO AdvWorksData WITH FORMAT; GO Mise en miroir des sauvegardes PS : Les sauvegardes mises en miroir ne peuvent être créées ou restaurées qu'à l'aide des instructions Transact-SQL BACKUP et RESTORE. SQL Server Management Studio ne prend pas en charge ces sauvegardes. BACKUP DATABASE AdventureWorks TO BackupOrginal MIRROR TO BackupMirror WITH FORMAT ATELIER Save de AW USE master GO BACKUP DATABASE AdventureWorks TO BackupDev MIRROR TO MirrorDev WITH FORMAT, CHECKSUM GO VERIFICATION de BACKUP RESTORE VERIFYONLY FROM BackupDev WITH CHECKSUM GO RESTORE VERIFYONLY FROM MirrorDev WITH CHECKSUM GO RESTAURATION RESTORE DATABASE AdventureWorks FROM DISK = 'D:\Practices\Backups\BackupDev.bak' WITH REPLACE Restauration d'une page RESTORE DATABASE AdventureWorks PAGE = '1:610' - -(N° du fichier : N° de la page endommagée) FROM AWBack WITH NORECOVERY GO ATELIER USE master GO BACKUP DATABASE AdventureWorks TO DISK = 'C:\Backups\AWDBBackup.bak' GO USE AdventureWorks GO DBCC CHECKALLOC GO CD C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data Nom de fichier : Page : AdventureWorks_Data.mdf 610 Décalage : 0 Longueur : 4096 Capture instantanée de base de données SQL Server 2005 prend en charge des technologies de sauvegarde et de restauration de capture instantanée (sauvegarde de capture instantanée de SQL Server) conjointement avec des fournisseurs indépendants de matériels et de logiciels. Les sauvegardes de capture instantanée permettent de réduire, voire d'éliminer l’utilisation de ressources SQL Server 2005 pour effectuer la sauvegarde. Cette opération présente de nombreux avantages pour les bases de données de taille moyenne à grande pour lesquelles la disponibilité est très importante. Les sauvegardes de capture instantanée présentent les principaux avantages suivants : une sauvegarde peut être créée rapidement, en général en quelques secondes, sans aucun impact sur le serveur ou un impact minimal ; la restauration peut être effectuée à partir d'une sauvegarde sur disque tout aussi rapidement ; la sauvegarde sur bande peut être effectuée par un autre hôte sans aucun impact sur le système de production ; la copie d'une base de données de production peut être créée instantanément pour le rapport ou le test. SYNTHAXE USE master; GO -- Get the SQL Server data path DECLARE @data_path nvarchar(256); SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE database_id = 1 AND file_id = 1); -- execute the CREATE DATABASE statement EXECUTE ( 'CREATE DATABASE sales_snapshot0600 ON ( NAME = SPri1_dat, FILENAME = '''+ @data_path + 'SPri1dat_0600.ss''), ( NAME = SPri2_dat, FILENAME = '''+ @data_path + 'SPri2dt_0600.ss''), ( NAME = SGrp1Fi1_dat, FILENAME = '''+ @data_path + 'SG1Fi1dt_0600.ss''), ( NAME = SGrp1Fi2_dat, FILENAME = '''+ @data_path + 'SG1Fi2dt_0600.ss''), ( NAME = SGrp2Fi1_dat, FILENAME = '''+ @data_path + 'SG2Fi1dt_0600.ss''), ( NAME = SGrp2Fi2_dat, FILENAME = '''+ @data_path + 'SG2Fi2dt_0600.ss'') AS SNAPSHOT OF Sales'); GO Restauration de lignes ALTER TABLE Production.WorkOrderRouting NOCHECK CONSTRAINT CK_WorkOrderRouting_ActualEndDate INSERT INTO Production.WorkOrderRouting SELECT * FROM AdventureWorks_dbsnapshot_1800.Production.WorkOrderRouting ALTER TABLE Production.WorkOrderRouting CHECK CONSTRAINT CK_WorkOrderRouting_ActualEndDate Annulation d'une mise à jour UPDATE HumanResources.Department SET Name = ( SELECT Name FROM AdventureWorks_dbsnapshot_1800.HumanResources.Department WHERE DepartmentID = 1) WHERE DepartmentID = 1 Récupération d'un objet supprimé ALTER TABLE Production.WorkOrderRouting NOCHECK CONSTRAINT CK_WorkOrderRouting_ActualEndDate INSERT INTO Production.WorkOrderRouting SELECT * FROM AdventureWorks_dbsnapshot_1800.Production.WorkOrderRouting ALTER TABLE Production.WorkOrderRouting CHECK CONSTRAINT CK_WorkOrderRouting_ActualEndDate Retour à la capture instantanée RESTORE DATABASE AdventureWorks FROM DATABASE_SNAPSHOT = 'AdventureWorks_dbsnapshot_1800' ATELIER CREATE DATABASE AdventureWorks_Snapshot1200 ON ( NAME = N'AdventureWorks_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AW_1200.ss') AS SNAPSHOT OF AdventureWorks GO SELECT * FROM AdventureWorks_Snapshot1200.Sales.SalesOrderDetail ORDER BY SalesOrderID GO SELECT * FROM AdventureWorks.Sales.SalesOrderDetail ORDER BY SalesOrderID GO DROP TABLE AdventureWorks.Sales.SalesOrderDetail GO RESTORE DATABASE AdventureWorks FROM DATABASE_SNAPSHOT = 'AdventureWorks_Snapshot1200' GO Restaurer de la base de données master sqlservr.exe -c –m -c Indique qu'une instance de SQL Server est démarrée indépendamment du Gestionnaire de contrôle des services Windows. Cette option sert à réduire le délai de démarrage de SQL Server lorsque celui-ci est lancé depuis une ligne de commande. -m Spécifie le démarrage d'une instance de SQL Server en mode mono-utilisateur. Dans ce mode, un seul utilisateur peut se connecter au démarrage de SQL Server. Le mécanisme CHECKPOINT (qui garantit le transfert régulier des transactions terminées du cache disque vers l'unité de bases de données) n'est pas lancé. Cette option est généralement utilisée en cas de problème au niveau de bases de données système requérant une réparation. Active l'option sp_configure allow updates. Par défaut, l'option allow updates est désactivée. Régénérer une version entièrement nouvelle de la base de données master E:\Servers\setup.exe /qn INSTANCENAME=<InstanceName> REINSTALL=SQL_Engine REBUILDDATABASE=1 SAPWD=<NewStrongPassword> [REINSTALLMODE] Ces informations concernent la réparation des composants installés. Lorsque vous utilisez REINSTALLMODE, vous devez spécifier un paramètre REINSTALL. Les paramètres REINSTALL utilisent les mêmes valeurs que les paramètres ADDLOCAL. Remarque : L'option REINSTALLMODE n'est disponible que dans une installation sans assistance, et vous devez utiliser l'option /qn ou l'option /qb. Le commutateur /qn supprime toutes les boîtes de dialogue et les messages d'erreur du programme d'installation. Si le commutateur /qn est spécifié, tous les messages d'installation, y compris les messages d'erreur, sont écrits dans les fichiers journaux de l'installation. [REBUILDDATABASE] Ces informations concernent la reconstruction des bases de données système. Lorsque les bases de données système sont endommagées, ou pour redéfinir le classement système, elles doivent être ramenées à l'état où elles se trouvaient lors de leur première installation. Cette fonctionnalité est accessible à l'aide du paramètre REBUILDDATABASE, en spécifiant REBUILDDATABASE=1. Les autres paramètres nécessaires lorsque vous utilisez REBUILDDATABASE sont : SQLACCOUNT, SQLPASSWORD SQLAGTACCOUNT, SQLAGTPASSWORD SQLBROWSERACCOUNT, SQLBROWSERPASSWORD