П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 176178 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 73006 раз(а).

Учебник HTML.
Просмотров 72702 раз(а).

Руководство по PHP5.
Просмотров 43463 раз(а).

Хостинг через призму DNS.
Просмотров 50031 раз(а).

Подборка текстов стандартных документов.
Просмотров 43693 раз(а).

Учебник PHP - Самоучитель
Просмотров 50009 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 50375 раз(а).

Внешние атаки...
Просмотров 40781 раз(а).

Учебник PHP.
Просмотров 35900 раз(а).

SSI в примерах.
Просмотров 26979 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Глава 4. Администрирование баз данных
Пред. След.

4.9. Файлы журналов MySQL
4.9.3. Журнал обновлений (update)

Обратите внимание: журнал обновлений (update) заменен бинарным журналом (binary) (see Раздел 4.9.4, «Бинарный журнал обновлений». С этим журналом можно производить те же операции, что и с журналом обновлений.

При запуске с ключом --log-update[=file_name] mysqld создает журнал, в который заносятся все команды SQL, обновляющие данные. Если имя файла не задано, по умолчанию ему присваивается имя хоста. Если файлу присвоено имя, не содержащее пути доступа к нему, этот файл сохраняется в каталоге с данными. Если у имени file_name нет расширения, mysqld даст файлу примерно такое имя: file_name.###, где ### - номер, увеличивающийся при каждом выполнении команд mysqladmin refresh, mysqladmin flush-logs, FLUSH LOGS или при перезапуске сервера.

Обратите внимание: чтобы вышеописанная схема могла работать, нельзя самостоятельно создавать файлы с тем же именем, что и у журнала обновлений, а также с некоторыми расширениями, которые могут быть восприняты как номер, в каталоге, использующемся для хранения этого журнала!

При запуске с ключами --log или -l mysqld создает общий журнал в файле с именем hostname.log, причем перезапуски и обновления не приводят к созданию нового файла журнала (хотя существующий при таких операциях закрывается и затем открывается вновь). В таком случае скопировать его (в Unix) можно так:

mv hostname.log hostname-old.log
mysqladmin flush-logs
cp hostname-old.log to-backup-directory
rm hostname-old.log

Журнал обновлений работает избирательно - в него попадают только те команды, которые действительно обновляют данные. Команда UPDATE или DELETE, выражение WHERE которой не находит совпадающих строк, в журнал не заносится - как и команды UPDATE, присваивающие столбцам те же значения, которые у них были до "обновления".

Запись в журнал осуществляется сразу по завершении работы запроса, но до того, как будут сняты блокировки. Таким образом обеспечивается уверенность в том, что журнал ведется именно в порядке выполнения запросов.

При желании обновить базу в соответствии с данными журналов обновлений можно воспользоваться следующей командой (при условии, что имена файлов журналов соответствуют форме file_name.###):

shell> ls -1 -t -r file_name.[0-9]* | xargs cat | mysql

ls расставляет все файлы журналов в правильном порядке.

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


Назад Начало Главы Начало Раздела Вперед

Пред. Глава След. Глава
Глава 3. Учебное пособие по MySQL Начало Книги Глава 5. Оптимизация в MySQL


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru