Restaurar, sincronizar y realizar copias de seguridad de bases de datos (XMLA)

En XML for Analysis, hay tres comandos que sirven para restaurar, sincronizar y realizar copias de seguridad de las bases de datos:

  • El comando Backup realiza una copia de seguridad de una base de datos de Microsoft SQL Server Analysis Services mediante un archivo de copia de seguridad (.abf) de Analysis Services, como se describe en la sección Realizar copias de seguridad de bases de datos.

  • El comando Restore restaura una base de datos de Analysis Services a partir de un archivo .abf, como se describe en la sección Restaurar bases de datos.

  • El comando Synchronize sincroniza una base de datos de Analysis Services con los datos y metadatos de otra base de datos, como se describe en la sección Sincronizar bases de datos.

Realizar copias de seguridad de bases de datos

Como ya se ha mencionado anteriormente, el comando Backup realiza una copia de seguridad de una base de datos de Analysis Services especificada en un archivo de copia de seguridad. El comando Backup tiene varias propiedades que permiten especificar la base de datos de la que se va a hacer la copia de seguridad, el archivo de copia de seguridad que se va a utilizar, cómo hacer una copia de seguridad de las definiciones de seguridad y las particiones remotas de las que se va a hacer la copia de seguridad.

Nota de seguridadNota de seguridad

El usuario que ejecuta el comando de copia de seguridad debe tener permiso para escribir en la ubicación de copia de seguridad especificada para cada archivo de copia de seguridad. Además, el usuario debe tener una de las funciones siguientes: miembro de una función de servidor para la instancia de Analysis Services o miembro de una función de la base de datos con permisos de Control total (Administrador) en la base de datos de la que se va a hacer copia de seguridad.

Especificar la base de datos y el archivo de copia de seguridad

Para especificar la base de datos de la que se va a hacer una copia de seguridad, establezca la propiedad Object del comando Backup. La propiedad Object debe contener un identificador de objeto para una base de datos; de lo contrario, se produce un error.

Para especificar el archivo que se va a crear y utilizar en el proceso de copia de seguridad, establezca la propiedad File del comando Backup. Para crear el archivo de copia de seguridad, debe establecerse una ruta UNC y un nombre de archivo para la propiedad File.

Además de especificar qué archivo se va a utilizar para la copia de seguridad, puede establecer las siguientes opciones para el archivo de copia de seguridad especificado:

  • Si establece la propiedad AllowOverwrite en true, el comando Backup sobrescribe el archivo de copia de seguridad si el archivo especificado ya existe. Si establece la propiedad AllowOverwrite en false, se produce un error si el archivo de copia de seguridad especificado ya existe.

  • Si establece la propiedad ApplyCompression en true, el archivo de copia de seguridad se comprime una vez creado.

  • Si establece la propiedad Password en cualquier valor que no esté en blanco, el archivo de copia de seguridad se cifra con la contraseña especificada.

    Nota de seguridadNota de seguridad

    Si no se especifican las propiedades ApplyCompression y Password, el archivo de copia de seguridad almacena en texto no cifrado los nombres de usuario y las contraseñas que se incluyen en las cadenas de conexión. Los datos almacenados en texto no cifrado se pueden recuperar. Para mayor seguridad, utilice los valores ApplyCompression y Password a fin de comprimir y cifrar el archivo de copia de seguridad.

Realizar copias de seguridad de la configuración de seguridad

La propiedad Security determina si el comando Backup realiza una copia de seguridad de las definiciones de seguridad, como funciones y permisos, definidas en una base de datos de Analysis Services. La propiedad Security también determina si el archivo de copia de seguridad incluye las cuentas de usuario de Windows y los grupos definidos como miembros de las definiciones de seguridad.

El valor de la propiedad Security se limita a una de las cadenas enumeradas en la tabla siguiente.

Valor

Descripción

SkipMembership

Incluye las definiciones de seguridad en el archivo de copia de seguridad, pero excluye la información de suscripción.

CopyAll

Incluye las definiciones de seguridad y la información de suscripción en el archivo de copia de seguridad.

IgnoreSecurity

Excluye las definiciones de seguridad del archivo de copia de seguridad.

Realizar copias de seguridad de particiones remotas

Para hacer una copia de seguridad de las particiones remotas de la base de datos de Analysis Services, establezca la propiedad BackupRemotePartitions del comando Backup en true. Esta configuración hace que el comando Backup cree un archivo de copia de seguridad remoto para cada origen de datos remoto que se utiliza para almacenar particiones remotas de la base de datos.

Para especificar el archivo de copia de seguridad correspondiente a cada origen de datos remoto del que se va a hacer una copia de seguridad, incluya un elemento Location en la propiedad Locations del comando Backup. La propiedad File del elemento Location debe establecerse en la ruta UNC y el nombre de archivo del archivo de copia de seguridad remoto, y su propiedad DataSourceID debe establecerse en el identificador del origen de datos remoto definido en la base de datos.

Restaurar bases de datos

El comando Restore restaura una base de datos de Analysis Services especificada a partir de un archivo de copia de seguridad. El comando Restore tiene varias propiedades que permiten especificar la base de datos que se va a restaurar, el archivo de copia de seguridad que se va a utilizar, cómo restaurar definiciones de seguridad, las particiones remotas que se van a almacenar y la reubicación de objetos OLAP relacionales (ROLAP).

Nota de seguridadNota de seguridad

El usuario que ejecuta el comando de restauración debe tener permiso para leer desde la ubicación de la copia de seguridad especificada para cada archivo de copia de seguridad. Para restaurar una base de datos de Analysis Services que no está instalada en el servidor, el usuario también debe ser miembro de la función de servidor para dicha instancia de Analysis Services. Para sobrescribir una base de datos de Analysis Services, el usuario debe tener una de las funciones siguientes: miembro de la función de servidor para la instancia de Analysis Services o miembro de una función de la base de datos con permisos de Control total (Administrador) en la base de datos que se va a restaurar.

Nota

Después de restaurar una base de datos existente, el usuario que restauró la base de datos podría perder el acceso a la base de datos restaurada. Esta pérdida de acceso puede producirse si, en el momento en que se realizó la copia de seguridad, el usuario no era miembro de la función de servidor o no era miembro de la función de la base de datos con permisos de Control total (Administrador).

Especificar la base de datos y el archivo de copia de seguridad

La propiedad DatabaseName del comando Restore debe contener un identificador de objeto para una base de datos; de lo contrario, se produce un error. Si la base de datos especificada ya existe, la propiedad AllowOverwrite determina si se sobrescribe la base de datos existente. Si la propiedad AllowOverwrite se establece en false y la base de datos especificada ya existe, se produce un error.

Para que el archivo de copia de seguridad se restaure en la base de datos especificada, debe establecer la propiedad File del comando Restore en una ruta UNC y un nombre de archivo. También puede establecer la propiedad Password para el archivo de copia de seguridad especificado. Si se establece la propiedad Password en cualquier valor que no esté en blanco, el archivo de copia de seguridad se descifra con la contraseña especificada. Si el archivo de copia de seguridad no está cifrado o la contraseña especificada no coincide con la utilizada para cifrar dicho archivo, se produce un error.

Restaurar la configuración de seguridad

La propiedad Security determina si el comando Restore restaura las definiciones de seguridad, como funciones y permisos, definidas en una base de datos de Analysis Services. La propiedad Security también determina si el comando Restore incluye las cuentas de usuario de Windows y los grupos definidos como miembros de las definiciones de seguridad como parte del proceso de restauración.

El valor de este elemento se limita a una de las cadenas enumeradas en la tabla siguiente.

Valor

Descripción

SkipMembership

Incluye las definiciones de seguridad en la base de datos, pero excluye la información de suscripción.

CopyAll

Incluye las definiciones de seguridad y la información de suscripción en la base de datos.

IgnoreSecurity

Excluye las definiciones de seguridad de la base de datos.

Restaurar particiones remotas

Para restaurar la partición remota asociada a cada archivo de copia de seguridad remoto creado durante la ejecución anterior de un comando Backup, incluya un elemento Location en la propiedad Locations del comando Restore. La propiedad DataSourceType de cada elemento Location debe excluirse o bien establecerse explícitamente en Remote.

Por cada elemento Location especificado, la instancia de Analysis Services se pone en contacto con el origen de datos remoto especificado en la propiedad DataSourceID para restaurar las particiones definidas en el archivo de copia de seguridad remoto especificado en la propiedad File. Además de las propiedades DataSourceID y File, para cada elemento Location utilizado para restaurar una partición remota están disponibles las siguientes propiedades:

  • Para invalidar la cadena de conexión del origen de datos remoto especificado en DataSourceID, puede establecer la propiedad ConnectionString del elemento Location en una cadena de conexión distinta. A continuación, el comando Restore utilizará la cadena de conexión contenida en la propiedad ConnectionString. Si no se especifica ConnectionString, el comando Restore utiliza la cadena de conexión almacenada en el archivo de copia de seguridad para el origen de datos remoto especificado. Puede utilizar el valor ConnectionString para mover una partición remota a otra instancia remota distinta. Sin embargo, no puede utilizar el valor ConnectionString para restaurar una partición remota en la misma instancia que contiene la base de datos restaurada. En otras palabras, no puede utilizar la propiedad ConnectionString para realizar una partición remota en una partición local.

  • Puede especificar un elemento Folder para cada carpeta original utilizada para almacenar las particiones remotas en el origen de datos remoto a fin de indicar la nueva carpeta en la que se van a restaurar todas las particiones remotas almacenadas en la carpeta original. Si no se especifica un elemento Folder, el comando Restore utiliza las carpetas originales especificadas para las particiones remotas contenidas en el archivo de copia de seguridad remoto.

Reubicar objetos ROLAP

El comando Restore no puede restaurar agregaciones ni datos para los objetos que utilizan el almacenamiento ROLAP, ya que dicha información se almacena en tablas en un origen de datos relacional subyacente. Sin embargo, pueden restaurarse los metadatos de los objetos ROLAP. Para restaurar los metadatos del objeto ROLAP, el comando Restore vuelve a crear la estructura de tabla en un origen de datos relacional.

Puede utilizar el elemento Location en un comando Restore para reubicar los objetos ROLAP. La propiedad DataSourceType debe establecerse explícitamente en Local para cada elemento Location utilizado para reubicar un origen de datos. Asimismo, tiene que establecer la propiedad ConnectionString del elemento Location en la cadena de conexión de la nueva ubicación. Durante la restauración, el comando Restore reemplazará la cadena de conexión del origen de datos identificado para la propiedad DataSourceID del elemento Location por el valor de la propiedad ConnectionString del elemento Location.

Sincronizar bases de datos

El comando Synchronize sincroniza los datos y metadatos de una base de datos de Analysis Services especificada con otra base de datos. El comando Synchronize tiene varias propiedades que permiten especificar la base de datos de origen, cómo sincronizar definiciones de seguridad, las particiones remotas que se van a sincronizar y la sincronización de los objetos ROLAP.

Nota

Solamente pueden ejecutar el comando Synchronize los administradores de servidor y los administradores de bases de datos.

Especificar la base de datos de origen

La propiedad Source del comando Synchronize contiene dos propiedades: ConnectionString y Object. La propiedad ConnectionString contiene la cadena de conexión de la instancia que contiene la base de datos de origen y la propiedad Object contiene el identificador de objeto para la base de datos de origen.

La base de datos de destino es la base de datos activa en la sesión en la que se ejecuta el comando Synchronize.

Si la propiedad ApplyCompression del comando Synchronize se establece en true, la información enviada desde la base de datos de origen a la base de datos de destino se comprime antes de enviarse.

Sincronizar la configuración de seguridad

La propiedad SynchronizeSecurity determina si el comando Synchronize sincroniza las definiciones de seguridad, como funciones y permisos, definidas en la base de datos de origen. La propiedad Security también determina si el comando Synchronize incluye las cuentas de usuario de Windows y los grupos definidos como miembros de las definiciones de seguridad.

El valor de este elemento se limita a una de las cadenas enumeradas en la tabla siguiente.

Valor

Descripción

SkipMembership

Incluye las definiciones de seguridad en la base de datos de destino, pero excluye la información de suscripción.

CopyAll

Incluye las definiciones de seguridad y la información de suscripción en la base de datos de destino.

IgnoreSecurity

Excluye las definiciones de seguridad de la base de datos de destino.

Sincronizar particiones remotas

Para sincronizar la partición remota asociada a cada origen de datos remoto existente en la base de datos de origen, incluya un elemento Location en la propiedad Locations del comando Synchronize. La propiedad DataSourceType debe excluirse o bien establecerse explícitamente en Remote para cada elemento Location.

Para definir un origen de datos remoto en la base de datos de destino y conectarse a éste, el comando Synchronize utiliza la cadena de conexión definida en la propiedad ConnectionString del elemento Location. A continuación, el comando Synchronize utiliza la propiedad DataSourceID del elemento Location para identificar las particiones remotas que se van a sincronizar. El comando Synchronize sincroniza las particiones remotas del origen de datos remoto especificado en la propiedad DataSourceID de la base de datos de origen con el origen de datos remoto especificado en la propiedad DataSourceID de la base de datos de destino.

También puede especificar un elemento Folder en el elemento Location por cada carpeta original utilizada para almacenar las particiones remotas del origen de datos remoto en la base de datos de origen. El elemento Folder indica la nueva carpeta de la base de datos de destino en la que se van a sincronizar todas las particiones remotas almacenadas en la carpeta original del origen de datos remoto. Si no se especifica un elemento Folder, el comando Synchronize utiliza las carpetas originales especificadas para las particiones remotas contenidas en la base de datos de origen.

Sincronizar objetos ROLAP

El comando Synchronize no puede sincronizar agregaciones ni datos para los objetos que utilizan el almacenamiento ROLAP, ya que dicha información se almacena en tablas en un origen de datos relacional subyacente. Sin embargo, pueden sincronizarse los metadatos de los objetos ROLAP. Para sincronizar los metadatos, el comando Synchronize vuelve a crear la estructura de tabla en un origen de datos relacional.

Puede utilizar el elemento Location en un comando Synchronize para sincronizar los objetos ROLAP. La propiedad DataSourceType debe establecerse explícitamente en Local para cada elemento Location utilizado para reubicar un origen de datos. Asimismo, tiene que establecer la propiedad ConnectionString del elemento Location en la cadena de conexión de la nueva ubicación. Durante la sincronización, el comando Synchronize reemplazará la cadena de conexión del origen de datos identificado para la propiedad DataSourceID del elemento Location por el valor de la propiedad ConnectionString del elemento Location.