Nous avons configuré la mise en miroir de bases de données au cours du week-end et avons oublié de réactiver le travail de sauvegarde des journaux de transactions. Lorsque je suis arrivé ce matin, le journal des transactions avait grimpé à 58 Go et occupait la majeure partie de l'espace disque.
J'ai effectué une sauvegarde manuelle du journal des transactions sur le disque pour que la base de données fonctionne à nouveau, mais l'exécution de DBCC SHRINKFILE ne semble pas diminuer la taille physique du fichier journal des transactions.
DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000)
Si je vérifie l'utilisation du journal à l'aide de
DBCC SQLPERF(LOGSPACE)
Je peux voir que seulement 22% du journal actuel est utilisé
Nom de la base de données Taille du journal (Mo) Espace journal utilisé (%) État MyDatabaseName 55440.87 22.38189 0
Si je log_reuse_wait_desc
récupère dans sys.databses, le seul enregistrement que je vois est DATABASE_MIRRORING
, donc je suppose que le miroir joue un rôle dans la raison pour laquelle la taille physique du fichier journal ne diminuera pas?
SELECT log_reuse_wait_desc
FROM sys.databases
WHERE name = N'MyDatabaseName';
J'ai également remarqué que mon état de mise en miroir de la base de données principale est suspendu et que la tentative de reprise échoue immédiatement avec l'erreur suivante:
Le partenaire de mise en miroir distant pour la base de données 'MyDatabaseName', a rencontré l'erreur 5149, état 1, gravité 25. La mise en miroir de la base de données a été suspendue. Résolvez l'erreur sur le serveur distant et reprenez la mise en miroir, ou supprimez la mise en miroir et rétablissez l'instance du serveur miroir.
Les journaux d'erreurs sur le serveur miroir contiennent également cette erreur, mais contiennent également des erreurs sur le lecteur de fichier journal saturé
MODIFY FILE a rencontré l'erreur 112 du système d'exploitation (il n'y a pas assez d'espace sur le disque.) Lors de la tentative de développement du fichier physique.
et
F: \ Databaselogs \ MyDatabaseName_1.ldf: erreur de système d'exploitation 112 (il n'y a pas assez d'espace sur le disque.) Rencontrée.
Le serveur principal dispose de 60 Go sur le lecteur de fichier journal (il existe d'autres bases de données hébergées ici), tandis que le serveur en miroir ne dispose que de 45 Go.
La sauvegarde du fichier journal a rendu la base de données à nouveau utilisable, mais je souhaite également réduire la taille du fichier journal physique sur le disque et reprendre la mise en miroir.
Comment réduire la taille de mon fichier journal des transactions physiques sans compromettre la mise en miroir ou la chaîne de sauvegarde?
J'exécute SQL Server 2005