Cambiar entre los modos ReadOnly y ReadWrite en una base de datos de Analysis Services
Se aplica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Services administradores de bases de datos pueden cambiar el modo de lectura y escritura de una base de datos tabular o multidimensional como parte de un esfuerzo mayor que distribuye una carga de trabajo de consulta entre varios servidores de solo consulta.
El modo de una base de datos se puede cambiar de varias formas. En este documento se describen los siguientes escenarios comunes:
Uso interactivo de SQL Server Management Studio
Usar programación a través de AMO
Script con XMLA o TMSL
Cambio del modo de lectura/escritura de una base de datos de forma interactiva mediante Management Studio
En Explorador de objetos, haga clic con el botón derecho en la base de datos y seleccione Propiedades.
Tenga en cuenta la 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.
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 separar y, a continuación, haga clic en Aceptar para ejecutar el comando Detach.
En Explorador de objetos, haga clic con el botón derecho 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. Como alternativa, puede usar el botón Examinar (...) para buscar la carpeta de la base de datos.
Seleccione el modo de lectura/escritura para la base de datos.
Escriba la contraseña y haga clic en Aceptar para ejecutar el comando Attach.
Cambio del modo de lectura/escritura de una base de datos mediante programación a través de AMO
En la aplicación C#, invoque SwitchReadWrite()
con los parámetros necesarios. Compile y ejecute el código para mover la base de datos.
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 dataDir = server.ServerProperties["DataDir"].Value;
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);
}
}
Cambio del modo de lectura/escritura de una base de datos mediante script XMLA
Las instrucciones siguientes se aplican a las bases de datos multidimensionales y tabulares en modo de compatibilidad de 1050, 1100 o 1103.
En Explorador de objetos, haga clic con el botón derecho en la base de datos y seleccione Propiedades.
Tenga en cuenta la 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.
Haga clic con el botón derecho en la base de datos y seleccione Desasociar...
Abra una nueva pestaña XMLA en Management Studio.
Copie la plantilla de script siguiente para XMLA:
<Detach xmlns="http://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="http://schemas.microsoft.com/analysisservices/2003/engine"> <Folder>%dbFolder%</Folder> <ReadWriteMode xmlns="http://schemas.microsoft.com/analysisservices/2008/engine/100">%ReadOnlyMode%</ReadWriteMode> </Attach>
Reemplace
%dbFolder%
por la ruta de acceso UNC completa de la carpeta de la base de datos,%ReadOnlyMode%
por el valor ReadOnly o ReadWritecorrespondiente, y%password%
por la contraseña. Los caracteres % forman parte de la plantilla y se deben quitar.Ejecute el comando XMLA.
Consulte también
Alta disponibilidad y escalabilidad en Analysis Services
Adjuntar y desasociar bases de datos de Analysis Services
Ubicación de almacenamiento de las bases de datos
Modos de la propiedad de base de datos ReadWriteMode
Elemento Attach
Elemento Detach
Elemento ReadWriteMode
Elemento DbStorageLocation