Определение проблемы
Наш сервер базы данных должен быть перенесен в другой центр обработки данных. Он работает на Microsoft SQL Server 2012 Enterprise (64-разрядная версия) и содержит две базы данных объемом около 2 ТБ и 1 ТБ.
Было бы идеально, если бы у нас было простои или нет простоев.
Нагрузка
Эти базы данных используются для веб-сайта .NET и постоянно обновляются.
Хотя это не будет доступно в выходные, было бы приемлемо. Используемая в настоящее время БД останется единственной в использовании, пока не будет переключен на новую.
В идеале это переключение можно сделать, просто изменив DNS-записи так, чтобы они указывали на новый сервер БД, при этом следя за тем, чтобы БД не обновлялась.
Кроме того, время, затрачиваемое этой операцией, не имеет большого значения, пока поддерживается низкий уровень переключения с одного сервера на другой (время простоя).
Рассмотренные подходы
Резервное копирование и восстановление
Это было сделано в прошлом, но было связано с большим временем простоя, даже если это было сделано через внутреннюю сеть, поэтому более эффективно, чем через Интернет.
Доставка журналов
Насколько я понимаю, этот подход позволил бы минимизировать время простоя путем настройки главного / подчиненного устройства и передачи точной копии главной БД на ее ведомое устройство, доступное только для чтения. Как упомянуто выше, доступ к ведомому не нужен, и нам просто нужен способ получить копию главной БД без повреждения данных.
Он также кажется довольно эффективным с точки зрения использования ресурсов и не сильно повлияет на производительность мастера.
Я могу ошибаться в этом подходе, поэтому не стесняйтесь поправлять меня.
Зеркальное отображение базы данных
Я не слишком осведомлен об этом подходе, но он кажется верным вариантом. Нет необходимости иметь синхронизацию в реальном времени, и производительность мастера очень важна, поэтому асинхронный вариант будет подходящим вариантом, если будет выбран этот подход.
Другие опции?
Этот сервер работает непосредственно на железном железе, поэтому решения более низкого уровня, к сожалению, не подходят. Может быть, есть лучший способ сделать это?
Ограничения
Как описано, эти базы данных достаточно велики, и их трудно поддерживать, но это другая проблема.
Версии SQL Server будут одинаковыми (Microsoft SQL Server 2012 Enterprise, 64-разрядная версия).
Он должен быть передан по сети между двумя центрами обработки данных, поэтому, скорее всего, через Интернет. К сожалению, отправка дисков с одного сайта на другой для начальной синхронизации невозможна. Было бы идеально иметь какую-то безопасность для передачи, но мы постараемся сделать все возможное в этой ситуации.
Это должно дать довольно хороший обзор наших потребностей в этой задаче, и, надеюсь, некоторые из вас уже сталкивались с такой ситуацией раньше.