Я разработчик программного обеспечения, унаследовавший роль администратора баз данных с неполной занятостью. Я отвечаю за серверную часть приложения в небольшой круглосуточной базе данных большого объема на SQL Server 2008.
Хотя в БД есть и другие вещи, критически важной частью является таблица строк объемом 50 ГБ и 7,5 МБ, которая обслуживает 100 тыс. Запросов в секунду во время пиковой нагрузки и примерно половину этого количества в «ночное время». Это 99% + трафика чтения, но записи постоянны и обязательны.
Мне нужно иметь возможность выполнять периодическое обслуживание без перерыва на обслуживание. Скажем, восстановление индекса, задание по очистке старых данных, Центр обновления Windows или обновление оборудования. Большинство советов, которые я видел, относятся к типу «СОЗДАЙТЕ окно обслуживания». Я ценю это мнение, но надеюсь, что есть другой способ. Если это решит эту проблему, у меня будет возможность приобрести новое оборудование или изменить базу данных, клиентов (набор серверов веб-служб) и большую часть кода приложения (ADO.NET + ASP.NET).
Я думал о том, чтобы использовать «теплый» резерв (или третий сервер) для обслуживания, а затем «заменить» его в производство.
1 Синхронизируйте резерв, восстанавливая резервные копии, включая текущий журнал транзакций.
2 Выполните работы по техническому обслуживанию. 3 Перенастройте клиентов для подключения к резервному серверу. Существующие подключения завершаются в течение минуты или около того. 4 Запасной сервер теперь является рабочим сервером.
Остается проблема в том, что новый производственный сервер устарел, сколько бы времени ни потребовалось для обслуживания. Можно ли каким-то образом заставить исходный производственный сервер поставить изменения в очередь и объединить их с резервным между шагами 2 и 3? Есть другие идеи?
Вам нужно будет прочитать о функциях высокой доступности, предлагаемых SQL 2008. См. Вот для белой бумаги. Слишком много сценариев, чтобы охватить их.
[залезает на мыльницу]
Однако вам нужны окна обслуживания. Это не означает, что еженедельно или даже ежемесячно, но иногда вам потребуется отключить сервер для внесения улучшений. Очень мало систем, которые на 100% могут работать в течение длительного периода (лет) или должны быть такими. Назначение окон обслуживания - минимизировать время простоя и сделать его предсказуемым, чтобы бизнес мог с ним справиться. Я бы посоветовал не закрывать окна обслуживания полностью. Если вы измените свою конфигурацию, перейдя на кластеризацию или что-то подобное, у вас наверняка будет некоторое время простоя только во время перехода, пусть даже небольшого. [спускается обратно]
Некоторые варианты:
Мои 2 цента.
Я бы повторил зеркальное отображение и указал бы вам, ДЕЙСТВИТЕЛЬНО При необходимости 24/7 компания должна пополнить свой бюджет, включив в него администратора баз данных или консультанта, который поможет с этим.
Многократное зеркалирование может удовлетворить потребности 24/7 "достаточно хорошо" с очень небольшими затратами, помимо второго сервера.
Поскольку эта база данных является жизненно важной частью инфраструктуры, в любом случае рекомендуется «теплый» резерв. И это также позволит вам проводить техническое обслуживание.