Як робити резервні копії сайту

Що і як копіювати

Відповідь на це питання залежить від організації сайту. Всі сайти можна умовно розділити на наступні типи.

1. Статичні сайти. Це сайти, які являють собою набір статичних html-сторінок. Сторінки можуть включати в себе і невеликі скрипти, скажімо, на php, ssi-вставки і т.п. але для нас важливо, що інформація зберігається безпосередньо на цих сторінках або в файлах, що підключаються за допомогою функції include (для php) або подібними способами. Оновлення інформації на таких сайтах проводиться тільки спеціально займаються цим людьми, найчастіше - особисто адміністратором сайту.

Спосіб копіювання залежить від організації даних на сайті. За способом організації даних динамічні сайти можна розділити на:
2а: сайти, що зберігають дані в файлах. Файли даних таких сайтів розташовуються, як правило, в одному з підкаталогів того ж каталогу, де знаходиться движок сайту;
2б: сайти, що зберігають дані в базі даних. Як правило, база даних розташовується окремо від движка сайту, найчастіше на іншому комп'ютері.

Для сайтів, які працюють з базою даних, найраціональніший спосіб резервного копіювання - створення дампа БД. Дамп бази даних - це спеціальний файл, що містить всю інформацію БД (не тільки власне дані, а й структуру таблиць, індексів, тригери і процедури, всі інші об'єкти БД) у вигляді SQL-запитів. Утиліти, що створюють дамп бази, входять до складу всіх БД (мені, у всякому разі, винятків не зустрічалося. А баз я на своєму віку бачив чимало).

Забезпечення цілісності даних

Як забезпечити, щоб резервна копія містила несуперечливі дані? Підхід тут єдиний: треба забезпечити, щоб інформація була зафіксована на момент початку процедури копіювання і в її ході не змінювалася, принаймні "з точки зору" програми, що виробляє бекап. А от реалізація цього підходу дуже сильно залежать від використовуваних бази даних і движка сайту. Аби не заглиблюватися в подробиці, приведу лише кілька прикладів.

В MySQL є утиліта mysqldump, яка також автоматично забезпечує коректність дампа, але тільки для транзакційних таблиць (InnoDB). Якщо ж ваша MySQL-база побудована на таблицях типу MyISAM (а більшість веб-додатків використовують саме їх), то перед запуском процедури копіювання (або безпосередньо при запуску mysqldump за допомогою відповідних ключів, --lock-all-tables або --lock- tables) треба зробити явну блокування таблиць, тобто заборонити користувачам щось в них записувати.

коли копіювати

Про періодичність резервного копіювання вже говорилося вище, тут - коротке резюме:

  • статичні сайти, движки сайтів, дані рідко оновлюваних сайтів - після кожного оновлення;
  • дані часто оновлюваних сайтів - 1 раз на добу; можна і частіше, але це виправдано лише в особливих випадках.

Для копіювання краще вибирати час, коли ваш сайт найменше завантажений, коли на ньому мінімальне число користувачів. На більшості сайтів таке спостерігається пізно вночі, в районі 3-4 годин (за московським часом, якщо говорити про Рунет). Не забувайте, що процес копіювання досить ресурсномісткий і в багатьох випадках вимагає блокування роботи користувачів.

Де зберігати резервні копії

Небажано зберігати резервні копії в тому ж приміщенні, в якому знаходиться сервер. І сам сайт, і резервна копія буде втрачено в разі якогось лиха, типу пожежі або затоплення.

Проблеми можуть виникнути і в тому випадку, якщо резервні копії зберігаються на жорсткому диску комп'ютера, пов'язаного з сервером по локальній мережі. Якщо вірус або хакер зможе проникнути в вашу локальну мережу, то подорожувати всередині неї йому в переважній більшості випадків буде не так вже й складно.

Отже: зберігати резервні копії треба на змінному носії (CD, флешка) або на жорсткому диску комп'ютера, не пов'язаного з сервером по локальній мережі (а краще і там, і там). Перебувати ці носії (комп'ютер) повинні в іншій будівлі, а не в тому ж, в якому знаходиться сервер, і в надійно захищеному місці (сейф / замки / решітки на вікнах / сигналізація / охорона.).

Скільки часу зберігати копії.

і скільки їх потрібно робити? У більшості випадків буває досить зберігати 2 копії: останній і передостанній, але для підстраховки краще все ж зберігати від 3 до 7 останніх копій. Кожну копію бажано мати в 2 примірниках, на різних носіях, наприклад на жорсткому диску і на CD, і зберігати їх в різних приміщеннях. Вартість місця на носіях зараз незрівнянно нижче, ніж витрати на відновлення даних при їх втраті.

перевіряйте копії

Хто повинен копіювати

Схожі статті