Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Correctif :"Le journal de sauvegarde ne peut pas être exécuté car il n'y a pas de sauvegarde de la base de données actuelle." dans SQL Server/SQL Edge

Si vous essayez de sauvegarder les journaux de transactions dans une base de données SQL Server ou SQL Edge, mais que vous obtenez une erreur indiquant que BACKUP LOG ne peut pas être effectué car il n'y a pas de sauvegarde de base de données actuelle , vous devrez effectuer au moins une sauvegarde complète de la base de données avant de tenter de sauvegarder les journaux de transactions.

L'erreur

Voici un exemple de code qui génère l'erreur :

BACKUP LOG Music 
TO DISK = '/var/opt/mssql/backups/Music.trn';

Résultat :

Msg 4214, Level 16, State 1, Line 1
BACKUP LOG cannot be performed because there is no current database backup.

La raison

Cette erreur se produit chaque fois que vous essayez de sauvegarder le journal des transactions sans avoir exécuté au préalable une sauvegarde complète de la base de données.

Vous devez avoir créé au moins une sauvegarde complète avant de pouvoir créer des sauvegardes de journaux.

La solution

Tout ce que vous avez à faire est de créer au moins une sauvegarde complète de la base de données avant d'essayer de sauvegarder les fichiers journaux.

Exemple :

BACKUP DATABASE Music 
    TO DISK = '/var/opt/mssql/backups/Music.bak' 
    WITH FORMAT;

Désormais, les journaux de transactions peuvent être sauvegardés selon les besoins :

BACKUP LOG Music 
TO DISK = '/var/opt/mssql/backups/Music.trn';

Résultat :

Processed 3 pages for database 'Music', file 'Music_log' on file 1.