Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Часто возникают ситуации, когда администратор базы данных Analysis Services (dba) хочет изменить режим чтения и записи табличной или многомерной базы данных. Эти ситуации часто зависят от бизнес-потребностей, таких как совместное использование базы данных между пулом серверов Служб Analysis Services для улучшения взаимодействия с пользователем.
Режим базы данных можно переключать различными способами. В этом документе описываются следующие распространенные сценарии:
Интерактивное использование SQL Server Management Studio
Программное использование AMO
При помощи скрипта с использованием XMLA
Процедуры
Переключение режима чтения и записи базы данных в интерактивном режиме с помощью Management Studio
Найдите базу данных для переключения в левой или правой области Management Studio.
Щелкните правой кнопкой мыши базу данных и выберите пункт "Свойства". Найдите папку базы данных и запишите расположение. Пустое расположение хранилища базы данных указывает, что папка базы данных находится в папке данных сервера.
Это важно
Как только база данных отсоединится, Management Studio больше не сможет помочь вам определить местоположение базы данных.
Щелкните правой кнопкой мыши базу данных и выберите Отсоединить...
Назначьте пароль отсоединяемой базе данных, а затем нажмите кнопку ОК , чтобы выполнить команду отсоединения.
Найдите папку "Базы данных " в левой или правой области Management Studio.
Щелкните правой кнопкой мыши папку "Базы данных " и выберите "Подключить" ...
В текстовом поле папки введите исходное расположение папки базы данных. Кроме того, можно использовать кнопку обзора (...), чтобы найти папку базы данных.
Выберите режим чтения и записи для базы данных.
Введите пароль, который использовался на шаге 3, и нажмите кнопку ОК , чтобы выполнить команду присоединения.
Переключение режима чтения и записи в базу данных программным способом с помощью AMO
- В приложении C# адаптируйте следующий пример кода и выполните указанные задачи.
private void SwitchReadWrite(Server server, string dbName,
ReadWriteMode dbReadWriteMode)
{
if (server.Databases.ContainsName(dbName))
{
Database db;
string databaseLocation;
db = server.Databases[dbName];
databaseLocation = db.DbStorageLocation;
if (databaseLocation == null)
{
string dataDir = server.ServerProperties["DataDir"].Value;
String[] possibleFolders = Directory.GetDirectories(dataDir, string.Concat(dbName,"*"), SearchOption.TopDirectoryOnly);
if (possibleFolders.Length > 1)
{
List<String> sortedFolders = new List<string>(possibleFolders.Length);
sortedFolders.AddRange(possibleFolders);
sortedFolders.Sort();
databaseLocation = sortedFolders[sortedFolders.Count - 1];
}
else
{
databaseLocation = possibleFolders[0];
}
}
db.Detach();
server.Attach(databaseLocation, dbReadWriteMode);
}
}
В вашем приложении C# вызовите
SwitchReadWrite()с необходимыми параметрами.Скомпилируйте и выполните код для перемещения базы данных.
Переключить режим чтения и записи в базе данных с помощью скрипта на XMLA
Найдите базу данных для переключения в левой или правой области Management Studio.
Щелкните правой кнопкой мыши базу данных и выберите пункт "Свойства". Найдите папку базы данных и запишите расположение. Пустое расположение хранилища базы данных указывает, что папка базы данных находится в папке данных сервера.
Это важно
Как только база данных будет отсоединена, Management Studio больше не сможет помочь вам получить расположение базы данных.
Откройте новую вкладку XMLA в Management Studio.
Скопируйте следующий шаблон скрипта для 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