SQL Server 2014 – Managed backup

Lors des techdays 2014, j’avais parlé des backups automatiquement gérés par SQL Server.

L’idée de base est de ne pas se préoccuper de la stratégie de sauvegarde ! Mais confier celle ci au système, qui sera, en somme, capable de s’autogérer. Les sauvegardes étant alors effectuées “quand il faut”, en fonction de la charge.

Via des commandes T-SQL, dont j’ai déjà parlé dans un précédent billet , il est possible de configurer les backup managés niveau instance ou niveau base.

Le Management Studio SQL Server 2014 propose directement la possibilité de configurer et activer simplement le backup managé niveau instance.

La configuration se fait de manière très simple au travers d’un click droit sur Managed backup dans l’onglet Management.

SNAGHTML5f78a99

Ensuite, il suffit de renseigner les informations relatives au credential et à l’URL de stockage Azure. Pour cela, référez vous pour leur création via TSQL.

image

Vous spécifiez ensuite le seul paramètre requis pour le managed backup, à savoir la durée de rétention ! Notez que j’ai créé mon credential précédemment au travers d’un script SQL tel que celui ci.

   1: USE [master]

   2: GO

   3: CREATE CREDENTIAL [AzureSQLBackup] 

   4: WITH IDENTITY = N'sqlbackupconseilit', 

   5:      SECRET = N'blablablabla'

   6: GO

image

Eventuellement, vous pouvez chiffrer vos backups via un certificat. Je ne reviendrais pas sur cette option que je vous conseille vivement.

La configuration du smart backup va se faire au travers de différentes procédures stockées dans MSDB

image

 

Il ne reste ensuite qu’a activer le managed backup

imageimage

A ce point, la backup managé est configuré et opérationnel niveau instance , équivalemment T-SQL de

   1: EXEC smart_admin.sp_set_instance_backup @enable_backup = 1

   2: GO

Le fonctionnement semble faire appel à des procédures et fonctions au nom relativement évocateur : autoadmin_ …

imageimage

Rien ne transparait au niveau de l’agent SQL lorsque la fonctionnalité est activé. Il est probable que l’on fasse un peu appel à la CLR :

Task Assembly Name : Microsoft.SqlAutoAdmin.AutoBackupAgent.dll
Class Name : Microsoft.SqlServer.SmartAdmin.SmartBackupAgent.SmartBackup

Et surtout un développeur qui a oublié de mettre un application name dans la chaine de connexion !!! Hum hum, et alors les revues de code ????

image

SmartBackup, je veux bien. Mais par contre, faudra peut être faire un choix : smart_admin ou bien autoadmin. Cela mérité simplification ou en tous cas, merci d’expliquer la différence, sinon on risque de se retrouver avec des noms différents pour des fonctions liées à une même fonctionnalité. Et ensuite on oublie !

Exemple, dans la RTM de SQL 2014, une fonction scalaire qui fait référence à Yukon (SQL Server 2005 pour ceux qui prendraient le train en marche).

image

Je m’égare, le but n’est pas de décompiler la DLL ni de comparer les niveaux extrêmement disparates de commentaire dans les procédures stockées système.

Un peu de patience, donc, et votre backup devrait arriver sur votre compte de stockage Azure :

image

Note : j’ai eu un comportement assez étrange. Si une base existait avant la mise en place du managed backup, alors, celle ci n’était pas sauvegardée. Pour une base créée après la mise en place du smart backup, tout fonctionne parfaitement.

Ce point reste à confirmer / informer par des tests plus poussés.

Ensuite, les sauvegardes s’enchaines naturellement, sans action de votre part :

image

image

Pour la restauration, ne changez pas vos habitudes, faites appel à l’historique des backups, dans la MSDB, si vous restez sur la même instance et qu’il n’y a pas eu de soucis avec MSDB. Un bon vieux click-droit / restore database fonctionne parfaitement. Et même le backup tail of the log est conservé avec une sauvegarde vers votre compte Azure.

imageimageimageimage

Vous pouvez également interroger la DMF fn_backup_instance_config pour savoir si la fonctionnalité est activée

   1: SELECT *

   2: FROM msdb.smart_admin.fn_backup_instance_config() 

   3: GO

 

Pour terminer, désactiver le backup managé est extrêmement simple, une fois encore :

image

Ce qui correspond à la requête

   1: EXEC [msdb].[smart_admin].[sp_set_instance_backup] @enable_backup = 0;

   2: GO

 

Est-ce que la fonctionnalité va être utilisée : bonne question. Il faut bien avoir en tête que cela peut demande run peu de bande passante si votre serveur est OnPremise.

Si votre serveur est dans une VM Windows Azure (Oups, Microsoft Azure), dans tous els cas, j’opterais pour un backup to URL. Mais a savoir si je choisirais l’option Managed backup ou le plan de maintenance, je n’ai pas encore fait mon choix.

On ne peut pas nier qu’un bel effort à été fait pour rendre la fonction facile d’emploi et transparente. Presque trop. Il manque quelques Reports à mon gout.

Je trouve dommage aussi que le Managed backup niveau base ne soit pas accessible aussi simplement via l’interface. Il reste la possibilité de tout configurer via T-SQL, mais ça aurait été assez sympa de nous préparer quelques écrans ou wizards. Peut être je suis passé à côté. Peut être cela viendra plus tard …

En attendant, happy (managed) backups !

A propos Christophe

Consultant SQL Server Formateur certifié Microsoft MVP SQL Server MCM SQL Server 2008
Cet article, publié dans SQL Server, est tagué , , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s