Przenoszenie bazy danych (Analysis Services)
Często są sytuacje, gdy Usługi Analysis Services administrator bazy danych (dba) chce przenieść bazę danych do innej lokalizacji. Takie sytuacje często są prowadzone przez potrzeb biznesowych, takich jak przenoszenie bazy danych na inny dysk, aby zapewnić lepszą wydajność, uzyskanie pomieszczenie wzrostu bazy danych lub uaktualnienie produktu.
Bazy danych mogą być przenoszone na wiele sposobów.W tym dokumencie omówiono w następujących typowych scenariuszach:
Interakcyjnie, za pomocą SSMS
Programowo przy użyciu AMO
Przez skrypt przy użyciu XMLA
Wszystkie scenariusze wymagają użytkownikowi dostęp do folderu bazy danych i używać metoda do przenoszenia plików do żądanego obiekt docelowy.
Ostrzeżenie
Odłączanie bazy danych bez przypisywania hasła do niego pozostawia bazy danych w stanie niezabezpieczoną.Zaleca się, przypisując hasło do bazy danych w celu ochrony informacji poufnych.Ponadto odpowiednie zabezpieczenia dostępu stosuje się do folderu bazy danych, podfoldery i pliki, aby uniemożliwić nieautoryzowany dostęp do nich.
Procedury
Przenoszenie bazy danych interakcyjnie, za pomocą SSMS
Zlokalizuj bazę danych do przeniesienia w okienku SSMS w lewo lub w prawo.
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.
Użyj mechanizmu dowolnego systemu operacyjnego lub standardowa metoda przenoszenia plików, aby przenieść folder bazy danych do nowej lokalizacji.
Zlokalizuj bazy danych folder w okienku SSMS w lewo lub w prawo.
Kliknij prawym przyciskiem myszy bazy danych i wybierz polecenie Attach…
W folder tekstu wpisz nową lokalizację folderu bazy danych.Alternatywnie można skorzystać z przycisk przeglądania (…), aby zlokalizować folder bazy danych.
Wybierz odczytu i zapisu tryb dla bazy danych.
Wpisz hasło używane w kroku 3, a następnie kliknij przycisk OK do wykonać polecenia Dołącz.
Przenoszenie bazy danych programowo przy użyciu AMO
- W aplikacji C# dostosowania następujący przykładowy kod i ukończyć zadania wskazane.
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
}
}
W aplikacji C# wywołać MoveDb() z niezbędnych parametrów.
Skompiluj i wykonać kodu, aby przenieść bazę danych.
Przenoszenie bazy danych przez skrypt przy użyciu XMLA
Otwórz nową kartę XMLA w SSMS.
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.
Użyj mechanizmu dowolnego systemu operacyjnego lub standardowa metoda przenoszenia plików, aby przenieść folder bazy danych do nowej lokalizacji.
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.