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