пятница, 11 марта 2011 г.

Миграция с MOSS2007 на MOSS2010. Поехали!

Как я писал ранее, миграция Sharepoint с версии 2007 на 2010 не приносит особых сложностей, если используется только стандартный функционал. Но такое бывает крайне редко. Передо мной стала задача миграции портала вместе с существующими наработками.
Текущая версия портала развернута на MS  Windows Server 2003 SP2 (32-разрядная). В приведенной ссылке есть ссылка на документацию от MS по миграции. Существуют Требования к оборудованию и программному обеспечению (SharePoint Server 2010). Исходя из этой ситуации мне подходит только миграция БД с сервера c Sharepoint 2007 на сервер с Sharepoint 2010. Как всегда в интернете можно найти много информации, поэтому буду отталкиваться от статьи SharePoint 2010 Cookbook: How to Migrate a SharePoint 2007 Site to SharePoint 2010 Using Database Attach (некоторые картинки будут оттуда).
Опишу последовательность шагов:


  1. Сделать backup всего содержимого портала (всех баз данных)
  2. Накатить последние обновления для Sharepoint 2007 и Sharepoint 2010. Много проблем у меня возникло именно потому, что я не использовал последние исправления. Об этом расскажу ниже.
  3. Подготовить веб-приложение к миграции
  4. Скопировать backup базы содержимого на Sharepoint 2010 MS SQL Server
  5. Присоединить базу данных содержимого к веб-приложению.
Шаг 1.  Backup всего содержимого портала
Делать это можно в Центре администрирования. Нужно перейти на вкладку Операции и в группе "Резервное копирование и восстановление" выбрать "Выполнение резервного копирования". Там выбрать над чем нужно произвести резервное копирование. Выбрать тип копирования (Полное/Разностное) и месторасположение резервной копии.
В общем, все достаточно просто.

Шаг 2. Установить обновления
На следующих страница (страница1 , страница3  и страница2) можно скачать последние обновления.

Шаг 3. Подготовка веб-приложения к миграции.
На самом деле здесь все не так просто. Мало того, что нужно определить что же из существующего портала нужно (какие узлы, списки, элементы). Надо еще и вычистить следы от всякого рода мусора, который остался от долгого использования портала.
Сейчас опишу только как смигрировать "чистое" содержимое, т.е. содержимое, в котором нет мертвых ссылок на несуществующие объекты (фичи, обработчки и тд).
Разбор возможных ошибок рассмотрим в следующей статье.
Если переделывать структуру портала нет необходимости, то этот шаг можно пропустить.

Допустим у вы собираетесь мигрировать сайт http://duyfarm/TeamSite.
  1. Создайте новое веб-приложение с пустой коллекцией сайтов (например: http://duyfarm:6789)
  2. Залогинитесь на Sharepoint сервер, используя учетную запись со следующими правами 
    1. SharePoint Farm Admin
    2. Локальный администратор на веб-сервере
    3. Права db_owner в базе данных содержимого, которая относится к  http://duyfarm/TeamSite и http://duyfarm:6789
    4. Проверьте, что текущий пользователь имеет права на содержимое мигрируемого сайта.
  3. Откройте Command Prompt и измините директорию на %COMMONPROGRAMFILES%\Microsoft shared\web server extensions\12\bin, затем выполните команды stsadm -o export -url <URL name> -filename <export file name> -includeusersecurity 
    stsadm -o import -filename <import file name> -url <URL name> -includeusersecurity
Импортированное веб-приложение должно выглядеть примерно так

Перед тем как мигрировать базу данных содержимого нужно выполнить команду
stsadm -o preupgradecheck
Данная команда подготавливает базы к миграции, а также показывает где существуют проблемы в текущей конфигурации базы данных содержимого.
Вывод примерно следующий:
Как видно, у меня проблема пока только в том, что не выполняются требования по окружению рабочей среды (32х разрядная винда, о чем я писал выше).
Далее нужно сделать бэкап нашей базы данных содержимого. Выбираем нужную базу (можно узнать через Центр Администрирования в блоке "Базы данных содержимого")
Выбираем тип бэкапа "Full", вводим название набора бэкапа и выбираем файл, в который будет производиться бэкапирование. Нажимаем кнопку ОК.

Шаг 4. Присоединение базы данных содержимого к веб-приложению
Это самый замечательный шаг. На этом шаге, если повезет, у вас не возникнет проблем. Если же проблемы дадут о себе знать, то в некоторых случаях выручат подробные логи.
Я очень долго провозился с присоединением базы данных, получал очень много ошибок, откатывался на первый шаг и начинал все с начала. В общем, это очень увлекательное занятие. Может быть и вы оцените всю мощь Sharepoint'а :-)

И так начнем!
  1. В Центре администрирования Sharepoint необходимо создать новое веб-приложение. Например: http://duyfarm2010:6789
  2. Если существуют нестандартные компоненты Sharepoint, то следует их установить в ферме и развернуть на созданное веб-приложение
  3. После этого можно восстановить бекап нашей базы данных содержимого SharePoint 2007. Откройте Microsoft SQL Server Management Studio. Правой кнопки мыши щелкните на Databases и выбирите Restore Database...
  4. Введите новое название database, будьте уверены, что вы не перезаписывается существующую базу данных. Выберите Source и нажмите кнопку OK, чтобы начать восстановленеи базы.
  5. Откроейте SharePoint 2010 Management Shell и отсоедините текущую базу данных содержимого от веб-приложения.
    Dismount-SPContentDatabase <ContentdBName>
  6. Проверьте, что установлены все необходимые кастомные компоненты. Если возникнут ошибки, убедитесь, что вы их исправили перед тем, как присоединять базу данных содержимого SP2007.
    Test-SPContentDatabase -Name <DatabaseName> -WebApplication <URL>
  7. Mой тест показал, что ошибок нет. Теперь мы готовы к выполнению команды Mount-SPContentDatabase. Этот командлет также обновляет содержимое базы данных SP2007 до SP2010.
    Mount-SPContentDatabase <ContentDb> -WebApplication http://SiteName
  8. После завершения этой процедуры Вы должны проверить лог-файлы (файлы логов обновления и ошибок), чтобы быть уверенным что нет никаких ошибок. Лог файлы находятся в папке %COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\14\LOGS. Имя лог-файлов имеет следующий формат: Upgrade-YYYYMMDD-HHMMSS-SSS-error.log и Upgrade-YYYYMMDD-HHMMSS-SSS.log, где YYYYMMDD дата и HHMMSS-SSS время (24ч формат). Если есть ошибки, то скорее всего они исправляются на сервере SharePoint 2007. В следующей статье я расскажу про ошибки, которые у меня возникли и расскажу как они решаются
Мы наконец-то закончили процесс миграции. Обратите внимание, что после завершения нашего обновления, новый сайт выглядит точно так же, как он выглядел в SharePoint 2007. В SharePoint 2010 есть функция под названием "Визуальное обновление", которое позволяет переключать внешний вид между SharePoint 2007 и SharePoint 2010. Замечу, что если у вас есть пользовательские темы на старом сайте, вы должны заново создать новую тему для нового сайта, прежде чем вы захотите переключаться. Чтобы перейти на новый дизайн SharePoint 2010, сделаем следующее:
  • Зайтите как Владелец Сайта и выберите Site Actions > Visual Upgrade
  • Выберите Update the user interface. Нажмите кнопку OK
  • Сайт должен выглядеть следующим образом:
Заметки:
  • Метод присоединения базы данных работает с обоими версиями SharePoint 2010 (Foundation и Server).
  • Ограничения экспорта/импорта метода:
    • Вы не можете сохранить состояния Рабочие процесс, alerts, features, solutions, или Recycle-Bin используя операцию экспорта.
    • Stsadm поддерживает перемещение только сайтов(экземпляров SPWeb). Вы не сможете экспортировать выбранные элементы или списки.
 В следующей заметке опишу проблемы, с которыми я столкнулся и опишу пути решения этих проблем.


Инструменты миграции SharePoint на все случаи жизни

28 комментариев:

  1. А если требуется перенести разрешения пользователей на узлах с 2007 на 2010 c учетом того, что домен на 2010 будет использоваться другой, есть какие-нибудь мысли по этому поводу как это сделать более корректно, чтобы вручную на 2010 не прописывать заново разрешения пользователей на узлах, а их не одна сотня используется.

    ОтветитьУдалить
    Ответы
    1. К сожалению, не сталкивался с такой задачей. Мыслей много по этому поводу, но что-то не кажутся они мне best practicies

      Удалить
  2. вопрос, столкнулся с такой проблемой при миграции, с wss 3.0 на 2010, в новом дизайне не работают некоторые календари, а в старом дизайне все ок, куда копать как решить этот трабл?

    ОтветитьУдалить
    Ответы
    1. Дизайн кастомизировали? Есть ли ошибки в Консоли браузера?

      Удалить
    2. нет дизайн не кто не трогал... в консоли браузера? когда переходишь по списку календарь, выскакивает ошибка: Ошибка Возникла неожиданная ошибка. Устранение неполадок в работе службы Microsoft Sharepoint Fondation. индикатор взаимосвязи: 3f ...... так далее в лош файле особо нечего нету на ошибку.... https://social.technet.microsoft.com/Forums/ru-RU/1f35f9c5-b75b-446e-9357-b23d03d2cddc/-sharepoint-wss-30-2010?forum=sharepointru

      Удалить
    3. Т.е. нет никаких кастомных пакетов и всё из коробки?
      Про консоль вот тут написано:
      1. Хром - https://learn.javascript.ru/debugging-chrome
      2. Лиса - https://developer.mozilla.org/ru/docs/Tools/%D0%9A%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C_%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B0
      Но это в случае ошибки на клиенте, у вас ошибка серверная. Я, если честно, с таким не сталкивался. Пробовали поднять с нуля шарик и обновить? Затем опять поднять, подцепить базу и обновить? Вполне возможно, что у вас какая-то локальная проблема. Можно еще в логи винды заглянуть

      Удалить
  3. как раз так и делал, с нуля поднимал шарик 2 сервера 1-sql 2-сам sharepoint сервер, после обновлял, моунтил базу sql через востановление, как только я перехожу на новый дизайн список - календарь с днями рождениями падает в ошибку

    ОтветитьУдалить
  4. кстати про логи винды совсем забыл, в общем нашел ошибку, ошибка появляется сразу после того как перехожу на не рабочий список-календарь.
    Не удалось загрузить файл шаблона элемента управления ''/_controltemplates/TaxonomyPicker.ascx''. Не удалось загрузить тип "Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker" из сборки "Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c".

    ОтветитьУдалить
    Ответы
    1. Т.е. проблема решилась?

      Удалить
    2. нет, проблема остается, просто раньше не смотрел логи виндовые. после перехода по списку календарь, ошибка таже, но вот в логах винды пишет:
      Не удалось загрузить файл шаблона элемента управления ''/_controltemplates/TaxonomyPicker.ascx''. Не удалось загрузить тип "Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker" из сборки "Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c".

      Удалить
    3. Вот что поиск дал: https://social.technet.microsoft.com/Forums/ru-RU/d33a409b-4ad1-4d25-9ec3-4d0b22e558f1/-taxonomypickerascx?forum=sharepointru
      Вы накатили все хотфиксы?

      Удалить
    4. да эту статью я уже видел, и самое что интересное, сейчас я файлик этот TaxonomyPicker.ascx поправил, но ошибка при нажатии на список-календарь, все равно выскакивает... в виндовых логах, ошибки больше нет.
      хмм все ли я хотфиксы накатил? ну через центр обновление windows, все что можно поставил.

      Удалить
    5. Нет, я имел в виду что-то типа этого https://dplotnikov.wordpress.com/2016/07/21/%d0%bd%d0%b0%d0%ba%d0%be%d0%bf%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%bf%d0%b0%d0%ba%d0%b5%d1%82-%d0%be%d0%b1%d0%bd%d0%be%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b9-%d0%b4%d0%bb%d1%8f-sharepo-64/

      Удалить
  5. ох ты там их дофига, https://technet.microsoft.com/library/mt715807(v=office.16).aspx
    попробую скачаю, поставлю, после с мигрирую еще раз, напишу получилось или нет..

    ОтветитьУдалить
  6. Спасибо большущие, нактил все обновления по ссылке выше, смаунтил базу, после применил вот этот совет:
    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\template\controltemplates

    Заменить

    <%@ Control ClassName="TaxonomyPickerControl" Language="C#" Inherits="Microsoft.SharePoint.Portal.WebControls.TaxonomyPicker,Microsoft.SharePoint.Portal, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

    на это

    <%@ Control ClassName="TaxonomyPickerControl" Language="C#" Inherits="Microsoft.SharePoint.Taxonomy.TaxonomyFieldEditor, Microsoft.SharePoint.Taxonomy, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    подсмотрел здесь

    http://laurentcotton.wordpress.com/2011/06/15/sharepoint-2010-comment-corriger-lerreur-7043-taxonomypicker-une-bonne-fois-pour-toute/

    после применил вот этот совет:
    $wa = Get-SPWebApplication -Identity http://sp1ser
    $wa.Properties["portalsuperuseraccount"] = "domain\SP_admin_writers"
    $wa.Properties["portalsuperreaderaccount"] = "domain\sp_admin_readers"
    $wa.Update()
    все заработало, календарь стал открываться.

    ОтветитьУдалить
  7. возникла другая ошибка, может подскажешь...
    суть в чем: все загружается норм. но один из разделов переадресуется на старый сервер, где посмотреть изменить ссылку на новый?

    ОтветитьУдалить
    Ответы
    1. Одно из двух:
      1. Это пункт меню. Надо идти в настройки сайта и менять адрес. Хотя там должен быть относительный адрес
      2. На странице жестко прошито. Меняли например в Дизайнере. Решение: изменить страницу там же или в браузере, если есть такая возможность.

      Удалить
  8. 1. в настройки сайта, это в центре администрирования? или на самом сайте через действия сайта параметры сайта? странно то что все пункты ссылки поменялись на новый адрес, а один пункт с верху остался линк на старый сайт...
    дизйнер вообще не запускается, пишет ошибку: sorry the page you're looking for cannot be found. настройках приложения ( общие параметры\параметры рабочих процессов, пункт - разрешить пользовательские рабочие процессы для всех сайтов этого веб приложения, галка стоит да)

    ОтветитьУдалить
  9. тоессть, выбрать меню которое сверху, оно разграничивает отделы, и по нему нажать свойства то будет видно например: http://spser1/it/default.aspx и все остальные меню также начало идет http://spser1/ ( домен новой фермы куда была мигрирована старая) и т.д. а тут в одном отделе показывается ссылка на старую ферму http://carrier/it_project/default.aspx

    ОтветитьУдалить
  10. вообщем решил проблему, огромное спасибо.
    "Действия сайта" > "Параметры сайта" > верхняя панель ссылок, далее тыкаем по пункту который нужно изменить и вуаля в пункте: введите веб адрес: и там изменяем.!

    ОтветитьУдалить
    Ответы
    1. Извиняюсь за молчание, не было времени. Именно про это я и говорил. Хорошо, что проблема решена

      Удалить
  11. Этот комментарий был удален автором.

    ОтветитьУдалить
  12. Возникла такая проблема:
    после миграции с 2007 на 2010 не работает Sharepoint designer/ нажимаю действия сайта\изменить в Sharepoint Designer и выскакивает такое окно c написью
    sorry the page you're looking for can't be found

    в самом сайте дизайнер включен, в центре администрирования на уровне приложении дизайнер включен... как его включить???

    ОтветитьУдалить
    Ответы
    1. Ошибка вроде не о том, что дизайнер не включен, а о том, что страница не найдена. Я бы открыл отдельно Дизайнер, а в нем подключился бы к сайту.

      Удалить
  13. хмм а как отдельно открыть дизайнер? я думал что он поверх шарика стоит... или его нужно дополнительно ставить?

    ОтветитьУдалить
    Ответы
    1. Когда я занимался шариком (5 лет назад), дизайнер - это была отдельная программа https://www.microsoft.com/ru-ru/download/details.aspx?id=35491

      Удалить
  14. Понял, огромное спасибо, большущие, как всегда проблема была мелочи. поставил подключается работает.

    ОтветитьУдалить

Еще статьи

2leep.com