Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :SQL Server
Azure SQL Managed Instance
Une sauvegarde de copie uniquement est une sauvegarde SQL Server indépendante de la séquence classique des sauvegardes SQL Server. Normalement, une sauvegarde modifie la base de données et affecte la restauration des sauvegardes ultérieures. Parfois, cependant, il est utile d’effectuer une sauvegarde à une fin précise sans affecter les procédures globales de sauvegarde et de restauration de la base de données. Pour cela, on peut recourir à une sauvegarde de copie uniquement.
Types de sauvegardes de copie uniquement
Les types de sauvegarde de copie uniquement sont les suivants :
Sauvegardes complètes de copie uniquement (tous les modèles de récupération)
Une sauvegarde complète de copie seule ne peut pas servir de base différentielle ou de sauvegarde différentielle et n’affecte pas la base différentielle.
La restauration d'une sauvegarde complète de copie uniquement est identique à la restauration de toute autre sauvegarde complète.
Sauvegardes uniquement de journaux (modèle de récupération complète et modèle de récupération en mode journalisé en bloc uniquement)
Une sauvegarde de journal de copie uniquement conserve le point d’archivage de journal existant et, par conséquent, n’affecte pas le séquencement des sauvegardes de journaux régulières. Les sauvegardes de journaux de type copie seule sont généralement superflues. Au lieu de cela, vous pouvez créer une sauvegarde de journal de routine et restaurer cette sauvegarde (à l’aide de l’option
WITH NORECOVERY
) avec toutes les sauvegardes de journaux précédentes requises pour la séquence de restauration.Une sauvegarde de journal en mode copie uniquement peut parfois être utile pour effectuer une restauration en ligne. Pour plus d’informations, suivez les instructions de l’article Exemple : Restauration en ligne d’un fichier en lecture-écriture (mode de récupération complet), en utilisant les fichiers de sauvegarde en copie seule à la place.
Le journal des transactions n'est jamais tronqué après une sauvegarde de type copie seule.
Remarques
Les sauvegardes de copie uniquement sont enregistrées dans la colonne is_copy_only
de la table backupset.
Dans Azure SQL Managed Instance, des sauvegardes de copie seule ne peuvent pas être créées pour une base de données chiffrée avec le chiffrement TDE (Transparent Data Encryption) géré par le service. TDE géré par le service utilise une clé interne pour chiffrer les données, et cette clé ne peut pas être exportée. Vous n’avez donc pas pu restaurer la sauvegarde ailleurs. Envisagez d’utiliser TDE géré par le client pour pouvoir créer des sauvegardes de type copie seule des bases de données chiffrées, mais assurez-vous que la clé de chiffrement est disponible pour une restauration ultérieure.
Créer une sauvegarde de type copie uniquement
Vous pouvez créer une sauvegarde en copie seule avec SQL Server Management Studio, Azure Data Studio, Transact-SQL ou PowerShell.
R : Utiliser SQL Server Management Studio
Dans cet exemple, une sauvegarde de copie seule de la base de données Sales
est sauvegardée sur le disque à l’emplacement de sauvegarde par défaut.
Dans l’ Explorateur d’objets, connectez-vous à une instance du moteur de base de données SQL Server et développez-la.
Développez Bases de données, cliquez avec le bouton droit sur
Sales
, pointez sur Tâches, puis sélectionnez Sauvegarder….Sur la page Général de la section Source, cochez la case Sauvegarde de copie seule.
Cliquez sur OK.
B. Utiliser Transact-SQL
Cet exemple crée une sauvegarde de copie seule pour la base de données Sales
utilisant le paramètre COPY_ONLY
. Une sauvegarde de copie seule du journal des transactions est également prise.
BACKUP DATABASE Sales
TO DISK = 'E:\BAK\Sales_Copy.bak'
WITH COPY_ONLY;
BACKUP LOG Sales
TO DISK = 'E:\BAK\Sales_LogCopy.trn'
WITH COPY_ONLY;
Remarque
COPY_ONLY
n’a aucun effet lorsqu’il est spécifié avec l’option DIFFERENTIAL
.
Chapitre C. Utiliser Transact-SQL et Azure SQL Managed Instance
Azure SQL Managed Instance supporte les sauvegardes complètes COPY_ONLY
. L’exemple effectue une COPY_ONLY
sauvegarde sur le stockage Blob de Microsoft Azure. Le nom du compte de stockage est mystorageaccount
. Le conteneur se nomme myfirstcontainer
. Une stratégie d’accès au stockage est créée avec des droits de lecture, d’écriture, de suppression et de liste. Les informations d’identification SQL Server, https://mystorageaccount.blob.core.windows.net/myfirstcontainer
, ont été créées à l’aide d’une signature d’accès partagé associée au secret de la stratégie d’accès au stockage. Pour plus d’informations sur la sauvegarde SQL Server vers le Stockage Blob Microsoft Azure, consultez sauvegarde et restauration SQL Server avec stockage Blob Azure et sauvegarde SQL Server vers l’URL du Stockage Blob Microsoft Azure.
-- Prerequisite to have write permissions
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/myfirstcontainer]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sp=...'; -- Enter your secret SAS token here.
BACKUP DATABASE MyDatabase
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabaseBackup.bak'
WITH STATS = 5, COPY_ONLY;
Pour effectuer une sauvegarde en copie seule divisée en plusieurs bandes, utilisez cet exemple :
BACKUP DATABASE MyDatabase
TO URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-01.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-02.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-03.bak',
URL = 'https://mystorageaccount.blob.core.windows.net/myfirstcontainer/MyDatabase-04.bak'
WITH COPY_ONLY;
D. Utiliser PowerShell
Cet exemple crée une sauvegarde de copie seule pour la base de données Sales
utilisant le paramètre -CopyOnly
.
Backup-SqlDatabase -ServerInstance 'SalesServer' -Database 'Sales' -BackupFile 'E:\BAK\Sales_Copy.bak' -CopyOnly