Cambiar entre los modos ReadOnly y ReadWrite en una base de datos de Analysis Services
Con frecuencia se producen situaciones en las que un administrador de bases de datos (dba) de Analysis Services desea cambiar el modo de lectura/escritura de una base de datos tabular o multidimensional. Estas situaciones suelen responder a necesidades empresariales, como compartir la base de datos entre un grupo de servidores de Analysis Services para proporcionar una mejor experiencia para el usuario.
El modo de una base de datos se puede cambiar de muchas formas. En este documento se describen los siguientes escenarios comunes:
Usar SQL Server Management Studio de forma interactiva
Usar programación a través de AMO
Usar script XMLA
Procedimientos
Para cambiar el modo de lectura/escritura de una base de datos de forma interactiva mediante Management Studio
Localice la base de datos en el panel izquierdo o derecho de Management Studio.
Haga clic con el botón secundario del mouse en la base de datos y seleccione Propiedades. Busque la carpeta de la base de datos y anote su ubicación. Una ubicación de almacenamiento de la base de datos vacía indica que la carpeta de la base de datos está ubicada en la carpeta de datos del servidor.
Importante En cuanto se separa la base de datos, Management Studio ya no puede ayudarle a obtener su ubicación.
Haga clic con el botón secundario del mouse en la base de datos y seleccione Separar.
Asigne una contraseña a la base de datos que se va separar y, a continuación, haga clic en Aceptar para ejecutar el comando Detach.
Localice la carpeta Bases de datos en el panel izquierdo o derecho de Management Studio.
Haga clic con el botón secundario del mouse en la carpeta Bases de datos y seleccione Adjuntar.
En el cuadro de texto Carpeta, escriba la ubicación original de la carpeta de la base de datos. También puede usar el botón Examinar (…) para localizar la carpeta de la base de datos.
Seleccione el modo de lectura/escritura para la base de datos.
Escriba la contraseña que usó en el paso 4 y haga clic en Aceptar para ejecutar el comando Attach.
Para cambiar el modo de lectura/escritura de una base de datos mediante programación a través de AMO
- En la aplicación C#, adapte el código de ejemplo siguiente y complete las tareas indicadas.
private void SwitchReadWrite(Server server, string dbName,
ReadWriteMode dbReadWriteMode)
{
if (server.Databases.ContainsName(dbName))
{
Database db;
string databaseLocation;
db = server.Databases[dbName];
databaseLocation = db.DbStorageLocation;
if (databaseLocation == null)
{
string dataDir = server.ServerProperties["DataDir"].Value;
String[] possibleFolders = Directory.GetDirectories(dataDir, string.Concat(dbName,"*"), SearchOption.TopDirectoryOnly);
if (possibleFolders.Length > 1)
{
List<String> sortedFolders = new List<string>(possibleFolders.Length);
sortedFolders.AddRange(possibleFolders);
sortedFolders.Sort();
databaseLocation = sortedFolders[sortedFolders.Count - 1];
}
else
{
databaseLocation = possibleFolders[0];
}
}
db.Detach();
server.Attach(databaseLocation, dbReadWriteMode);
}
}
En la aplicación C#, invoque SwitchReadWrite() con los parámetros necesarios.
Compile y ejecute el código para mover la base de datos.
Para cambiar el modo de lectura/escritura de una base de datos mediante script XMLA
Localice la base de datos en el panel izquierdo o derecho de Management Studio.
Haga clic con el botón secundario del mouse en la base de datos y seleccione Propiedades. Busque la carpeta de la base de datos y anote su ubicación. Una ubicación de almacenamiento de la base de datos vacía indica que la carpeta de la base de datos está ubicada en la carpeta de datos del servidor.
Importante En cuanto se separa la base de datos, Management Studio ya no puede ayudarle a obtener su ubicación.
Abra una nueva pestaña XMLA en Management Studio.
Copie la plantilla de script siguiente para XMLA:
<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>%dbName%</DatabaseID>
<Password>%password%</Password>
</Object>
</Detach>
Reemplace %dbName% por 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.
Copie la plantilla de script siguiente 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 %dbFolder% por la ruta UNC completa de la carpeta de la base de datos, %ReadOnlyMode% por el valor ReadOnly o ReadWrite correspondiente, y %password% por la contraseña. Los caracteres % forman parte de la plantilla y se deben quitar.
Ejecute el comando XMLA.
Vea también
Referencia
Attach
Conceptos
Adjuntar y separar bases de datos de Analysis Services