Практический опыт миграции с MySQL на SQL Express. Постановка задачи.
Миграция 1С-БИТРИКС с MySQL на SQL Server Express
Алексей Шуленин, Microsoft; Денис Шаромов, Битрикс
«1С-Битрикс» (https://www.1c-bitrix.ru/) - совместное предприятие, созданное фирмой «1С» и компанией «Битрикс» для развития веб-направления, разработки новых интернет-решений. Компания «Битрикс» производит разработку и сопровождение системы управления контентом (CMS) «1С-Битрикс: Управление сайтом» (https://www.1c-bitrix.ru/products/cms/), позволяющей управлять статическим и динамическим контентом сайта, осуществлять деятельность Интернет-магазина, вести форумы, дискусионные группы, создавать социальные сети, проводить анализ посещаемости сайта, эффективности рекламных компаний, использовать он-лайновый монитор и другие средства Веб-аналитики.
Для своей работы «1С-Битрикс: Управление сайтом» использует базу данных, в которой хранит контент и настройки сайта. В качестве СУБД используются свободно распространяемые MySQL (https://dev.mysql.com/downloads/mysql/5.0.html) или SQL Express (https://www.microsoft.com/rus/express/sql/default.aspx). В последнее время от клиентов, выбравших инсталляцию с MySQL, стали поступать вопросы о переходе на SQL Express. В связи с этим встала задача исследовать осуществимость и трудоемкость такого перехода и, по возможности, разработать процедуру автоматической миграции БД MySQL на SQL Express.
По условиям задачи необходимо было избежать программных средств сторонних производителей. Все технологические компоненты, используемые в процессе миграции, должны были предоставляться к продуктам MySQL или SQL Express и быть также бесплатными. По этим причинам не рассматривались, например, Cherry City Software® MySQL OLE DB Provider или Microsoft Integration Services. Для обеспечения доступа к БД MySQL из внешних приложений были выбраны (https://dev.mysql.com/downloads/connector/) MySQL Connector/ODBC 5.1 и MySQL Connector/Net 6.0. Первый коннектор использовался при сравнении структур баз MySQL- и SQL Express-инсталляций, второй – непосредствено при переносе данных.
При миграции от нас не требовалось создавать структуры таблиц, индексы, представления, ограничения, триггеры на стороне SQL Express по образу того, как это было в MySQL. Как отмечалось выше, «1С-Битрикс: Управление сайтом» имеет отдельные инсталляции для MySQL и SQL Express, т.е. структура базы и там, и там создается самостоятельно в процессе установки продукта и изменению не подлежит. От нас требовалось провести их сравнение в случае MySQL и SQL Express, соотнести таблицы и колонки и скопировать данные из БД MySQL в SQL Express на основе выстроенной схемы отображения.
Для эмуляции действий клиента была создана виртуальная машина, имеющая следующие характеристики:
Рис. 3.1
работающая под управлением Hyper-V Manager, Version: 6.0.6001.18016.