Programmation avec le modèle objet de sauvegarde/restauration de SharePoint Foundation
Dernière modification : jeudi 4 novembre 2010
S’applique à : SharePoint Foundation 2010
Dans cet article
Modèle objet de sauvegarde et de restauration
Conseils de programmation
Sauvegardes et restaurations de collections de sites
Cette rubrique décrit l’architecture du modèle objet de sauvegarde et de restauration dans SharePoint Foundation et fournit des conseils sur la façon de le programmer. Votre application de sauvegarde peut être une application indépendante ou une applet de commande PowerShell. Pour plus d’informations sur la création d’applets de commandes pour SharePoint, voir Windows PowerShell dans l’environnement SharePoint Management Shell.
Notes
Il existe un autre modèle objet de sauvegarde et restauration pour les services Web personnalisés qui implémentent l’Infrastructure des applications de service. Ce modèle objet n’est pas abordé dans cette rubrique. Pour plus d’informations, voir Sauvegarde et restauration dans l’infrastructure d’application de service.
Modèle objet de sauvegarde et de restauration
La classe SPBackupRestoreConsole se trouve au niveau supérieur du modèle objet (voir la légende 1 de la figure 1). Elle fournit un gestionnaire général des opérations, responsable de la mise en file d’attente des travaux de sauvegarde et de restauration, du démarrage des travaux et du maintien d’un historique des travaux sous la forme de fichiers .xml. Un objet de cette classe se trouve « juste sous la surface » de l’interface utilisateur d’une application de sauvegarde. Ses membres sont principalement des méthodes et des propriétés statiques qui fournissent des connexions à l’interface utilisateur de l’application de sauvegarde. L’application Administration centrale, PowerShell et l’outil en ligne de commande stsadm.exe utilisent ces connexions.
Un seul objet de cette classe existe dans une batterie de serveurs ; il est créé la première fois que l'un de ses membres est appelé. Il reste en mémoire jusqu'à la prochaine réinitialisation d'Internet Information Server (IIS) ; cependant, son encombrement mémoire est petit.
Figure 1 : principaux objets de la hiérarchie de sauvegarde/restauration.
Chaque opération particulière de sauvegarde ou de restauration est représentée par un objet de la classe SPBackupRestoreConsoleObject qui est créé par la méthode CreateBackupRestore(SPBackupRestoreSettings) de l’objet console (voir la légende 2 de la figure 1, les opérations de sauvegarde et de restauration en file d’attente). Les propriétés de l’un de ces objets légers contiennent les informations sur l’opération, comme la nature de celle-ci (sauvegarde ou restauration), l’emplacement des fichiers de sauvegarde, la méthode de sauvegarde ou de restauration, l’étape actuelle de l’opération et l’arborescence des composants de contenu qui est sauvegardée ou restaurée. Chacun de ces objets possède également une propriété Id de type Guid qui sert de descripteur de l’objet, transmissible aux méthodes de SPBackupRestoreConsole. Par exemple, Run(Guid, SPBackupRestoreObject) reçoit l’ID de l’opération (c’est-à-dire l’objet SPBackupRestoreConsoleObject) que la console doit exécuter ensuite. Enfin, chaque objet SPBackupRestoreConsoleObject possède une propriété Settings qui contient un objet persistant contenant un modèle réutilisable de paramètres de sauvegarde ou de restauration. Cet objet identifie également le composant de contenu que l’opération doit sauvegarder ou restaurer. Les objets paramètres sont décrits en détail à la fin de cette section.
Bien que les objets SPBackupRestoreConsoleObject représentent des opérations, les composants de contenu eux-mêmes sont représentés par des objets SPBackupRestoreObject (voir la légende 3 de la figure 1). Ces objets peuvent être imbriqués avec la propriété Children. Par conséquent, chacun d’eux représente une arborescence d’un ou plusieurs composants de contenu. Par exemple, une application Web peut être représentée par un objet SPBackupRestoreObject dont chacune des bases de données de contenu de l’application Web est un objet enfant SPBackupRestoreObject. L'arborescence des composants qui font l’objet d’une opération particulière de sauvegarde ou de restauration sont liés en interne à l’objet SPBackupRestoreConsoleObject qui représente l’opération. Vous pouvez obtenir une référence à l’objet SPBackupRestoreObject au sommet de l’arborescence en passant l’ID de l’objet SPBackupRestoreConsoleObject à la méthode GetRoot(Guid).
Un objet SPBackupRestoreObject est un conteneur pour deux types d'objets critiques :
Dans sa propriété Information, l'objet SPBackupRestoreObject contient soit un objet SPBackupInformation, soit un objet SPRestoreInformation. Ces types d'objets contiennent des informations sur la façon de sauvegarder ou de restaurer un composant particulier et les méthodes qui peuvent être appelées en interne par SPBackupRestoreConsoleObject et SPBackupRestoreObject dans le cadre d'une opération. Plus spécifiquement, ces classes contiennent des méthodes et des propriétés dont l'implémentation ne doit jamais changer, sans tenir compte du type de composant de contenu représenté. Par conséquent, ils sont scellés ; la dérivation d'une nouvelle classe à partir de leur parent, SPBackupRestoreInformation, n'est pas prise en charge.
Dans sa propriété IBackupRestore, l’objet SPBackupRestoreObject contient un objet qui implémente l’interface IBackupRestore ou l’objet IBackupRestoreConfiguration (qui comprend IBackupRestore) et peut également hériter de SPPersistedObject (voir la légende 4 de la figure 1). L’implémentation de cette interface transforme un objet en quelque chose qu’il est possible de sauvegarder et restaurer. Comme un objet SPBackupRestoreInformation, un objet IBackupRestore (ou IBackupRestoreConfiguration) contient des membres qui fournissent les informations et les méthodes nécessaires pour les sauvegardes et les restaurations. Mais les membres de ces interfaces doivent être implémentés différemment selon le type du composant de contenu représenté. Plus important encore, l’implémentation comprend des gestionnaires d’événements pour les événements d’une opération, comme OnBackup(Object, SPBackupInformation) et OnRestore(Object, SPRestoreInformation).
En plus d’agir comme un conteneur, SPBackupRestoreObject est une classe auxiliaire qui fournit une interaction simplifiée entre les objets opération (SPBackupRestoreConsoleObject) d’une part, et les objets informations sur le composant (SPBackupRestoreInformation, IBackupRestore et IBackupRestoreConfiguration) d’autre part.
Les classes principales finales sont SPBackupSettings et SPRestoreSettings. Un objet de l’un de ces deux types est passé à la méthode CreateBackupRestore(SPBackupRestoreSettings) lorsqu’une opération est créée (voir la légende 5 de la figure 1). Chacun de ces objets contient des paramètres pour les opérations ; plus important encore, ils identifient dans leur propriété IndividualItem le composant de contenu (ou le composant de paramètres de configuration) qui fait l’objet de la sauvegarde ou de la restauration (voir la légende 6 de la figure 1).
Conseils de programmation
Les informations suivantes peuvent être utiles pour le développement de solutions de sauvegarde et de restauration.
Méthodes de personnalisation
La plupart des classes critiques dans le modèle objet de sauvegarde/restauration sont scellées (NotInheritable dans Microsoft Visual Basic). En outre, bien que les classes suivantes ne soient pas scellées, leur dérivation n'est pas prise en charge. Dans chaque cas, vous devez utiliser les classes dérivées existantes :
SPBackupRestoreInformation Classes dérivées existantes : SPBackupInformation et SPRestoreInformation
SPBackupRestoreSettings Classes dérivées existantes : SPBackupSettings et SPRestoreSettings
En conséquence, il existe seulement deux points principaux de personnalisation :
Vous pouvez créer votre propre application de haut niveau (et l'interface utilisateur) qui utilise les méthodes statiques de la console d'opérations, un objet SPBackupRestoreConsole pour gérer et exécuter des travaux de sauvegarde et de restauration. Pour plus d'informations sur la façon de procéder, voir Pocédure : sauvegarder du contenu par programme et Procédure : restaurer le contenu par programmation.
Vous pouvez créer une classe qui implémente l’interface IBackupRestore ou IBackupRestoreConfiguration (qui comprend IBackupRestore) et peut ou non également dériver la classe SPPersistedObject et implémenter l’interface IDatabaseSnapshotRestore. Pour plus d’informations sur la création d’une classe de contenu personnalisée (ou paramètre de configuration), voir Procédure : créer une classe de contenu qui peut être sauvegardée et restaurée et Comment : créer une classe qui est incluse dans les sauvegardes et restaurations limitées à la configuration.
Conseil |
---|
Bien qu’il s’agisse des deux principales méthodes de développement avec le modèle objet SharePoint Foundation, vous pouvez également utiliser par programme les captures instantanées de base de données et les restaurations à partir de bases de données non attachées. Pour plus d’informations sur ces sujets, voir Administration par programmation de captures instantanées de base de données, Restauration de données de granularité fine à partir d’une base de données non attachée et Procédure : créer une classe de base de données qui peut être restaurée à partir d’un instantané. |
Autorisations
Le code qui sauvegarde le contenu doit s'exécuter dans le contexte utilisateur d'un administrateur de batterie de serveurs. Le code qui restaure doit s'exécuter dans le contexte d'un utilisateur qui est à la fois administrateur de batterie de serveurs et administrateur sur tous les serveurs frontaux. L'utilisateur doit également avoir des autorisations de lecture et d'écriture sur l'emplacement de sauvegarde.
Journalisation des échecs
Si une opération de sauvegarde ou de restauration échoue, les détails concernant l'échec sont enregistrés dans spbackup.log ou sprestore.log sur l'emplacement de sauvegarde.
Sauvegardes et restaurations de collections de sites
À l’exception des types de contenu personnalisés que vous créez en implémentant IBackupRestore, l’objet de contenu le plus petit que vous pouvez sauvegarder et restaurer avec les classes dans l’espace de noms Microsoft.SharePoint.Administration.Backup est une base de données de contenu. Pour sauvegarder ou restaurer des collections de sites individuels par programme, utilisez SPSiteCollection.Backup et SPSiteCollection.Restore. Pour plus d’informations sur la sauvegarde et la restauration des collections de sites, voir Procédure : sauvegarder et restaurer une seule collection de sites par programmation.
Voir aussi
Tâches
Pocédure : sauvegarder du contenu par programme
Procédure : restaurer le contenu par programmation
Procédure : sauvegarder et restaurer une seule collection de sites par programmation
Procédure : créer une classe de contenu qui peut être sauvegardée et restaurée
Procédure : créer une classe de base de données qui peut être restaurée à partir d’un instantané
Exemple de code : création d’une classe de contenu qui peut être sauvegardée
Référence
Microsoft.SharePoint.Administration.Backup