Назад | Перейти на главную страницу

Каков наиболее эффективный способ резервного копирования каталога, полного файлов резервных копий большой базы данных?

Мы используем NetBackup здесь, в Stack Exchange, и я работаю над обновлением нашей политики резервного копирования, чтобы сделать ее более эффективной.

В настоящее время мы используем SQL 2008 R2 и подготовили планы обслуживания SQL для резервного копирования данных в файл .bak. После того, как этот файл записан, мы создаем резервную копию каталога, в котором хранятся файлы .bak.

Мы не используем агент SQL для NetBackup, поскольку мы используем файлы .bak не только для простого резервного копирования, но и для других целей.

Я думал о составлении графика ротации Weekly / Diff / Cume, но с учетом того факта, что в каталогах будут большие файлы, которые гарантированно будут обновляться каждый день, и учитывая, что наша система автоматически удаляет резервные копии, которые старше определенного количества дней , Я думаю, что стандартный сценарий "офисного файлового сервера", вероятно, менее эффективен, чем другие методы.

Есть ли «наиболее эффективный» способ справиться с этим?

У меня очень мало опыта работы с резервными копиями SQL Server, поэтому отнеситесь ко всему этому с некоторой долей скепсиса и исследуйте агенты SQL Server на предмет различных технологий резервного копирования (Bacula утверждает, что у него есть один), прежде чем попробовать мою недоработанную схему ниже.


Мое решение для резервного копирования базы данных очень специфично для PostgreSQL: я зеркалирую подчиненное устройство, затем, когда наступает время резервного копирования, я выключаю это подчиненное устройство, позволяю Bacula выполнить резервное копирование каталога БД и перезапускаю подчиненное устройство, чтобы оно могло догнать репликацию.
Это дает преимущество быстрого восстановления и справедливого компромисса в отношении размеров резервных копий (резервное копирование выполняется только для файлов резервного копирования таблиц, но процесс резервного копирования захватывает все таблица, а не только дельта).

Что-то подобное может сработать и в вашем случае. Для начала я бы предложил:

  1. Настроить подчиненный сервер
  2. Настроить машину на удаленном сайте с rsync демон для rsync в.
  3. Каждую ночь во время резервного копирования выключайте ведомое устройство и синхронизируйте файлы базы данных с удаленным сайтом, затем перезапускайте ведомое устройство и позволяйте ему догнать репликацию.

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