Compartir a través de


Procedimiento para realizar copia de seguridad mientras la aplicación web se está ejecutando

Última modificación: miércoles, 13 de enero de 2010

Hace referencia a: SharePoint Foundation 2010

En este tema se explica cómo combinar las características de instantánea de base de datos y de base de datos no adjunta de Microsoft SharePoint Foundation para realizar una copia de seguridad de una, varias o todas las colecciones de sitios de una base de datos de contenido mientras su aplicación web de hospedaje y sus sitios web secundarios están en funcionamiento. Esto se logra haciendo una copia a un momento dato de la base de datos de contenido y una copia de seguridad de la copia mientras la original continúa funcionando.

Copia de seguridad de una implementación activa

Hay tres pasos para hacer una copia de seguridad de una colección de sitios de SharePoint Foundation que está en funcionamiento. En primer lugar, cree una instantánea de una base de datos de contenido. En segundo lugar, cree un objeto de base de datos no adjunta a partir de la instantánea. En tercer lugar, use la base de datos no adjunta como origen de la copia de seguridad en lugar de usar la base de datos de contenido activa.

Debido a que la base de datos no adjunta es un objeto SPContentDatabase, el código puede llamar al método Backup(String, String, Boolean) de su propiedad Sites. Se puede pasar la dirección URL de una colección de sitios específica al método, o bien el código puede recorrer en bucle todas las colecciones de sitios y llamar al método Backup(String, String, Boolean) para cada una de ellas.

Para hacer una copia de seguridad de todas las bases de datos de contenido de una aplicación web, el código puede iterarse a través de la propiedad SPWebApplication.ContentDatabases y ejecutar el proceso de tres pasos de todas las bases de datos de contenido. Asimismo, naturalmente, puede iterarse a través de todas las aplicaciones web de la granja de servidores para hacer una copia de seguridad de todas las bases de datos de contenido de la granja sin que las aplicaciones web sean de solo lectura.

Para obtener más información sobre el control mediante programación de las instantáneas de base de datos, vea Administración de programación de instantáneas de base de datos.

Para hacer una copia de seguridad de una colección de sitios

  1. Obtenga una referencia a una base de datos de contenido.

  2. Llame al método CreateSnapshot()de la colección Snapshots de la base de datos de contenido.

  3. Pase la propiedad ConnectionString de la instantánea al método CreateUnattachedContentDatabase(SqlConnectionStringBuilder) estático.

  4. Llame a Backup(String, String, Boolean) y pásele la dirección URL de una colección de sitios específica.

Nota de precauciónPrecaución

Una base de datos no adjunta debe tratarse como de solo lectura. Si llama al método Update() de una base de datos no adjunta, se inicia una NotSupportedException.

Ejemplo

En el ejemplo siguiente, se hace una copia de seguridad de la colección de sitios actual, pero se podría haber pasado la dirección URL de cualquier otra colección de sitios de la misma base de datos de contenido al método 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)

Vea también

Conceptos

Administración de programación de instantáneas de base de datos