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

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

Существует много способов перенести базу данных в другое место. В этом документе описаны следующие распространенные сценарии:

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

  • программным способом с помощью объектов AMO;

  • с помощью сценариев, используя XML для аналитики.

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

ПримечаниеПримечание

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

Процедуры

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

  1. Найдите перемещаемую базу данных в левой или правой области среды SSMS.

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

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

  4. При помощи любого механизма, поддерживаемого операционной системой, или стандартным для вас образом выполните перемещение папки базы данных в новое расположение.

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

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

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

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

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

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

  • В приложении на 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. Скомпилируйте и выполните код для перемещения базы данных.

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

  1. Откройте новую вкладку XML для аналитики в среде SSMS.

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

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

<Object>

<DatabaseID>%dbName%</DatabaseID>

<Password>%password%</Password>

</Object>

</Detach>

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

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

  3. При помощи любого механизма, поддерживаемого операционной системой, или стандартным для вас образом выполните перемещение папки базы данных в новое расположение.

  4. Скопируйте следующий шаблон сценария XML для аналитики в новую вкладку XML для аналитики.

<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. Выполните команду XML для аналитики.