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

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

Жанры

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
рейтинг книги
Печать Пожирателя

Привет из Загса. Милый, ты не потерял кольцо?

Лисавчук Елена
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Привет из Загса. Милый, ты не потерял кольцо?

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Нечто чудесное

Макнот Джудит
2. Романтическая серия
Любовные романы:
исторические любовные романы
9.43
рейтинг книги
Нечто чудесное

Клан

Русич Антон
2. Долгий путь домой
Фантастика:
боевая фантастика
космическая фантастика
5.60
рейтинг книги
Клан

Имя нам Легион. Том 3

Дорничев Дмитрий
3. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 3

Запасная дочь

Зика Натаэль
Фантастика:
фэнтези
6.40
рейтинг книги
Запасная дочь

Убивать чтобы жить 7

Бор Жорж
7. УЧЖ
Фантастика:
героическая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 7

У врага за пазухой

Коваленко Марья Сергеевна
5. Оголенные чувства
Любовные романы:
остросюжетные любовные романы
эро литература
5.00
рейтинг книги
У врага за пазухой

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

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

Генерал Скала и ученица

Суббота Светлана
2. Генерал Скала и Лидия
Любовные романы:
любовно-фантастические романы
6.30
рейтинг книги
Генерал Скала и ученица

Оцифрованный. Том 1

Дорничев Дмитрий
1. Линкор Михаил
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Оцифрованный. Том 1

Его маленькая большая женщина

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.78
рейтинг книги
Его маленькая большая женщина

Хуррит

Рави Ивар
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Хуррит