Статьи

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

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

В этой короткой статье мы рассмотрим, как выполнить резервное копирование некоторых распространенных баз данных: MySQL, PostGreSQL, Microsoft SQL Server и Microsoft Access.

Кто должен делать резервные копии

Прежде чем начать, вам необходимо проанализировать ситуацию, чтобы решить, как часто вы будете выполнять резервное копирование базы данных. Например, если вы запускаете личный сайт типа «дневник / блог», который обновляется каждую неделю или около того, и у вас есть гостевая книга с комментариями, которые вы добавляете так часто, скорее всего, вам нужно будет делать обновления только раз в неделю или две, в зависимости от сколько «важной» информации у вас есть. С другой стороны, если вы запускаете форум с большим трафиком на различные темы или используете сайт размером с SitePoint (более 300 статей, форум vBulletin с сотнями постов в день, изобилие шаблонов и многое другое), тогда вам понадобится проверять резервное копирование вашего сайта и базы данных каждые несколько дней в зависимости от важности информации, которую вы предоставляете.

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

Как часто следует делать резервное копирование

Например, SitePoint каждый день в определенное время выполняет резервное копирование своего сайта на локальный компьютер в Австралии, а также на сам сервер (но в немного другом месте). Аппаратное обеспечение, такое как диски RAID-5, резервные копии на магнитной ленте и зеркальные устройства, также помогает в создании резервных копий.

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

Примечание: всякий раз, когда я говорю «область резервного копирования» в любом из руководств, это относится к месту, где будут храниться ваши резервные копии — будь то ваш собственный жесткий диск, резервные копии на магнитной ленте на вашем сервере или другой сервер в другом месте в сети.

MySQL

MySQL — популярная база данных для использования на машинах Unix и Linux; версия для Windows также недавно стала открытой (с MySQL по GPL). В сочетании с PHP они создают мощную платформу для написания интерактивных веб-приложений.

Существует три основных способа резервного копирования базы данных MySQL в Unix / Linux (пользователи Windows должны найти команды достаточно схожими):

  1. Используйте команду mysqldump.
    Если у вас есть доступ Telnet / SSH к вашему серверу MySQL, войдите в систему и выполните следующую команду для каждой базы данных, для которой вы хотите создать резервную копию:
    shell> mysqldump -u user -ppassword --opt -full database_name > backupfile.sql

    Затем переместите полученный файл (ы) в нужные области резервного копирования. Если вам требуется дополнительная информация о команде mysqldump, просто проверьте этот URL: www.mysql.com/documentation/mysql

  2. Скопируйте все соответствующие файлы таблиц.
    Если сервер ничего не обновляет (или вы намеренно убили mysqld для этой цели), вы можете скопировать все файлы со следующими расширениями в каталог данных MySQL:

    * .frm
    * .MYD
    *.мое я

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

    СОВЕТ: после завершения резервного копирования перезапустите MySQL с ключом –log-update. Это позволит вам отслеживать все изменения, сделанные в таблицах MySQL с момента вашего последнего «дампа».

    Чтобы восстановить ваши дампы, вы должны либо восстановить существующую базу данных, либо создать новую базу данных, используя

     shell> mysqladmin create database_name

    затем выполните следующую команду:

     shell> mysql -u user -ppassword database_name < backup-file.sql
  3. Если у вас нет доступа к Telnet / SSH, и вы не можете выполнять резервное копирование, используя методы, описанные выше, вы должны спросить вашего хоста, можно ли ему сделать резервную копию для вас и поместить резервные копии в отдельный каталог так что вы можете легко отправлять резервные копии по FTP в выбранные области резервного копирования. В противном случае, если у вас есть доступ к phpMyAdmin, вы можете использовать следующую процедуру:
    • Откройте phpMyAdmin и выберите базу данных, которую вы хотите «сбросить» (резервная копия).
    • Прокрутите вниз, и вы увидите маркированную точку с надписью: «Просмотр дампа (схемы) базы данных» вместе с некоторыми радио и флажками. Выберите «Структура и данные», затем нажмите «Добавить удаленную таблицу» и «Отправить» и нажмите «Перейти». Это сохранит «дамп» на ваш жесткий диск.

    Чтобы восстановить дамп с помощью phpMyAdmin, просто вставьте файл в правильное место, как только вы выбрали правильную базу данных, выполнив следующие действия:

    • Выберите базу данных, в которую вы будете вставлять свои данные, или создайте новую базу данных.
    • Вставьте соответствующие запросы SQL, которые у вас уже есть, или просто вставьте имя файла .sql, который есть на вашем жестком диске, в текстовое поле под заголовком «Расположение текстового файла» и начните работу!

    Совет: используйте задание crontab для периодического планирования резервного копирования.

PostgreSQL

Хотя PostgreSQL не так широко известен, это мощная «объектно-реляционная» система баз данных, поддерживающая множество мощных функций, которых нет в MySQL. Опять же, PHP очень хорошо сочетается с PostgreSQL.

Резервное копирование базы данных PostgreSQL также довольно просто. В Telnet / SSH введите следующую команду pg_dump:

 shell> pg_dump dbname > dbname.pgdump

Вы можете восстановить свою базу данных из дампа с помощью следующей команды:

 shell> cat dbname.pgdump | psql dbname

Конечно, убедитесь, что вы заменили ‘dbname’ в вышеприведенных командах соответствующими именами.

Если у вас большая база данных PostgreSQL, вам нужно использовать gzip или split для уменьшения результирующего файла до более управляемого размера файла.
gzip: введите следующую команду:

 shell> pg_dump dbname | gzip > filename.dump.gz

и перезагрузить в новую базу данных …

 shell> createdb dbname
shell> gunzip -c filename.dump.gz | psql dbname

или
shell> cat filename.dump.gz | gunzip | psql dbname

split: введите следующую команду:

 shell> pg_dump dbname | split -b 1m - filename.dump.

и перезагрузить в новую базу данных …

 shell> createdb dbname
shell> cat filename.dump.* | pgsql dbname

Совет: используйте задание crontab для периодического планирования резервного копирования.

Доступ

Доступ широко используется многими компаниями, хотя его первоначальная цель заключалась не в веб-базе данных. Access способен обрабатывать 30 одновременных пользователей в сети и достаточно хорошо взаимодействует с ASP.

Тем не менее, резервное копирование вашей базы данных Access нелепо легко. Просто перенесите базу данных Access с вашего сайта в резервную область и загрузите ее снова, когда вам это нужно.

SQL Server

SQL-решение для баз данных среднего бизнеса (хотя оно может подойти как малому, так и крупному бизнесу), SQL-сервер — мощное приложение, разработанное для опытных пользователей. Вы можете использовать интерфейс «укажи и щелкни», чтобы управлять своей базой данных через Enterprise Manager, или разбираться с транзакциями и подвыборками SQL. ASP и SQL Server предлагают эффективную комбинацию, особенно для веб-приложений и сайтов, требующих возможностей электронной коммерции.

Для резервного копирования базы данных вы должны войти в систему как администратор или пользователь с разрешениями SQL Server и выполнять резервное копирование через предоставленный интерфейс. Если у вас нет доступа к вашему серверу, обратитесь к системному администратору. Есть несколько способов сделать резервные копии на SQL Server; к сожалению, в этой статье нет места для их обсуждения, поэтому я позволю вам прочитать это прямо изо рта лошади; проверить эту статью от Microsoft TechNet

Вывод

Мы только что рассмотрели, как создавать резервные копии ваших баз данных с помощью некоторых распространенных систем баз данных, и предоставили несколько полезных советов по различным смежным вопросам. Независимо от того, какой тип сайта вы используете для работы с базами данных — будь то ваш личный дневник, новостной портал в стиле Slashdot или приложение электронной коммерции 24/7 — вы должны реализовать какой-то механизм резервного копирования. Если катастрофа обрушится на ваш сайт в той или иной форме, вы по достоинству оцените сеть безопасности.