web-dev-qa-db-fra.com

Option "tronquer le journal au point de contrôle" dans SQL Server

Longue histoire, mais nos consultants à long terme (anciens employés) ont écrit un script personnalisé il y a plusieurs années (2006) pour s'interfacer avec Tivoli Storage Manager et il semble rechercher une option de base de données SQL Server nommée truncate log on checkpoint. Leur affirmation est qu'elle empêche les scripts de fonctionner et d'effectuer des sauvegardes sur l'instance qui est SQL 2012.

Je pense que c'est BS complet car je ne peux pas trouver une telle option via sp_configure et les sauvegardes fonctionnent partout sauf une instance. Cependant, je voudrais supprimer une mine terrestre, si c'est ce que c'est, et supprimer d'autres éléments obsolètes. Je les fais vérifier auprès du vendeur, mais je n'ai pas un haut degré de confiance dans tout ce qu'ils disent.

Les recherches que j'ai faites ont renvoyé un peu plus que ce n'était peut-être une option pour SQL 2000 ou une option Sybase. Une autre affirmation était qu'il est appelé/utilisé implicitement sur les versions ultérieures (2008 et plus) lorsque le modèle de récupération est SIMPLE et qu'il n'y a pas d'option explicite pour l'activer ou le désactiver.

Depuis le TRUNCATE LOG La commande est obsolète en raison de la façon dont les journaux de transactions fonctionnent de nos jours, je pense que ce n'est même pas une option qui peut même être interrogée à ce stade.

Comme je n'ai aucune instance de SQL Server 2000, j'espérais que quelqu'un se souviendrait de cela ou pourrait le vérifier sur celui qu'il avait autour. Je leur ai dit que je ne pouvais rien recommander. J'espérais aussi que quelqu'un puisse confirmer que c'est obsolète.

11
user3885315

Vous pouvez toujours voir (au moins dans SQL Server 2008R2) trunc. log on chkpt. en utilisant sp_dboption, et vous pouvez également définir l'option de base de données

enter image description here

enter image description here

Dans SQL Server 2012 et versions ultérieures, vous obtiendrez une erreur Nice

Msg 2812, niveau 16, état 62, ligne 1 Impossible de trouver la procédure stockée 'sp_dboption'.

Il est là pour la compatibilité descendante SEULEMENT. Dans SQL Server 2000 et versions ultérieures, SQL Server a un concept de modèle de récupération qui définit la manière dont la troncature du journal est respectée, par exemple En récupération simple - seul un point de contrôle tronquera le journal alors qu'en mode de récupération complète - seule une sauvegarde du journal tronquera le journal.

Si vous souhaitez en savoir plus sur la gestion des journaux de transactions, reportez-vous à Stairway to Transaction Log Management

Comme note latérale, SybaseASE même dans la version plus récente Sybase 15.7 a cette option (En fait, il a dupliqué trunc log on chkpt et trunc. log on chkpt. le dernier est celui que SQL Server a obtenu dans SQL 7.0 via SQL Server 2008R2 - vu dans sp_dboption):

enter image description here

enter image description here

9
Kin Shah