Перемещение базы данных служб Analysis Services

Часто возникают ситуации, когда администратор базы данных Analysis Services (dba) хочет переместить многомерную или табличную базу данных в другое расположение. Эти ситуации часто зависят от бизнес-потребностей, таких как перемещение базы данных на другой диск для повышения производительности, получение места для роста базы данных или обновление продукта.

База данных может быть перемещена различными способами. В этом документе описываются следующие распространенные сценарии:

  • интерактивно с помощью среды SSMS;

  • Программное использование AMO

  • При помощи скрипта с использованием XMLA

Для всех сценариев пользователю требуется доступ к папке базы данных и использовать метод для перемещения файлов в нужное конечное место назначения.

Замечание

Отключение базы данных без назначения пароля к ней оставляет базу данных в незащищенном состоянии. Рекомендуется назначить пароль базе данных для защиты конфиденциальной информации. Кроме того, соответствующая безопасность доступа должна применяться к папке базы данных, вложенным папкам и файлам, чтобы предотвратить несанкционированный доступ к ним.

Процедуры

Интерактивное перемещение базы данных с помощью SSMS

  1. Найдите базу данных для перемещения в левой или правой панели SQL Server Management Studio.

  2. Щелкните правой кнопкой мыши базу данных и выберите "Отсоединить...

  3. Назначьте пароль отсоединяемой базе данных, а затем нажмите кнопку ОК , чтобы выполнить команду отсоединения.

  4. Используйте любой механизм операционной системы или стандартный метод перемещения файлов для перемещения папки базы данных в новое расположение.

  5. Найдите папку "Базы данных" в левой или правой области SSMS.

  6. Щелкните правой кнопкой мыши папку "Базы данных " и выберите "Подключить" ...

  7. В текстовом поле папки введите новое расположение папки базы данных. Кроме того, можно использовать кнопку обзора (...), чтобы найти папку базы данных.

  8. ReadWrite Выберите режим для базы данных.

  9. Введите пароль, используемый на шаге 3, и нажмите кнопку ОК , чтобы выполнить команду присоединения.

Программное перемещение базы данных с помощью AMO

  1. В приложении C# адаптируйте следующий пример кода и выполните указанные задачи.

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

}

}

  1. В вашем приложении C# вызовите MoveDb() с необходимыми параметрами.

  2. Скомпилируйте и выполните код для перемещения базы данных.

Перемещение базы данных с помощью скрипта с помощью XMLA

  1. Откройте новую вкладку XMLA в SSMS.

  2. Скопируйте следующий шаблон скрипта для XMLA

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

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

  1. Замените %dbName% именем базы данных и %password% паролем. Символы % являются частью шаблона и должны быть удалены.

  2. Выполните команду XMLA.

  3. Используйте любой механизм операционной системы или стандартный метод перемещения файлов для перемещения папки базы данных в новое расположение.

  4. Скопируйте следующий шаблон скрипта для XMLA на новой вкладке 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. Замените %dbFolder% на полный UNC-путь к папке базы данных, %ReadOnlyMode% на соответствующее значение ReadOnly или ReadWrite, а %password% на пароль. Символы % являются частью шаблона и должны быть удалены.

  2. Выполните команду XMLA.

См. также

Attach*
Microsoft.AnalysisServices.Database.Detach*
Присоединение и отключение баз данных служб Analysis Services
Расположение хранилища базы данных
Database ReadWriteModes
Присоединить элемент
Открепить элемент
Элемент ReadWriteMode
Элемент DbStorageLocation