Programación con el modelo de objetos de copia de seguridad y restauración de SharePoint Foundation
Última modificación: jueves, 04 de noviembre de 2010
Hace referencia a: SharePoint Foundation 2010
En este artículo
El modelo de objetos de copia de seguridad y restauración
Consejo de programación
Copias de seguridad y restauraciones de colecciones de sitios
En este tema se describe la arquitectura del modelo de objetos de copia de seguridad y restauración de SharePoint Foundation y se ofrecen algunos consejos acerca de cómo programar en función de éste. La aplicación de copia de seguridad puede ser una aplicación independiente o un cmdlet de PowerShell personalizado. Para obtener más información acerca de cómo crear cmdlets de PowerShell para SharePoint, vea Windows PowerShell en la Consola de administración de SharePoint.
Nota
Existe un modelo de objetos de copia de seguridad y restauración variante para servicios web personalizados que implementa Service Application Framework, pero no se aborda en este tema. Para obtener más información, vea el tema sobre copia de seguridad y restauración en Service Application Framework.
El modelo de objetos de copia de seguridad y restauración
En la parte superior del modelo de objetos se encuentra la clase SPBackupRestoreConsole. (Vea la llamada 1 de la figura 1). Proporciona un director de operaciones genérico encargado de poner en cola trabajos de copia de seguridad y restauración, de iniciar trabajos y de guardar un historial de trabajos en el formato de archivos .xml. Un objeto de esta clase está "justo bajo la superficie" de la interfaz de usuario de una aplicación de copia de seguridad. Sus miembros son principalmente propiedades y métodos estáticos que proporcionan enlaces para la interfaz de usuario de la aplicación de copia de seguridad. Tanto la aplicación de Administración central como PowerShell y la herramienta de línea de comandos stsadm.exe usan estos enlaces.
En una granja de servidores sólo existe un objeto de esta clase, y se crea la primera vez que se llama a uno de sus miembros. Permanece en la memoria hasta la próxima vez que se restablece Internet Information Server (IIS); sin embargo, su consumo de memoria es pequeño.
Figura 1. Los objetos principales de la jerarquía de copia de seguridad y restauración.
Cada operación de copia de seguridad o restauración se representa mediante un objeto de la clase SPBackupRestoreConsoleObject que se ha creado mediante el método CreateBackupRestore(SPBackupRestoreSettings) del objeto de la consola. (Vea la llamada 2 en la figura 1, las operaciones de copia de seguridad y restauración puestas en cola). Las propiedades de uno de estos objetos ligeros contienen información sobre la operación; por ejemplo, si es una copia de seguridad o una restauración, la ubicación de los archivos de la copia de seguridad, el método de copia de seguridad o restauración, la fase actual de la operación y el árbol de componentes de contenido que se está copiando o restaurando. Cada uno de estos objetos tiene una propiedad Id de tipo Guid que sirve de controlador del objeto que se puede pasar a los métodos de SPBackupRestoreConsole. Por ejemplo, se pasa a Run(Guid, SPBackupRestoreObject) el identificador de la operación (es decir, el objeto SPBackupRestoreConsoleObject) que la consola va a ejecutar a continuación. Por último, cada SPBackupRestoreConsoleObject tiene una propiedad Settings que contiene un objeto persistente que contiene un modelo reutilizable de configuración de copia de seguridad o restauración. Este objeto también identifica el componente de contenido que la operación va a copiar o restaurar. Los objetos de configuración se describen con detalle cerca del final de esta sección.
Aunque los objetos SPBackupRestoreConsoleObject representan operaciones, los propios componentes de contenido son representados por objetos SPBackupRestoreObject. (Consulte la llamada 3 en la figura 1). Es posible anidar estos objetos con la propiedad Children. Por lo tanto, cada uno de ellos representa un árbol de uno o más componentes de contenido. Por ejemplo, una aplicación web podría estar representada por un objeto SPBackupRestoreObject que tiene cada una de las bases de datos de contenido de la aplicación web como objeto SPBackupRestoreObject secundario. El árbol de componentes de una copia de seguridad o restauración concreta está vinculado internamente al objeto SPBackupRestoreConsoleObject que representa la operación. Puede obtener una referencia al objeto SPBackupRestoreObject superior del árbol pasando el Id. del objeto SPBackupRestoreConsoleObject al método GetRoot(Guid).
Un objeto SPBackupRestoreObject es un contenedor para dos tipos críticos de objetos:
En su propiedad Information, el objeto SPBackupRestoreObject contiene un objeto SPBackupInformation o un objeto SPRestoreInformation. Estos tipos de objetos contienen información acerca de cómo realizar una copia de seguridad o restaurar un componente concreto y los métodos que SPBackupRestoreConsoleObject y SPBackupRestoreObject pueden llamar de forma interna como parte de una operación. Más concretamente, estas clases contienen métodos y propiedades cuya implementación nunca debe cambiar independientemente del tipo de componente de contenido que se esté representando. Por lo tanto, están selladas. No es posible derivar una nueva clase de su objeto principal SPBackupRestoreInformation.
En su propiedad IBackupRestore, el objeto SPBackupRestoreObject contiene un objeto que implementa la interfaz IBackupRestore o el objeto IBackupRestoreConfiguration (que incluye IBackupRestore), y también podría heredar de SPPersistedObject. (Vea la llamada 4 en la figura 1.) La implementación de alguna de estas interfaces convierte un objeto en un elemento cuya copia de seguridad y restauración se pueda realizar. Al igual que un objeto SPBackupRestoreInformation, un objeto IBackupRestore (u objeto IBackupRestoreConfiguration) contiene miembros que proporcionan información y métodos necesarios para las copias de seguridad y restauraciones. Pero a los miembros de estas interfaces se les debe proporcionar implementaciones diferentes en función del tipo de componente de contenido que se esté representando. Lo que es más importante, la implementación incluye controladores de eventos para los eventos de una operación, como OnBackup(Object, SPBackupInformation) y OnRestore(Object, SPRestoreInformation).
Además actuar como contenedor, SPBackupRestoreObject es una clase auxiliar que proporciona una interacción más sencilla entre los objetos de operación (SPBackupRestoreConsoleObject) por un lado, y los objetos de información sobre los componentes (SPBackupRestoreInformation, IBackupRestore y IBackupRestoreConfiguration) por otro.
Las clases finales principales son SPBackupSettings y SPRestoreSettings. Cuando se crea una operación, se pasa un objeto de uno de estos dos tipos al método CreateBackupRestore(SPBackupRestoreSettings). (Vea la llamada 5 en la figura 1.) Cada uno de estos objetos contiene configuraciones que se usan en operaciones; lo que es más importante, identifican, en su propiedad IndividualItem, el componente de contenido (o el componente de opciones de configuración) de la operación de copia de seguridad o de restauración. (Vea la llamada 6 en la figura 1.)
Consejo de programación
La siguiente información puede ser útil para programar soluciones de copia de seguridad y restauración.
Formas de personalización
La mayoría de las clases críticas en el modelo de objetos de copia de seguridad y restauración están selladas (NotInheritable en Microsoft Visual Basic). Además, aunque las clases siguientes no están selladas, no es posible hacer derivaciones de ellas. En cada uno de los casos, deberá utilizar las clases derivadas existentes:
SPBackupRestoreInformation Clases derivadas existentes: SPBackupInformation y SPRestoreInformation
SPBackupRestoreSettings Clases derivadas existentes: SPBackupSettings y SPRestoreSettings
Por lo tanto, sólo hay dos puntos principales de personalización:
Puede crear su propia aplicación de alto nivel (e interfaz de usuario) que utilice los métodos estáticos de la consola de operaciones —un objeto SPBackupRestoreConsole— para administrar y ejecutar operaciones de copia de seguridad y restauración. Para obtener más información acerca de cómo hacerlo, consulte Cómo: Hacer copias de seguridad de contenido mediante programación y Procedimiento para restaurar contenido mediante programación.
Puede crear una clase que implemente la interfaz IBackupRestore o la interfaz IBackupRestoreConfiguration (que incluye IBackupRestore), también puede o no derivar la clase SPPersistedObject y, además, implementar la interfaz IDatabaseSnapshotRestore. Para obtener más información acerca de cómo crear una clase de contenido personalizado (u opciones de configuración), vea los temas Procedimiento para crear una clase de contenido que se pueda restaurar y de la que se pueda hacer una copia de seguridad y Procedimiento para crear una clase que se incluye en restauraciones y copias de seguridad de solo configuración.
Sugerencia |
---|
Si bien estos son los dos modos principales de desarrollar en el modelo de objetos de SharePoint Foundation principal, también puede trabajar mediante programación con instantáneas de base de datos y restauraciones de bases de datos no adjuntas. Para obtener más información acerca de estos temas, vea los temas Administración de programación de instantáneas de base de datos, Restauración de datos específicos de base de datos no adjunta y Procedimiento para crear una clase de base de datos que se puede restaurar desde una instantánea. |
Permisos
El código que realiza una copia de seguridad de contenido debe ejecutarse en el contexto de usuario de un administrador de granja de servidores. El código que restaura debe ejecutarse en el contexto de un usuario que es administrador de granja y administrador en todos los servidores front-end. El usuario también debe tener permisos de lectura y escritura en la ubicación de la copia de seguridad.
Registro de errores
Si se produce un error en una operación de copia de seguridad o restauración, los detalles del error se registran en spbackup.log o sprestore.log en la ubicación de la copia de seguridad.
Copias de seguridad y restauraciones de colecciones de sitios
Excepto para tipos de contenido personalizados que cree implementando IBackupRestore, el objeto de contenido más pequeño que puede copiar y restaurar con las clases del espacio de nombres Microsoft.SharePoint.Administration.Backup es una base de datos de contenido. Para realizar una copia de seguridad o una restauración de colecciones individuales de sitios mediante programación, use SPSiteCollection.Backup y SPSiteCollection.Restore. Para obtener más información acerca de la copia de seguridad y restauración de colecciones de sitios, consulte Procedimiento para realizar la copia de seguridad y restaurar una única colección de sitios mediante programación.
Vea también
Tareas
Cómo: Hacer copias de seguridad de contenido mediante programación
Procedimiento para restaurar contenido mediante programación
Procedimiento para crear una clase de base de datos que se puede restaurar desde una instantánea
Referencia
Microsoft.SharePoint.Administration.Backup