Mergecontentdbs: операция Stsadm (службы Windows SharePoint Services)
Описание
Позволяет переместить семейство веб-сайтов из одной базы данных контента в другую, если указаны параметры sourcedatabasename и destinationdatabasename.
Исходная и целевая базы данных должны находиться в одном и том же экземпляре Microsoft SQL Server и быть прикреплены к одному веб-приложению. Для поддержания оптимальной производительности не перемещайте более 250 семейств веб-сайтов за один раз. Перемещение большего числа семейств веб-сайтов может значительно снизить производительность системы.
Примечание
Операция mergecontentdbs была впервые введена в Windows SharePoint Services 3.0 с пакетом обновления 1.
Важно!
Апрельское накопительное обновление устраняет известные проблемы с операцией mergecontentdbs программы командной строки Stsadm. Подробные сведения об этой проблеме см. в статье Команда Mergecontentdbs программы Stsadm может вызывать повреждение базы данных (на английском языке). Если планируется объединение или разделение баз данных контента, настоятельно рекомендуется установить апрельское накопительное обновление.
Синтаксис
stsadm -o mergecontentdbs
-url <URL-имя>
-sourcedatabasename <имя исходной базы данных>
-destinationdatabasename <имя целевой базы данных>
[-operation] {1-3}
** 1 — анализ (по умолчанию)**
2 — полное слияние баз данных
3 — чтение из файла
[-filename] <файл, созданный в результате выполнения команды stsadm -o enumsites>
Параметры
Имя параметра |
Значение |
Обязательно |
Описание |
url-адрес |
Допустимый URL-адрес, например, "http://*имя_сервера*" |
Да |
URL-адрес веб-приложения, слияние баз данных которого необходимо выполнить. |
sourcedatabasename |
Допустимое имя базы данных, например, "WSS_Content_1 |
Да |
Имя базы данных, из которой будут перемещены семейства веб-сайтов. |
destinationdatabasename |
Допустимое имя базы данных, например, "WSS_Content_2" |
Да |
Имя базы данных, куда будут перемещены семейства веб-сайтов. |
operation |
Одно из следующих значений
|
Нет |
1 — анализ. Указывает, что в окне команд отображается текущее число семейств веб-сайтов, размер базы данных, максимальное число семейств веб-сайтов и то число семейств веб-сайтов, которое можно добавить к каждой базе данных контента до того, как будет достигнуто максимальное число. Кроме того, в окне команд содержатся рекомендации по выбору исходной и целевой баз данных контента при условии, что будут перемещены все семейства веб-сайтов. Эти рекомендации основываются на том, в какой из баз данных содержится меньший объем данных и, следовательно, для ее перемещения потребуется меньше времени. Это значение установлено по умолчанию. 2 — полное слияние базы данных. Осуществляет слияние всей базы данных контента из одной базы данных в другую. После завершения операции исходная база данных контента сохраняется в Microsoft SQL Server и остается прикрепленной к веб-приложению, но теперь в ней нет семейств веб-сайтов. 3 — чтение из файла. Перемещает только подмножество семейств веб-сайтов из исходной базы данных в целевую. Необходимо перечислить перемещаемые семейства веб-сайтов в файле, на который указывает параметр filename. |
filename |
Допустимое имя файла, например, "sites.xml" |
Нет |
Определяет конкретное семейство веб-сайтов исходной базы данных контента, которое необходимо переместить в целевую базу данных Эти сведения получены с помощью параметра databasename операции Enumsites. Примечание Параметр databasename впервые введен в Windows SharePoint Services 3.0 с пакетом обновления 1. Примечание С помощью оператора перенаправления ">" можно преобразовать выходные данные в формате XML операции enumsites в текстовый файл. |
Примечания
Для выполнения операции mergecontentdbs программы Stsadm требуется:
- свободное пространство, объем которого не менее чем в три раза превышает размер исходного семейства сайтов. Чтобы определить размер семейства сайтов, обратитесь к процедуре, описанной в статье Enumsites: операция Stsadm (Windows SharePoint Services).
Чтобы переместить семейство веб-сайтов из одной базы данных в другую, необходимо быть членом группы администраторов фермы и локальной группы администраторов и обладать полным доступом к любому семейству веб-сайтов,который необходимо переместить. Чтобы предоставить это разрешение, в центре администрирования выберите Управление приложениями, Безопасность приложений, а затем Политика для веб-приложения. Учетная запись, используемая для выполнения этой процедуры, должна быть членом фиксированной роли db_owner базы данных в SQL Server.
После успешного перемещения веб-сайта удалите или измените уровень разрешений учетной записи на странице "Политика для веб-приложения". Если учетная запись используется для других служб, восстановите исходный уровень разрешений.
Если разрешения на выполнение данной операции отсутствуют, отобразится сообщение об ошибке: "Перемещение узлов... По адресу /sites/test уже существует сайт. Удалите его, прежде чем создавать новый сайт с тем же URL-адресом, либо выберите новый URL-адрес, либо создайте новое включение в ранее указанном пути".
После завершения перемещения выполните команду iisreset /noforce на каждом интерфейсном веб-сервере фермы. После перемещения большого объема данных может понадобиться сжать базы данных SQL и журналы операций. Дополнительные сведения о сжатии баз данных SQL см. в разделе Как сжать базу данных (среда SQL Server Management Studio) (https://go.microsoft.com/fwlink/?linkid=102959&clcid=0x419).
Примеры
Слияние баз данных контента с использованием параметра "filename"
В этом примере "WSS_Content_1" и "WSS_Content_2" — имена баз данных контента**.**
Для создания списка веб-сайтов в файле sites.xml с помощью операции перенаправления ">" используйте следующий синтаксис:
stsadm -o enumsites -url http://<servername> –databasename WSS_Content_1 > sites.xml
Примечание
Оператор перенаправления ">" перенаправляет выходные данные в текстовый файл sites.xml. После этого можно изменить этот файл таким образом, чтобы в нем перечислялись семейства веб-сайтов, которые следует переместить.
Чтобы переместить семейства веб-сайтов, перечисленные в файле sites.xml, из одной базы данных контента в другую, используйте следующий синтаксис:
stsadm -o mergecontentdbs -url http://<имя_сервера> -sourcedatabasename WSS_Content_1 -destinationdatabasename WSS_Content_2 -operation 3 -filename sites.xml
Примечание
Цифра 3 в параметре operation соответствует операции "Чтение из файла".
После перемещения семейства веб-сайтов и вступления изменений в силу на всех интерфейсных веб-серверах в ферме, выполните следующую команду в командной строке:
iisreset /noforce
См. также
Другие ресурсы
Операция Mergecontentdbs может вызывать повреждение базы данных (на английском языке)