Чтение онлайн

на главную - закладки

Жанры

MySQL 5.0. Библиотека программиста

Гольцман Виктор

Шрифт:

Чтобы включить ведение двоичных журналов, запустим сервер MySQL с параметром –log-bin. Это можно сделать одним из следующих способов.

• Если вы запускаете сервер вручную из командной строки (об этом шла речь в подразделе «Запуск и остановка сервера MySQL из командной строки» главы 1), укажите параметр –log-bin в команде запуска сервера:

mysqld-nt –log-bin

• Если сервер MySQL сконфигурирован как сервис Windows и запускается автоматически, или с помощью панели управления, или с помощью MySQL Administrator (см. подразделы «Запуск и остановка сервера MySQL с помощью MySQL Administrator» и «Запуск и остановка сервера MySQL с панели управления» главы 1), откройте конфигурационный файл my.ini, находящийся в папке, где установлена программа MySQL, и добавьте параметр log-bin в раздел [mysqld] (рис. 5.9). Сохраните файл my.ini. Ведение журналов начнется после перезапуска сервера.

Рис. 5.9. Настройка
ведения двоичных журналов

• Вместо того чтобы редактировать файл my.ini вручную, вы можете запустить MySQL Administrator, в левой области главного окна щелкнуть пункт Startup Variables (Параметры запуска), открыть вкладку Log files (Журналы) (рис. 5.10) и установить флажок Binary Logfile (Двоичный журнал), а затем нажать кнопку Apply Changes (Сохранить изменения). Чтобы сервер MySQL начал вести журналы, его необходимо перезапустить.

Рис. 5.10. Настройка ведения двоичных журналов в MySQL Administrator

В процессе работы сервера в папке data корневой папки MySQL будут создаваться двоичные журналы – файлы с именами вида <Имя xocTa>-bin.xxxxxx, где xxxxxx – порядковый номер журнала. Очередной файл журнала создается в следующих случаях:

• при достижении предельного размера предыдущего файла;

• при запуске (перезапуске) сервера;

• при принудительном «сбросе» журналов.

«Сброс» журналов необходим при выполнении полного резервного копирования, чтобы изменения с момента резервирования отражались в новом файле (старые файлы журналов при этом становятся не нужны). Кроме того, принудительный «сброс» осуществляется перед промежуточным резервным копированием: сервер начнет протоколировать изменения в новом файле, а предыдущие файлы вы скопируете на резервный носитель.

Для «сброса» журналов выполните SQL-команду FLUSH LOGS; либо запустите утилиту mysqladmin с параметром flush-logs, выполнив в окне командной строки Windows команду

mysqladmin -u <Имя пользователя> -p flush-logs

После появления приглашения Enter password (Введите пароль) введите пароль пользователя.

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

1. Откройте панель управления Windows и дважды щелкните на значке Назначенные задания.

2. В появившемся окне Назначенные задания щелкните правой кнопкой мыши и в контекстном меню выберите последовательно пункты Создать → Назначенное задание (рис. 5.11). Введите название задания, например MySQL Incremental Backup.

Рис. 5.11. Создание задания

3. Дважды щелкните на названии задания. В окне настройки задания на вкладке Задание (рис. 5.12) в поле Выполнить введите команду

mysqladmin -u <Имя пользователя>

– p<Пароль пользователя> flush-logs

Рис. 5.12. Настройка действия, выполняемого по расписанию

Пользователь, от имени которого выполняется «сброс» журналов, должен обладать привилегией RELOAD. Обратите внимание, что пароль пользователя должен следовать сразу после ключа -p без пробела. Учитывая риск разглашения пароля, рекомендуем выполнять «сброс» журналов не от имени пользователя root, а от имени специально зарегистрированного пользователя, не имеющего никаких привилегий, кроме RELOAD.

4. Нажмите кнопку Задать пароль. В окне Установка пароля дважды введите ваш пароль в Windows (не пароль в MySQL!). Нажмите кнопку OK.

5. Перейдите на вкладку Расписание (рис. 5.13) и укажите время, в которое будет ежедневно выполняться «сброс» журналов.

Рис. 5.13. Настройка расписания

6. Если промежуточное резервное копирование необходимо выполнять несколько раз в течение дня, нажмите кнопку Дополнительно. В окне Дополнительные параметры расписания установите флажок Повторять задание и настройте периодичность выполнения задания (рис. 5.14). Нажмите кнопку OK.

Рис. 5.14. Дополнительная настройка расписания

7. В окне настройки задания нажмите кнопку OK

для сохранения задания.

8. В окне Назначенные задания протестируйте созданное задание. Для этого щелкните на названии задания правой кнопкой мыши и в контекстном меню выберите пункт Выполнить. В папке data корневой папки MySQL должен появиться новый двоичный журнал.

Следующий этап промежуточного резервирования – копирование двоичных журналов на резервный носитель информации. Для решения этой задачи существует множество утилит, как платных, так и бесплатных, которые позволяют по расписанию создавать резервные копии файлов на любом носителе – CD, DVD, USB, удаленном FTP-сервере и др.

В частности, для копирования файлов на другой компьютер в локальной сети вы можете воспользоваться утилитой xcopy, входящей в состав Windows. Запуск этой утилиты по расписанию настраивается аналогично «сбросу» журналов. В качестве выполняемой команды введите

xcopy «<Корневая папка MySQL>/data» «<Папка на резервном носителе>» /c/d/y

...

Примечание

Параметр /c утилиты xcopy указывает, что возникающие при копировании ошибки следует игнорировать. Параметр /d означает, что файл в результирующей папке будет заменен файлом из исходной папки только в том случае, если исходный файл более новый. Параметр /y позволяет заменять файлы в результирующей папке, не запрашивая дополнительного подтверждения у пользователя.

Расписание для запуска утилиты xcopy целесообразно сделать смещенным на несколько минут относительно расписания «сброса» журналов.

Итак, вы узнали, как включить ведение двоичных журналов и настроить промежуточное резервное копирование. В следующем подразделе мы рассмотрим процедуру полного резервного копирования.

Полное резервирование

Для полного резервного копирования баз данных предназначена утилита mysqldump. Чтобы запустить эту утилиту, откройте окно командной строки Windows и выполните команду

mysqldump –u <Имя пользователя> -p

[Опциональные параметры]

<Копируемые базы данных и таблицы>

> <Путь и имя результирующего файла>

После появления приглашения Enter password (Введите пароль) введите пароль пользователя.

Выбор опциональных параметров утилиты зависит от типа резервируемых таблиц.

• Для резервного копирования таблиц с типом InnoDB необходимо указать параметр –single-transaction. В процессе резервного копирования пользователи смогут продолжать работу с данными, в том числе вносить изменения, однако эти изменения будут незаметны для программы mysqldump. Таким образом, вы получите согласованную копию баз данных, в которой не будет нарушений целостности данных.

• При резервном копировании таблиц с типом MyISAM необходимо запретить пользователям изменение данных во избежание их рассогласованности. Для этого необходимо указать параметр –lock-all-tables или –lock-tables. Параметр –lock-all-tables устанавливает блокировку для всех таблиц всех баз данных в течение всего времени резервного копирования. Параметр –lock-tables блокирует таблицы той базы данных, которая в данный момент копируется. В последнем случае уменьшается время недоступности каждой таблицы для пользователей, однако отсутствует гарантия непротиворечивости данных, находящихся в разных базах.

Параметры –single-transaction, –lock-all-tables и-lock-tables являются взаимоисключающими: в команде резервного копирования вы можете указать только один из них. Кроме того, поскольку наша стратегия резервного копирования использует двоичные журналы, необходимо указать параметр –flush-logs для «сброса» журналов.

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

• –all-databases

Необходимо копирование всех баз данных с сервера MySQL (кроме виртуальной базы данных INFORMATION_SCHEMA).

• –databases <Имя базы данных 1> <Имя базы данных 2>… Необходимо скопировать перечисленные базы данных.

• <Имя базы данных> <Имя таблицы 1> <Имя таблицы 2>… Необходимо скопировать перечисленные таблицы указанной базы данных.

Например, команда

mysqldump –u root –p –single-transaction –flush-logs –databases SalesDept FinanceDept > “C:\data\full_backup.sql”

выполняет резервное копирование баз данных SalesDept (Отдел продаж) и FinanceDept (Финансовый отдел) в файл full_backup.sql, находящийся в папке C: \data, а команда

mysqldump –u root –p –lock-tables –flush-logs mysql user db tables_priv columns_priv > «C:\data\users.sql»

выполняет резервное копирование таблиц user, db, tables_priv и columns_priv системной базы данных mysql в файл users.sql, находящийся в папке C: \data. Таблицы в базе данных mysql имеют тип MyISAM, поэтому при резервировании мы указали параметр –lock-tables.

Поделиться:
Популярные книги

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер

Бывшие. Война в академии магии

Берг Александра
2. Измены
Любовные романы:
любовно-фантастические романы
7.00
рейтинг книги
Бывшие. Война в академии магии

Идеальный мир для Лекаря 7

Сапфир Олег
7. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 7

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Хозяин Теней

Петров Максим Николаевич
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Хозяин Теней

Опасная любовь командора

Муратова Ульяна
1. Проклятые луной
Фантастика:
фэнтези
5.00
рейтинг книги
Опасная любовь командора

Друд, или Человек в черном

Симмонс Дэн
Фантастика:
социально-философская фантастика
6.80
рейтинг книги
Друд, или Человек в черном

Волхв

Земляной Андрей Борисович
3. Волшебник
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Волхв

Мастер Разума VII

Кронос Александр
7. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума VII

Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Агеева Елена А.
Документальная литература:
публицистика
5.40
рейтинг книги
Всемирная энциклопедия афоризмов. Собрание мудрости всех народов и времен

Сумеречный Стрелок 5

Карелин Сергей Витальевич
5. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 5

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле