Проблемы, возникающие при работе c MySQL.

Вернуться в каталог

Как раскрутить сайт:

Каталог - это...
Поисковик - это...
Поисковики 1993г
Поисковики 1994г
Список каталогов
Каталоги для PR
Каталоги белые
Каталоги белые
Белые каталоги ссылок
Белые каталоги ссылок
Каталоги
Протокол HTTP 1.1
Сайты сателлиты
Yandex бан
Ошибки начинающих
Ошибки webмастера
Что Гугл знает?
О сайте из Google
robots.txt
Социалки
Расчет PageRank
Как раскрутить сайт
Причины игнора сайта
Фильтры Гугла
Хороший дизайн

Может пригодиться:


Залог хорошего сайта
Софт вебмастеру
Выбрать хостинг
Платформы хостинга
Виртуальный сервер
Продвижение сайта
Секреты раскрутки 1
Секреты раскрутки 2
Раскруточные мифы
Оптимизация под каталоги
Заработать на сайте
Размещение банеров
Защита сайта
Спам в поздравлениях
SEO продвижение
Раскрутка Дорвеями
Секреты Гугла
Ссылки google ТОП-10
Сниппеты
Ключевые слова
Редирект
Грязная линковка
SEO слэнг
Подробно о PR
Бан партнерки

Реклама:


О поисковых системах
Внутренние факторы
Внешние факторы
Индексация сайта
Фильтры
Различия поисковых
Semonitor
Сохранить позиции после редизайна
Секреты Гугла


  • Вернуться в каталог





  • Rambler's Top100

    Проблемы, возникающие при работе c MySQL.


    используя базу данных MySQL, надо принять меры для устранения последствий ошибок и сбоев в работе. B данной главе речь пойдет o создании резервных копий и восстановлении базы данных. Мы также рассмотрим проблемы, которые могут возникнуть при работе c базой данных MySQL.



    Резервное копирование

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



    Полные peзервные копии

    mysgldump --ивег=пользователь --host=узел \
    --port=порт --password=naponь \
    имя_базы имя_файла.sql

    Kоманда mysgldump выводит содержимое базы данных в виде набора SQL-файлов. Каждая таблица преобразуется в выражение CREATE TABLE, a строки конвертируются в операторы INSERT. По умолчанию команды SQL выводятся на экран, поэтому для создания резервной копии нaдо перенаправить вывод в файл. Имя базы данных для резервного копирования определяется на основании параметров соединения. При необходимости можно задать имена таблиц. Если вы не сделаете этого, будет скопирована вся база данных. Приведенная ниже комaнда задает копирование только таблиц book и person.

    mysgldump --user=zak --password=phrasebook \
    sampdb book person > sampdb.sgl

    B данном примере оппии host и port не указаны, поэтому в результате выполнения команды будет предпринята попытка соединения c сервером MySQL, который выполняется на локальной машине и использует порт по умолчанию. Ecли вы хотите указать для mysgldump несколько баз дaнных, нaдо использовать опцию --databases.

    Все последующие имена будут интерпретированы кaк имена баз данных. Нaпример, следующая команда копирует две базы данных, dbl и db2:

    mysgldump --user=zak --password=phrasebook \
    --databases db1 db2 > dump.sgl

    для того чтобы посредством одной операции скопировать все базы данных на сервере MysQL, надо использовать опцию --all-databases.



    Выполнение инкрементного копирования

    log-bin

    Процедура полного резервного копирования требует большого количества ресурсов. Каждая строка каждой таблицы должна быть передана программе mysgldump, a затем записана в файл. Kопирование на сервере, обслуживающем пользователей, может привести к существенному снижению его производительности.

    Альтернативным решением является инкрементное копирование, основанное на двоичном протоколировании, реализованном в MySQL. Для активизации двоичного протоколирования надо включить в файл mу.cnf опцию log-bin и перезагрузить сервер MySQL. Тот же результат можно получить, указав при запуске mуsg1d опцию --log-bin.

    Данные, сгенерированные в результате двоичного протоколирования, записываются в рабочий каталог пользователя mysgl, обычно /var/1ib/mysgl. По умолчанию принимается имя файла имя_ узла-bin.ХХХ. Здесь имеется в виду узел, на котором выполняется сервер, a буквами ХХХ обозначается последовательный номер. При каждом перезапуске сервера MySQL либо при выполнении команды FLUEН LOGE создается новый двоичный протокол.

    Двоичный протокол содержит выполненные выражения SQL, которые предполагают обновление данных. Записи подлежат команды UPDATE, INSERT и DELETE, независимо от того, привели ли они к реaльному изменению данных. Так, например, команда UPDATE, в которой выражению WHERE не соответствует ни одна строка, будет зарегистрирована. Данный уровень протоколирования позволяет привести базу, полyченную путем восстановления на основе полной резервной копии, к текущему состоянию.

    Для успешного восстановления двоичные про­токолы должны начинаться c транзакций, которые имели место непосредственно после создания пол­ной резервной копии. Для того чтобы синхронизировать двоичный протокол c резервной копией, надо использовать для mysgldump опцию --flush-logs. Она приводит к выполнению команды FLUSH LOGE сразу после начaла копирования. Дальнейшая работа c базой данных будет зафиксирована в следующем двоичном протоколе.

    Нетрудно догадаться, что запись двоичного протокола влияет на быстродействие сервера, но преимущества многократно окупают снижение производительности. Согласно сведениям, приведенным в документации на MySQL, двоичное резервирование снижает быстродействие приблизительно на 1%.



    Восстановление из резервной копии

    Теперь, когда вы имеете представление o стратегии резервного копирования, рассмотрим, как восстанавливать базу дaнных в слyчае потери информации.



    Восстановление данных из полной резервной копии

    mysgl --user=пользователь --host=yзeл \
    --рогt=порт --password=napoль \
    имя_базы < имя_файла.sq1

    Поскольку выходными данными mysgldump является набор SQL-команд, восстановить базy можно c помощью одной операции, передав содержимое файла c резервной копией программе mysgl. Если вы используете при восстановлении то же имя, которое база данных имела при создании резервной копии, существующие таблицы будет перезаписаны. B состав выходных данных mу sql dumр для каждой копируемой таблицы включается выражение DRОР TABLE.

    Если файл c резервной копией создан для одной базы данных, он не содержит выражения CREATE DATABASE, поэтому вы можете восстановить базу c другим именем, указав его при запуске mysgl. Если при запуске mysgldump была указана опция --all-databases или --databases, для каждой базы данных в состав резервной копии автоматически включается команда CREATE DATABASE.



    Спонсор сайта:




    Пер. с англ. - М.: ООО "И.Д.Вильямс", 2006.

    Основы MySQL:

    Введение
    Схема MySQL
    Управление базами
    Создание баз
    Создание таблиц
    Создание столбцов
    Идентификаторы
    Хранение данных
    Включение даты
    Импорт данных
    Включение данных
    Простые запросы
    Устранение повторов
    Обработка значений
    Значения NULL
    Обработка данных
    Оновление значений
    Безопасность
    Удаление записей

    Спонсор сайта:


    Установка паролей
    Установка привилегий
    Клиентская часть
    Параметры соединения
    MySQL АРI
    Запросы АРI
    АРI для Perl
    РНР АРI
    Расширенные запросы
    Ключевое слово JOIN
    Вложенные запросы
    Выбор результатов
    Проблемы MySQL
    Восстановление базы
    Частые ошибки
    Кол-во соединений
    Подготовка к работе
    В курс дела
    Имена столбцов

    Реклама:


    Внесение данных
    Внесение данных 2
    Особенности таблиц
    Еще о таблицах

    Вернуться в каталог