Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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
Busque la base de datos que se va a mover en el panel izquierdo o derecho de SSMS.
Haga clic con el botón derecho en la base de datos y seleccione Desasociar...
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.
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.
Busque la carpeta Bases de datos en el panel izquierdo o derecho de SSMS.
Haga clic con el botón derecho en la carpeta Bases de datos y seleccione Adjuntar...
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.
Seleccione el
ReadWritemodo de la base de datos.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
- 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
}
}
En la aplicación de C#, invoque
MoveDb()con los parámetros necesarios.Compile y ejecute el código para mover la base de datos.
Mover una base de datos mediante script mediante XMLA
Abra una nueva pestaña XMLA en SSMS.
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>
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.Ejecute el comando XMLA.
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.
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>
Reemplace por
%dbFolder%la ruta de acceso UNC completa de la carpeta de base de datos,%ReadOnlyMode%con el valorReadOnlycorrespondiente oReadWritey%password%con la contraseña. Los caracteres % forman parte de la plantilla y se deben quitar.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