Моя компания переносит нашу инфраструктуру в новый центр обработки данных, и я пытаюсь найти наилучший способ синхронизации базы данных на новом сервере с текущей производственной базой данных до тех пор, пока новые среды не будут готовы к работе. Не будучи полностью занятым администратором базы данных, я провел некоторое исследование, и из того, что я прочитал, похоже, что транснациональная репликация лучше всего отвечает нашим потребностям.
Некоторые подробности: размер рабочей БД составляет около 90 ГБ, а с помощью Robocopy ее копирование на один из новых серверов заняло около 9 часов. Текущая производственная база данных должна оставаться в сети и доступной на протяжении всего процесса миграции. Это простое восстановление, поэтому зеркальное отображение базы данных недоступно.
Является ли репликация транзакций лучшим способом для синхронизации баз данных?
Мой план:
- (Готово) Перенесите текущую базу данных и войдите на новый сервер и присоедините его к новому экземпляру SQL Server.
- Установите дистрибьютора на нашей машине базы данных разработки и опубликуйте его из производственной базы данных.
- Создайте подписчика на новом компьютере базы данных, который будет принимать обновления, которые выталкиваются из распространителя, один раз каждую ночь.
У меня на уме две вещи. Для репликации транзакций требуется, чтобы у каждой опубликованной таблицы был первичный ключ, а во многих таблицах производственной базы данных не определены первичные ключи. Я не думаю, что это будет слишком большой проблемой, так как моя главная задача - просто синхронизировать базы данных. Мы протестируем различные приложения, которые используют базу данных на более поздних данных, но я хотел бы убедиться, что это не является серьезной проблемой. Во-вторых, нужно ли также перемещать любые связанные системные БД из исходного экземпляра, например master? Мы переходим к настройке Active Directory в новой среде, поэтому меня не волнуют пользователи и тому подобное, но я не уверен в необходимости системных БД.
И вообще, правильно ли я понимаю эти понятия?
источник
У меня не было возможности использовать это самому, и я думаю, что он все еще в предварительном просмотре, но возможен вариант синхронизации данных SQL на платформе Azure:
https://azure.microsoft.com/en-gb/documentation/articles/sql-database-get-started-sql-data-sync/
Он работает с локальными базами данных, а также с базами данных SQL Azure и кажется полезным инструментом для синхронизации баз данных.
источник