web-dev-qa-db-fra.com

Modèle de récupération simple SQL Server 2012 avec log_backup log_reuse_wait_desc

Pendant que je fais ma propre enquête, quelqu'un sait-il pourquoi une base de données en SIMPLE modèle de récupération a LOG_BACKUP pour le log_reuse_wait_desc?

SQL Server 2012 SP1. Base de données créée il y a quelques semaines. Aucune réplication, pas de mise en miroir, pas d'expédition de journal, et n'en a eu jamais eu d'entre eux.

Nous avons fait sauvegarder la base de données et la restauration à une autre instance, il affiche SIMPLE et NOTHING dans log_reuse_wait sur l'autre cas. Mais je ne pense pas que la restauration à une autre instance est un bon moyen de reproduire le problème car rétablir les transactions de Rolls/Rolls Rolls Back Transactions.

11
Travis

D'accord, passé hier jour et nuit à enquêter, à tester et à essayer de reproduire le problème. Trouvé la cause première:

MODEL Base de données définie sur le modèle de récupération SIMPLE.

Si la base de données de modèle a été définie sur le modèle de récupération SIMPLE et des bases de données utilisateur sont créées avec SIMPLE Modèle de récupération, SQL Server le traite en quelque sorte comme si elle est dans le FULL Modèle de récupération. Par conséquent, en attente de LOG_BACKUP Pour tronquer le journal.

J'ai répertorié les étapes dans cet article link pour montrer comment j'ai reproduit le problème.

Je pense que la cause première est si une base de données utilisateur a été créée (non modifiée après) avec un modèle de récupération simple, il a ce problème. Je la blâme sur la base de données modèle, car c'est le seul moyen de créer une base de données d'utilisateurs avec le modèle de récupération défini.

Ceci documenté dans l'article 2830400 de la base de connaissances Microsoft et est fixé dans SQL Server 2012 SP1 CU4 et RTM CU7:

11
Travis