Каков ваш план резервного копирования/обслуживания SQL Server?

StackOverflow https://stackoverflow.com/questions/296897

  •  08-07-2019
  •  | 
  •  

Вопрос

В качестве продолжения этот вопрос Мне интересно, каков ваш план резервного копирования/обслуживания SQL Server и как я могу улучшить свой.

В настоящее время я использую два простых плана обслуживания с помощью мастера планов.

Первый запускается каждую ночь и делает практически все...

  • Полное резервное копирование базы данных и журнала транзакций
  • проверка целостности, перестроение индекса, перерасчет статистики и т. д.(Я проверил все, кроме инкрементного резервного копирования)

Другой запускается каждые три часа и выполняет инкрементальное резервное копирование (я параноик и знаю, что это, вероятно, излишество).

Резервные копии сохраняются на диск, полные резервные копии отправляются в сеть SAN и хранятся в течение недели.

Как вы думаете, это разумный план?Какие-либо предложения?

РЕДАКТИРОВАТЬ:Это SQL-сервер 2005.БД составляет 5 ГБ, растет примерно на 1 ГБ в месяц.

Это было полезно?

Решение

Звучит неплохо.Я больше параноик.Я делаю два полных резервных копирования в день и ежечасно резервное копирование журнала транзакций.Зависит от размера базы данных или курса.Резервные копии выполняются непосредственно на диск, а затем каждую ночь копируются на ленту.

Вероятно, вам не придется выполнять задачи по обслуживанию каждый день.Я делаю это только по выходным, за исключением одной таблицы, которую мы переиндексируем каждый вечер.Опять же, это зависит от размера и активности базы данных.

Если у вас достаточно процессорного и дискового пространства, вы можете заархивировать резервные копии дисков, чтобы сэкономить место и ускорить перенос на ленту или в другое место.

Другие советы

Вам следует разговаривать со своими пользователями/клиентами/хранителями данных – как бы вы их ни называли.Им необходимо иметь четкое представление о том, сколько работы они могут потерять.Напишите соглашение об уровне обслуживания, если у вас его нет.Когда дело доходит до плохих новостей, вам не нужны сюрпризы.

Они также должны понимать, что восстановление требует времени.Вам необходимо спланировать план восстановления, чтобы обеспечить приемлемое время восстановления.Это может означать ежедневное полное резервное копирование, 4 дифференциальных резервных копирования и резервное копирование журналов каждые 5 минут.Это не сумасшествие и не параноидальность, как сказал Маркус Эриксон: все сводится к вашей информации и тому, какую долларовую ценность она придает вашей организации.

Я не думаю, что вы параноик, создавая резервные копии каждые 3 часа.По сути, ваш план резервного копирования должен определяться вашими требованиями к восстановлению.Как долго вы можете позволить себе простоять во время восстановления и сколько данных вы готовы потерять, прежде чем вы выйдете из строя.Что касается SQL Server, вы можете значительно сократить объем данных, которые вы готовы потерять, добавив резервные копии журналов транзакций в свой план резервного копирования.Многие люди делают это каждые несколько минут в зависимости от количества транзакций, проходящих через систему.Чтобы выполнить восстановление, вы просто восстанавливаете последнюю полную резервную копию, последнее приращение, а затем все резервные копии журнала транзакций, начиная с инкрементального.Это может обеспечить минимальную потерю данных, но применение всех резервных копий журнала транзакций может занять некоторое время.Я довольно регулярно вижу следующее:Полное резервное копирование - еженедельные инкрементные резервные копии - ночные резервные копии журнала - каждые несколько минут в зависимости от требований (может быть хорошо раз в час и т. Д.)

Не забудьте выполнить учения, во время которых вы на самом деле попытаетесь восстановить данные из созданных вами резервных копий (в тестовую систему).Это следует делать, возможно, раз в месяц.

Минимум, который я рекомендую своим клиентам, — это делать полную резервную копию базы данных каждую ночь, а затем резервную копию транзакций каждые 3 часа.Меня всегда удивляет, как много людей никогда не создают резервную копию.Это всегда плохие звонки.

На мой взгляд, лучший способ:

Делайте полную резервную копию базы данных каждые 12 часов.

BACKUP DATABASE database TO DISK = 'd:/full.bak'

дифференциальное резервное копирование каждые шесть часов, что в случае сбоя облегчает восстановление процесса

BACKUP DATABASE database TO DISK = 'd:/diff.bak' WITH DIFFERENTIAL

и, конечно же, резервные копии журналов транзакций, которые лучше делать каждый час.

BACKUP LOG database TO DISK = 'log.bak'

В случае сбоя процесс восстановления будет следующим:

  • Последняя полная резервная копия
  • Последняя дифференциальная резервная копия
  • Последний журнал транзакций

Следует признать, что лучше использовать модель полного восстановления, чтобы обеспечить восстановление на определенный момент времени.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top