Compartir a través de


Mover una base de datos de Analysis Services

A menudo, hay situaciones en las que un administrador de bases de datos (dba) de Analysis Services quiere mover una base de datos de modelo multidimensional o tabular a una ubicación diferente. Estas situaciones suelen estar controladas por las necesidades empresariales, como mover la base de datos a un disco diferente para mejorar el rendimiento, obtener espacio para el crecimiento de la base de datos o actualizar un producto.

Una base de datos se puede mover de muchas maneras. En este documento se explican los siguientes escenarios comunes:

  • Uso interactivo de SSMS

  • Uso de AMO mediante programación

  • Utilizando un script con XMLA

Todos los escenarios requieren que el usuario acceda a la carpeta de base de datos y use un método para mover los archivos al destino final deseado.

Nota:

Desasociar una base de datos sin asignar una contraseña a ella deja la base de datos en un estado no seguro. Se recomienda asignar una contraseña a la base de datos para proteger la información confidencial. Además, la seguridad de acceso correspondiente debe aplicarse a la carpeta de base de datos, las subcarpetas y los archivos para evitar el acceso no autorizado a ellos.

Procedimientos

Mover una base de datos de forma interactiva mediante SSMS

  1. Busque la base de datos que se va a mover en el panel izquierdo o derecho de SSMS.

  2. Haga clic con el botón derecho en la base de datos y seleccione Desasociar...

  3. Asigne una contraseña a la base de datos que se va a desasociar y, a continuación, haga clic en Aceptar para ejecutar el comando de desasociación.

  4. Use cualquier mecanismo del sistema operativo o el método estándar para mover archivos para mover la carpeta de la base de datos a la nueva ubicación.

  5. Busque la carpeta Bases de datos en el panel izquierdo o derecho de SSMS.

  6. Haga clic con el botón derecho en la carpeta Bases de datos y seleccione Adjuntar...

  7. En el cuadro de texto carpeta , escriba la nueva ubicación de la carpeta de base de datos. Como alternativa, puede usar el botón Examinar (...) para buscar la carpeta de la base de datos.

  8. Seleccione el ReadWrite modo de la base de datos.

  9. Escriba la contraseña usada en el paso 3 y haga clic en Aceptar para ejecutar el comando attach.

Mover una base de datos mediante programación mediante AMO

  1. En la aplicación de C#, adapte el código de ejemplo siguiente y complete las tareas indicadas.

private void MoveDb(Server server, string dbName,

string dbInitialLocation, string dbFinalLocation,

string dbPassword, ReadWriteMode dbReadWriteMode)

{

//Verify dbInitialLocation exists before continuing

if (server.Databases.ContainsName(dbName))

{

Database db;

//Save current cursor and change cursor to Cursors.WaitCursor

db = server.Databases[dbName];

db.Detach(dbPassword);

//Add your own code to copy the database files to the destination where you intend to attach the database

//Verify dbFinalLocation exists before continuing

server.Attach(dbFinalLocation, dbReadWriteMode, dbPassword);

//Restore cursor to its original

}

}

  1. En la aplicación de C#, invoque MoveDb() con los parámetros necesarios.

  2. Compile y ejecute el código para mover la base de datos.

Mover una base de datos mediante script mediante XMLA

  1. Abra una nueva pestaña XMLA en SSMS.

  2. Copie la siguiente plantilla de script para XMLA.

<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

  1. Reemplace por %dbName% el nombre de la base de datos y %password% por la contraseña. Los caracteres % forman parte de la plantilla y se deben quitar.

  2. Ejecute el comando XMLA.

  3. Use cualquier mecanismo del sistema operativo o el método estándar para mover archivos para mover la carpeta de la base de datos a la nueva ubicación.

  4. Copie la siguiente plantilla de script para XMLA en una nueva pestaña XMLA.

<Attach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">

<Folder>%dbFolder%</Folder>

<ReadWriteMode xmlns="https://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode>

</Attach>

  1. Reemplace por %dbFolder% la ruta de acceso UNC completa de la carpeta de base de datos, %ReadOnlyMode% con el valor ReadOnly correspondiente o ReadWritey %password% con la contraseña. Los caracteres % forman parte de la plantilla y se deben quitar.

  2. Ejecute el comando XMLA.

Véase también

Attach*
Microsoft.AnalysisServices.Database.Detach*
Adjuntar y desconectar bases de datos de Analysis Services
Ubicación de almacenamiento de base de datos
Modos de Lectura/Escritura de Base de Datos
Adjuntar Elemento
Desacoplar Elemento
Elemento Modo de Lectura/Escritura
Elemento DbStorageLocation