Резервное копирование базы данных


2

У меня есть 10 ГБ СУБД (SQL Server).Я хотел бы поддерживать это как можно чаще, но, похоже, мне понадобится очень много места, чтобы это происходило порядка нескольких раз в день.

Как часто целесообразно сделать резервную копию БД такого размера?Как обычно хранятся резервные копии?

Я посмотрел на Amazon S3, и мне интересно, как часто люди используют такой сервис для создания резервных копий БД?

  0

Я согласен с Торо, однако, поскольку вы сказали, что вам нужно как можно больше резервных копий, возможно, вы захотите чаще делать инкрементные/дифференциальные резервные копии, например каждые 2-6 часов, в зависимости от ваших потребностей. 14 сен. 112011-09-14 15:22:23

1

С какой версией SQL вы работаете?Что значит «как можно чаще»?почему ты хочешь сделать это?

Вам не нужно делать полные резервные копии.Вы можете делать раз в неделю полный и дифференциал каждую ночь.С t-sql или SSMS вы можете автоматически удалять резервные копии через n дней, тем самым сохраняя их в чистоте и порядке.

Как можно чаще?Почему бы не делать резервные копии журнала транзакций каждые 5 минут, а затем удалять их каждые 5 дней?

:: Я добавил еще вопросы ::


4

Я думаю, что главный вопрос не в том, как часто другие люди создают резервные копии своих баз данных, а в том, какой уровень убытков допустит ваш бизнес.Если ваш сервер умрет, будут ли они счастливы вернуться к файлу резервной копии 24 часа назад или понадобится час назад?

Все наши производственные базы данных выполняют полное резервное копирование один раз в день, а затем каждый час выполняют резервное копирование журнала транзакций.В случае полного отказа наш худший сценарий - мы теряем час данных (хотя на самом деле мы используем зеркалирование базы данных, чтобы защитить себя даже от этого).Резервные копии журналов транзакций также позволяют выполнять восстановление на определенный момент времени: http://msdn.microsoft.com/en-us/library/ms179451.aspx

Другим фактором является модель восстановления базы данных - если вы находитесь в режиме полного восстановления, вам понадобятся резервные копии журнала транзакций, чтобы журнал транзакций стал неуправляемым.Напротив, если вы используете простое восстановление, резервное копирование журнала транзакций не вариант.

Это достойная отправная точка: http://msdn.microsoft.com/en-us/library/ms191239.aspx

Надеюсь, это поможет...


1

Допустим, у вас общий деловой сценарий с занятым временем: с 9 утра до 5 вечера с понедельника по пятницу.Тогда я бы предложил: полное резервное копирование в воскресенье вечером.Разностные резервные копии в 8 часов утра, 6 часов вечера и 1 час ночи (чтобы сократить время восстановления).Регистрируйте резервные копии каждый час или в зависимости от того, что требует ваш бизнес.

В зависимости от срока хранения у вас должно быть задание автоматической очистки для удаления старых файлов резервных копий.

Вы должны хранить ваши резервные копии на резервном диске (зеркальном отображении).

Если вы используете Amazon S3, вам придется платить за пропускную способность, хранение и запросы на получение/сдачу.Тогда есть дальнейшее осложнение, если ваша БД хранит конфиденциальные данные.Вместо этого вы можете получить внешний диск или устройство NAS и хранить на них свои резервные копии.Цена не должна быть проблемой, поскольку диск дешевый.


5

Похоже, вы не понимаете, как работают резервные копии в SQL Server.В SQL Server есть три разных типа резервного копирования.

FULL - полное резервное копирование базы данных создает дамп всей базы данных и журнала активных транзакций в один (или чередующийся, но пока что игнорируем эту функцию) файл на диске.

DIFFERENTIAL - дифференциальное резервное копирование базы данных создает резервные копии всех данных, которые были изменены с момента последнего полного резервного копирования, в файл резервной копии.Для восстановления из дифференциальной резервной копии вы ДОЛЖНЫ иметь полную резервную копию, которая была сделана до создания дифференциальной резервной копии.

LOG - Журнал резервного копирования только те данные, которые в настоящее время находятся в журнале транзакций.Резервные копии журналов дают вам возможность восстановить базу данных до определенного момента времени (например, если кто-то отбросил таблицу, вы можете восстановить ее до точки, просто восстановите таблицу и отбросьте все данные из этой таблицы).Для резервного копирования журналов требуется, чтобы ваша база данных находилась в режиме восстановления FULL или BULK_LOGGED.Чтобы восстановить резервные копии журналов, необходимо создать самую последнюю полную резервную копию перед восстановлением резервной копии журнала, если необходимо, дифференциальную резервную копию, сделанную между полной резервной копией и резервной копией журнала, и все резервные копии журналов между полной или дифференциальной резервной копией и последний файл журнала, который вы хотите восстановить.

Из того, что вы описали, звучит так, что вам нужно потерять как можно меньше данных.Вам нужно будет изменить режим восстановления на FULL или BULK_LOGGED (большинство выбирает FULL), а затем каждые несколько минут настраивать ежедневные полные резервные копии и резервные копии журнала транзакций.Частота запуска резервного копирования журнала будет зависеть от объема данных, которые вы можете позволить себе потерять.Бизнес должен быть тот, кто устанавливает этот номер, а не вы.Нередко запускать резервные копии журналов каждые 10-15 минут в зависимости от требований.

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

Вы захотите выполнить резервное копирование баз данных на сервер в другой зоне доступности EC2, чтобы в случае повторения сбоя Amazon в начале этого года ваши резервные данные оставались в безопасности.

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