Udostępnij za pośrednictwem


Switching an Analysis Services database between ReadOnly and ReadWrite modes

Często istnieje sytuacji, gdy 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 puli Analysis Services serwery komfort użytkownika.

Tryb bazy danych mogą być przełączane na wiele sposobów.Dokument ten 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ć tryb odczytu/zapisu interakcyjnie, za pomocą Management Studio bazy danych

  1. Zlokalizuj bazę danych, aby być przełączane w okienku po lewej lub w prawo Management Studio.

  2. Kliknij prawym przyciskiem myszy bazę danych i wybierz polecenie Właściwości.Znajdź folder, w bazie danych, a następnie zanotuj lokalizację.W lokalizacja przechowywania pustej bazy danych wskazuje, że folder bazy danych znajduje się w folderze dane serwera.

    Important noteImportant Note:

    Tak szybko, jak baza danych jest odłączana, Management Studio nie jest już pomaga uzyskać lokalizację bazy danych.

  3. Kliknij prawym przyciskiem myszy bazę danych i wybierz polecenie Detach…

  4. Przypisz hasło do bazy danych jest odłączony, a następnie kliknij przycisk OK wykonać polecenia odłączenia.

  5. Zlokalizuj Bazy danych folder w okienku po lewej lub prawej Management Studio.

  6. Kliknij prawym przyciskiem myszy Bazy danych folder i wybierz opcję Attach…

  7. W folder tekstu wpisz pierwotną lokalizację folderu bazy danych.Alternatywnie można użyć (przycisk przeglądania**…**) Aby zlokalizować folder bazy danych.

  8. Wybierz tryb odczytu/zapisu do bazy danych.

  9. Wpisz hasło, które zostało użyte w kroku 3, a następnie kliknij przycisk OK do wykonać polecenia Dołącz.

Aby przełączyć się w trybie odczytu/zapisu do bazy danych programowo przy użyciu AMO

  • W języku C# aplikacji dostosowanie następujący przykładowy kod i wykonywanie określonych zadań.

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);

}

}

  1. W języku C# aplikacji wywoływanie SwitchReadWrite() z wymaganych parametrów.

  2. Skompiluj, a na wykonać kodu, aby przenieść bazę danych.

Aby przełączyć się do bazy danych w trybie odczytu/zapisu przez skrypt przy użyciu XMLA

  1. Zlokalizuj bazę danych, aby być przełączane w okienku po lewej lub w prawo Management Studio.

  2. Kliknij prawym przyciskiem myszy bazę danych i wybierz polecenie Właściwości.Znajdź folder, w bazie danych, a następnie zanotuj lokalizację.W lokalizacja przechowywania pustej bazy danych wskazuje, że folder bazy danych znajduje się w folderze dane serwera.

    Important noteImportant Note:

    Tak szybko, jak baza danych jest odłączana, Management Studio nie jest już pomaga uzyskać lokalizację bazy danych.

  3. Otwórz nową kartę XMLA w Management Studio.

  4. Skopiuj następujący szablon skryptu dla XMLA:

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

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

  1. Zamień %dbName% Nazwa bazy danych i %password% przy użyciu hasła. % Znaków są częścią szablonu i należy je usunąć.

  2. wykonać polecenia XMLA.

  3. Skopiuj następujący szablon skryptu dla XMLA na 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>

  1. Zamień %dbFolder% z pełną ścieżka UNC folderu bazy danych %ReadOnlyMode% z odpowiednią wartością ReadOnly lub ReadWrite, a %password% przy użyciu hasła. % Znaków są częścią szablonu i należy je usunąć.

  2. wykonać polecenia XMLA.