Quelle est l'utilisation d'un journal de transactions sur une database en lecture seule?

Dans Sql Server, je trouve que, quand je marque une database en lecture seule, son grand journal de transactions existant rest. Pour résoudre ce problème, je dois le redéfinir sur writeable, puis dbcc shrinkfile sur le file journal, puis le redéfinir en lecture seule.

Quelle est l'utilisation d'un journal de transactions si la database est en lecture seule? Y a-t-il une raison pour laquelle ce n'est pas simplement supprimé / vidé?

Si votre database est toujours en mode de récupération complète, le journal ne rétrécira pas sans une sauvegarde appropriée. Vous devez passer votre database en lecture seule à la récupération simple.

En outre, le file journal est nécessaire si jamais vous décidez de détacher / attacher cette database. Comme indiqué ici :

En revanche, pour une database en lecture seule, le journal ne peut pas être reconstruit car le file principal ne peut pas être mis à jour. Par conséquent, lorsque vous attachez une database en lecture seule dont le journal est indisponible, vous devez fournir les files journaux ou les files dans la clause FOR ATTACH.

Il n'y a pas d'utilité pour un journal de transactions sur une database en lecture seule 🙂 En supposant que vous ayez dépassé un certain point auquel vous ne vous souciez plus des transactions effectuées pour le remplir. J'imagine qu'il n'est pas vidé car ce ne serait pas un bon comportement par défaut, imaginez si vous vouliez revenir en mode écriture? Ou avez-vous découvert pendant l'opération en lecture seule qu'il y avait un problème et que vous deviez utiliser les journaux?