Partager via


Procédure : effectuer une sauvegarde lorsque l’application Web est en cours d’exécution

Dernière modification : mercredi 13 janvier 2010

S’applique à : SharePoint Foundation 2010

Cette rubrique explique comment combiner les fonctionnalités de capture instantanée de base de données et de base de données non attachée de Microsoft SharePoint Foundation pour sauvegarder une ou plusieurs collections de sites (ou toutes) d’une base de données de contenu pendant que son application Web d’hébergement et ses sites Web enfants sont actifs et en cours d’exécution. Cette sauvegarde est réalisée en effectuant une copie jusqu’à une date et heure de la base de données de contenu et en sauvegardant la copie pendant que la base de données de contenu d’origine continue à fonctionner.

Sauvegarde d’un déploiement actif

La sauvegarde d’une collection de sites SharePoint Foundation active et en cours d’exécution comporte trois étapes. Premièrement, vous devez créer une capture instantanée d’une base de données de contenu. Deuxièmement, vous devez créer un objet de base de données non attachée à partir de la capture instantanée. Troisièmement, vous devez utiliser la base de données non attachée comme source de la sauvegarde au lieu de la base de données de contenu active.

La base de données non attachée étant un objet SPContentDatabase, votre code peut appeler la méthode Backup(String, String, Boolean) de sa propriété Sites. Vous pouvez passer l’URL d’une collection de sites spécifique à la méthode ou votre code peut parcourir en boucle toutes les collections de sites et appeler la méthode Backup(String, String, Boolean) pour chacune d’entre elles.

Pour sauvegarder toutes les bases de données de contenu d’une application Web, votre code peut parcourir la propriété SPWebApplication.ContentDatabases et exécuter le processus en trois étapes sur toutes les bases de données de contenu. De plus, vous pouvez parcourir toutes les applications Web de la batterie de serveurs pour sauvegarder toutes les bases de données de contenu de la batterie sans rendre en lecture seule les applications Web.

Pour plus d’informations sur le contrôle par programme des captures instantanées de base de données, voir Administration par programmation de captures instantanées de base de données.

Pour sauvegarder une collection de sites

  1. Récupérez une référence à une base de données de contenu.

  2. Appelez la méthode CreateSnapshot() de la collection Snapshots de la base de données de contenu.

  3. Passez la propriété ConnectionString de la capture d’écran à la méthode CreateUnattachedContentDatabase(SqlConnectionStringBuilder) statique.

  4. Appelez la méthode Backup(String, String, Boolean) et passez-lui l’URL d’une collection de sites spécifique.

Note AttentionAttention

Une base de données non attachée doit être traitée comme étant en lecture seule. Si vous appelez la méthode Update() d’une base de données non attachée, une exception NotSupportedException est déclenchée.

Exemple

Dans l’exemple ci-après, la collection de sites actuelle est celle qui est sauvegardée. Toutefois, l’URL d’une autre collection de sites dans la même base de données de contenu aurait pu être passée à la méthode Backup(String, String, Boolean).

SPSite siteCol = SPContext.Current.Site;
SPContentDatabase cDB = siteCol.ContentDatabase;

SPDatabaseSnapshot snap = cDB.Snapshots.CreateSnapshot();

SPContentDatabase unDB = SPContentDatabase.CreateUnattachedContentDatabase(snap.ConnectionString);

unDB.Sites.Backup(siteCol.ServerRelativeUrl.Trim('/'), "\\Server\Backups\MySite.bak", true);
Dim siteCol As SPSite = SPContext.Current.Site
Dim cDB As SPContentDatabase = siteCol.ContentDatabase

Dim snap As SPDatabaseSnapshot = cDB.Snapshots.CreateSnapshot()

Dim unDB As SPContentDatabase = SPContentDatabase.CreateUnattachedContentDatabase(snap.ConnectionString)

unDB.Sites.Backup(siteCol.ServerRelativeUrl.Trim("/"c), "\Server\Backups\MySite.bak", True)

Voir aussi

Concepts

Administration par programmation de captures instantanées de base de données