Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Часто возникают ситуации, когда администратор базы данных служб Analysis Services (dba) хочет переместить базу данных многомерной или табличной модели в другое расположение. Такие ситуации часто обусловлены потребностями предприятия, например необходимостью переместить базу данных на другой диск для повышения производительности, освободить место для увеличения размера базы данных или при обновлении какого-либо продукта.
Существует много способов перенести базу данных в другое место. В этом документе описаны следующие распространенные сценарии:
интерактивно с помощью среды SSMS;
программным способом с помощью объектов AMO;
с помощью скриптов, используя XML для аналитики
При выполнении любого сценария необходимо, чтобы пользователь получил доступ к папке базы данных и применил один из методов перемещения файлов в конечное место назначения.
Примечание
При отсоединении базы данных без назначения ей пароля эта база данных оказывается в незащищенном состоянии. Рекомендуется назначить базе данных пароль для защиты конфиденциальных данных. Кроме того, к папке базы данных, к вложенным папкам и к файлам следует применять соответствующие меры защиты доступа, чтобы исключить несанкционированный доступ к этим объектам.
Процедуры
Перемещение базы данных в интерактивном режиме с помощью среды SSMS
Найдите перемещаемую базу данных на левой или правой панели среды SSMS.
Щелкните правой кнопкой мыши базу данных и выберите Команду Отсоединить...
Назначьте пароль отсоединяемой базе данных и нажмите кнопку ОК , чтобы выполнить команду отсоединения.
При помощи любого механизма, поддерживаемого операционной системой, или стандартным для вас образом выполните перемещение папки базы данных в новое расположение.
Найдите папку Базы данных на левой или правой панели среды SSMS.
Щелкните правой кнопкой мыши папку Базы данных и выберите Подключить...
В текстовое поле папка впечатайте новое местоположение папки базы данных. Кроме того, можно использовать кнопку обзора (...), чтобы найти папку базы данных.
ReadWrite
Выберите режим для базы данных.Введите пароль, который использовался в шаге 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
}
}
В приложении на C# вызовите метод
MoveDb()
, указав необходимые параметры.Скомпилируйте и выполните код для перемещения базы данных.
Перемещение базы данных с помощью скрипта XML для аналитики
Откройте новую вкладку XML для аналитики в среде SSMS.
Скопируйте следующий шаблон скрипта XML для аналитики.
<Detach xmlns="https://schemas.microsoft.com/analysisservices/2003/engine">
<Object>
<DatabaseID>%dbName%</DatabaseID>
<Password>%password%</Password>
</Object>
</Detach>
Замените шаблон
%dbName%
именем базы данных, а шаблон%password%
— соответствующим паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.Выполните команду XML для аналитики.
При помощи любого механизма, поддерживаемого операционной системой, или стандартным для вас образом выполните перемещение папки базы данных в новое расположение.
Скопируйте следующий шаблон скрипта 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>
Замените шаблон
%dbFolder%
полным путем к папке базы данных в формате UNC, шаблон%ReadOnlyMode%
— соответствующим значением (ReadOnly
илиReadWrite
), а шаблон%password%
— паролем. Символы «%» являются частью шаблона, и поэтому их необходимо удалить.Выполните команду XML для аналитики.
См. также:
Attach*
Microsoft.AnalysisServices.Database.Detach*
Присоединение и отключение баз данных служб Analysis Services
Место хранения базы данных
Режимы ReadWriteModes базы данных
Элемент Attach
Элемент Detach
Элемент ReadWriteMode
Элемент DbStorageLocation