Przełączanie między trybami ReadOnly i odczytu i zapisu bazy danych usług Analysis Services
Często są sytuacje, gdy Usługi Analysis Services administrator bazy danych (dba) chce zmienić tryb odczytu i zapisu bazy danych. Takie sytuacje często są prowadzone przez potrzeb biznesowych, takich jak Udostępnianie bazy danych między pulę Usługi Analysis Services serwerów dla lepszego doświadczenie użytkownika.
Tryb bazy danych mogą być przełączane na wiele sposobów.W tym dokumencie omówiono w następujących typowych scenariuszach:
Interakcyjnie, za pomocą SQL Server Management Studio
Programowo przy użyciu AMO
Przez skrypt przy użyciu XMLA
Procedury
Aby przełączyć z trybu odczytu i zapisu bazy interakcyjnie, za pomocą Management Studio
Zlokalizuj bazę danych w okienku po lewej lub prawej językiem Management Studio.
Kliknij prawym przyciskiem myszy bazę danych i zaznacz Właściwości.Znajdź folder bazy danych, a następnie zanotuj lokalizację.lokalizacja przechowywania pustej bazy danych wskazuje, że folder bazy danych znajduje się w folderze dane serwera.
Ważne:
Tak szybko, jak baza danych jest odłączana, Management Studio już pomaga uzyskać lokalizację bazy danych.
Kliknij prawym przyciskiem myszy bazę danych i zaznacz Detach…
Przypisz hasło do bazy danych, aby odłączyć, a następnie kliknij OK do wykonać polecenia Odłącz.
Zlokalizuj bazy danych folder w okienku po lewej lub prawej Management Studio.
Kliknij prawym przyciskiem myszy bazy danych i wybierz polecenie Attach…
W folder tekstu wpisz pierwotną lokalizację folderu bazy danych.Alternatywnie można skorzystać z przycisk przeglądania (…), aby zlokalizować folder bazy danych.
Wybierz tryb odczytu i zapisu do bazy danych.
Wpisz hasło używane w kroku 3, a następnie kliknij przycisk OK do wykonać polecenia Dołącz.
Przełączanie trybu odczytu i zapisu do bazy danych programowo przy użyciu AMO
- W aplikacji C# dostosowania następujący przykładowy kod i ukończyć zadania wskazane.
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);
}
}
W aplikacji C# wywołać SwitchReadWrite() z niezbędnych parametrów.
Skompiluj i wykonać kodu, aby przenieść bazę danych.
Aby przełączyć tryb odczytu i zapisu do bazy danych przez skrypt przy użyciu XMLA
Zlokalizuj bazę danych w okienku po lewej lub prawej językiem Management Studio.
Kliknij prawym przyciskiem myszy bazę danych i zaznacz Właściwości.Znajdź folder bazy danych, a następnie zanotuj lokalizację.lokalizacja przechowywania pustej bazy danych wskazuje, że folder bazy danych znajduje się w folderze dane serwera.
Ważne:
Tak szybko, jak baza danych jest odłączana, Management Studio już pomaga uzyskać lokalizację bazy danych.
Otwórz nową kartę XMLA w Management Studio.
Skopiuj następujący szablon skrypt dla XMLA:
<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>%dbName%</DatabaseID>
<Password>%password%</Password>
</Object>
</Detach>
Zamień %dbName% z nazwą bazy danych i %password% z hasłem.Znaki % są częścią szablonu i muszą być usunięte.
Wykonanie polecenia XMLA.
Skopiuj następujący szablon skrypt dla XMLA w nowej karcie 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>
Zamień %dbFolder% zawiera pełną ścieżka UNC folderu bazy danych %ReadOnlyMode% z odpowiednią wartością ReadOnly lub ReadWrite, i %password% z hasłem.Znaki % są częścią szablonu i muszą być usunięte.
Wykonanie polecenia XMLA.
Zobacz także
Odwołanie
Attach()