.RU

Журнал ошибок - Курс лекций администрирование mysql кривой Рог 2010 содержание лекция введение в администрирование...


^ Журнал ошибок
Журнал ошибок содержит информацию о том, когда запускается и останавливается mysqld, а также все критические ошибки, обнаруженные в процессе работы.

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

Все ошибки mysqld записывает в stderr, который сценарий safe_mysqld перенаправляет в файл с именем 'hostname'.err (в Windows mysqld сохраняет его в каталоге \mysql\data\mysql.err).

В некоторых ОС в журнал включается распечатка части стека погибшего mysqld. С помощью этой информации можно определить причину сбоя.

Начиная с MySQL 4.0.10 можно указать, где именно mysqld должен сохранять журнал ошибок, с помощью опции -log-error[=filename]. Если имя файла не задается, то тогда mysqld будет использовать mysql-data-dir/'hostname'.err на Unix и\mysql\data\mysql.err на windows.

Если вы выполняете FLUSH LOGS старый файл будет сохранен с префиксом -old и mysqld создаст новый пустой журнал.

На старых версиях MySQL журнал ошибок велся скриптом mysqld_safe, который перенаправлял вывод в файл 'hostname'.err. В старых версиях можно было изменить имя этого файла опцией -err-log=filename.

Если вы не указываете -log-error или используете опцию -console, то ошибки будут выводиться на stderr (на терминал).

В Windows вывод всегда пишется в .err-файл, если -console не была указана.
^ Общий журнал запросов
Если вы хотите знать обо всем, что происходит с mysqld, нужно запустить систему с ключом -log[=file]. После этого информация обо всех соединениях и запросах будет записываться в файл журнала (по умолчанию ему дается имя'hostname'.log). Этот журнал может оказаться полезным, если вы подозреваете наличие ошибки в клиентском ПО и хотите выяснить, что, по мнению mysqld, клиент передал базе.

Старые версии скрипта mysql.server (с MySQL 3.23.4 по 3.23.8) передавали safe_mysqld опцию -log (включить общий журнал запросов). Если вам нужна большая производительность при запуске MySQL в промышленной эксплуатации, вы можете удалить опцию -log из mysql.server или поменять ее на -log-bin..

Записи в журнал заносятся по мере получения mysqld запросов. Порядок их занесения может быть иным, чем порядок выполнения команд. В этом и заключается основное отличие данного журнала от журналов обновлений и бинарных журналов, в которые информация заносится по мере выполнения запросов, но до отмены блокировок.
^ Журнал обновлений (update)
Обратите внимание: журнал обновлений (update) применялся в старых версиях и сейчас заменен бинарным журналом (binary). С этим журналом можно производить те же операции, что и с журналом обновлений.

При запуске с ключом -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 -l -t -r file_name.[0-9]* | xargs cat | mysql

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

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

Бинарный журнал обновлений


Бинарный журнал содержит всю информацию, имеющуюся в журнале обновлений, в более эффективном формате. В нем имеется информация и о времени выполнения каждого обновляющего базу запроса. В нем не содержится информации о запросах, которые не изменяют данные. Если вам нужно журналировать все запросы (например для выявления проблемного запроса), следует использовать общий журнал запросов.


Бинарный журнал применяется и при репликации подчиненного сервера (slave) с головного (master).


При запуске с ключом -log-bin[=file_name] mysqld создает файл журнала, в который вносятся данные обо всех обновляющих данные командах SQL. Если имя файла не задано, по умолчанию ему дается имя хоста с окончанием -bin. Если файлу присвоено имя, не содержащее пути доступа к нему, этот файл сохраняется в каталоге данных.


При вводе расширения в имя файла (например: -log-bin=filename.extension) это расширение удаляется без предупреждения.


К имени файла бинарного журнала программа mysqld прибавляет специальное расширение — номер, увеличивающийся при каждом выполнении команд mysqladmin refresh, mysqladmin flush-logs, FLUSH LOGS или перезапуске сервера. При достижении файлом журнала максимального размера, заданного в параметре max_binlog_size, автоматически создается новый. Все неактивные файлы бинарных журналов можно удалить командой RESET MASTER.


На выбор данных, записываемых в журнал, влияют следующие настройки mysqld:


Опция Описание

binlog-do-

db=database_name

Указывает головному серверу что он должен журналировать обновления в двоичный журнал если текущая (т.е. выбранная) база данных — это 'database_name'. Остальные базы данных, особо не отмеченные, игнорируются. Имейте в виду, что если вы используете эту опцию, то вам следует делать обновления только в этой базе данных. (пример: binlog-do-db=some_database)

binlog-ignore-

db=database_name

Заставляет отказаться от занесения в журнал обновлений определенной базы данных (пример: binlog-ignore-db=some_database)

Чтобы была возможность определить, какие файлы журналов используются в данный момент, mysqld создает и индексный файл, содержащий имена всех находящихся в работе файлов. По умолчанию ему присваивается то же имя, что и файлу журнала, но с расширением .index. Имя этого файла можно изменить с помощью параметра -log-bin-index=[filename].


При использовании репликации удалять старые файлы журналов не стоит до тех пор, пока вы не будете уверены в том, что они никогда не понадобятся ни одной зависимой базе. Добиться такого результата можно, запуская команду mysqladmin flush-logs раз в день и затем удаляя все журналы, созданные более 3 дней назад.


Работать с файлами бинарного журнала можно с помощью программы mysqlbinlog. Обновить MySQL в соответствии с записями в журнале можно так:


shell> mysqlbinlog log-file | mysql -h server_name

С помощью программы mysqlbinlog можно даже считывать файлы журнала прямо с удаленного сервера MySQL!


При запуске mysqlbinlog с ключом -help на экран выводится дополнительная информация по работе с этой программой.


При работе с настройками BEGIN [WORK] или SET AUTOCOMMIT=0 для резервного копирования нужно использовать бинарный журнал, а не старый журнал обновлений.


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


Обновления нетранзакционных таблиц сохраняются в двоичном журнале немедленно после выполнения. Все обновления (UPDATE, DELETE или INSERT), изменяющие данные в транзакционных таблицах (например, BDB-таблицу), находятся в кэше до вызова COMMIT. В этот момент mysqld пишет всю транзакцию целиком в двоичный журнал перед тем, как выполнить COMMIT. Каждый поток при запуске будет создавать буфер размером binlog_cache_size для буферизации запросов. Если запрос превышает этот размер, тогда поток откроет временный файл для сохранения транзакции. Временный файл будет удален при выходе потока.


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


Параметр max_binlog_cache_size (по умолчанию 4Гб) позволяет ограничить общий объем памяти, используемой для кэширования мультитранзакционного запроса. Если транзакция больше этого — будет произведен откат.


При использовании журнала обновлений или бинарного журнала параллельные операции вставки будут преобразованы в нормальные операции вставки в командах CREATE ... SELECT и INSERT ... SELECT. Это сделано специально — для того, чтобы обеспечить возможность создания точной копии таблиц путем объединения резервной копии с журналом.

Журнал медленных запросов


При запуске с параметром -log-slow-queries[=file_name] mysqld создает файл журнала, в котором сохраняются данные обо всех командах SQL, на выполнение которых ушло больше времени, чем указано в значении параметра long_query_time. Время, уходящее на первоначальную блокировку таблиц, не входит во время исполнения запроса.


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


Если имя файла не задано, по умолчанию ему дается имя хоста с окончанием -slow.log. Если файлу присвоено имя, не содержащее пути доступа к нему, этот файл сохраняется в каталоге с данными.


Этот журнал позволяет определить запросы, на выполнение которых ушло слишком много времени, — а, значит, и обнаружить основных кандидатов на оптимизацию. Конечно, при достижении журналом значительного объема эта задача усложняется. В таком случае журнал можно пропустить через команду mysqldumpslow и получить краткий отчет о запросах, попавших в список.


При использовании ключа -log-long-format на экран выводятся и запросы, не работающие с индексами.


Обслуживание файлов журналов


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


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


В системе Linux (Red Hat) для этого можно использовать сценарий mysql-log-rotate. При установке MySQL с дистрибутива RPM этот сценарий устанавливается автоматически. Обратите внимание: использовать журнал для репликации необходимо с максимальной аккуратностью!


В других ОС вы можете самостоятельно создать небольшой сценарий для обработки журналов, запускаемый из cron.


Заставить MySQL создать новый файл журнала можно с помощью команды mysqladmin flush-logs или SQL-команды FLUSH LOGS. При работе с MySQL версии 3.21 пользоваться можно только командой mysqladmin refresh.


Эта команда выполняет следующие действия.


Если используется стандартный журнал (-log) или журнал медленных запросов (-log-slow-queries), файл журнала (mysql.log и `hostname`-slow.log по умолчанию) закрывается и открывается вновь.

Если используется журнал обновлений (-log-update), файл журнала закрывается, после чего создается новый файл с большим номером.

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


shell> cd mysql-data-directory

shell> mv mysql.log mysql.old

shell> mysqladmin flush-logs

а затем сделать резервную копию файла mysql.old и удалить его.

^ ЛЕКЦИЯ 9. Резервирование и копирование баз данных

Описание: В этой лекции рассматриваются вопросы создания резервных копий баз данных и аспекты восстановления баз из резервных копий.

Администратор должен обязательно резервировать базы данных на случай повреждения или потери данных. Только благодаря резервированию все таблицы могут быть восстановлены до прежнего состояния в случае сбоя в работе системы. Кроме того, не исключен вариант, когда резервирование может оказаться единственным путем отступления, если какой-либо неопытный пользователь случайно выполнит операторы DROP database или drop table. Иногда сбой может произойти по вине собственно администратора MySQL. Так, автору этих лекций известны случаи, когда администраторы разрушали файлы таблиц, пытаясь изменить их с помощью таких редакторов, как vi или emacs. Это далеко не самый лучший способ отредактировать таблицы.

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

Независимо от выбранного метода резервирования существуют определенные принципы, которым необходимо следовать для достижения эффективных результатов.

Согласно терминологии резервирования, заархивированные файлы баз данных представляют полный архив, а журналы обновлений — дополнительный.

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

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

zakon-rk-ob-ohrane-selekcionnih-dostizhenij-nacionalnij-akademicheskij-centr-agrarnih-issledovanij-respubliki.html
zakon-rossijskoj-federacii-o-gosudarstvennom-yazike-rossijskoj-federacii.html
zakon-rossijskoj-federacii-ob-oborote-zemel-selskohozyajstvennogo-naznacheniya.html
zakon-rossijskoj-federacii-ob-ohrane-okruzhayushej-prirodnoj-sredi.html
zakon-rossijskoj-federacii-ot-10-07-1992-3266-1-redakciya-ot-16-03-2006-ob-obrazovanii-izvlecheniya.html
zakon-rossijskoj-federacii-ot-14-iyunya-2011-g-n-137-fz-o-vnesenii-izmenenij-v-lesnoj-kodeks-rossijskoj-federacii-i-statyu-71-federalnogo-zakona-.html
  • uchebnik.bystrickaya.ru/uchebno-metodicheskij-kompleks-po-discipline-fizicheskaya-geografiya-altajskogo-kraya-specialnosti-podgotovki-specialistov-020401-65-geografiya.html
  • shkola.bystrickaya.ru/osnovi-pastbishnogo-kormleniya-i-soderzhaniya-krupnogo-rogatogo-skota.html
  • turn.bystrickaya.ru/polozhenie-o-provedenii-gorodskogo-konkursa-instrumentalnoj-muziki-v-ramkah-xviii-gorodskogo-konkursa-festivalya-hudozhestvennogo-tvorchestva.html
  • institute.bystrickaya.ru/glava-4-razvitie-psihologii-v-novoe-vremya-marcinkovskaya-t-d-m-29-istoriya-psihologii-ucheb-posobie-dlya-stud.html
  • bukva.bystrickaya.ru/pedagogicheskaya-sistema-k-d-ushinskogo.html
  • shkola.bystrickaya.ru/prilozhenie-3-principi-otnoshenij-roditelej-s-detmi.html
  • bukva.bystrickaya.ru/proekt-proizvodstvennoj-ekspluatacii-mashinno-traktornogo-parka-podrazdeleniya-selskohozyajstvennogo-predpriyatiya.html
  • writing.bystrickaya.ru/cena-akcii-na-birzhe.html
  • learn.bystrickaya.ru/glava-5-pisma-ot-indigo-li-kerroll-dzhen-touber.html
  • uchit.bystrickaya.ru/sravnitelnij-analiz-tarifnogo-regulirovaniya-tamozhennogo-soyuza-i-zarubezhnih-stran.html
  • tetrad.bystrickaya.ru/uchebno-metodicheskij-kompleks-disciplini-modulya-kursa-sertifikaciya-i-licenzirovanie-uslug.html
  • thescience.bystrickaya.ru/kniga-posvyashena-resheniyu-mnogochislennih-problem-nakopivshihsya-kak-v-teorii-tak-i-praktike-amerikanskogo-upravleniya-k-koncu-xx-veka-stranica-11.html
  • gramota.bystrickaya.ru/zarabotnaya-plata-i-zatrati-na-personal.html
  • literature.bystrickaya.ru/doneckij-nacionalnij-tehnicheskij-universitet-stranica-7.html
  • turn.bystrickaya.ru/osnovnaya-obrazovatelnaya-programma-visshego-professionalnogo-obrazovaniya-bakalavriat-napravlenie-podgotovki-081100-gosudarstvennoe-i-municipalnoe-upravlenie.html
  • bukva.bystrickaya.ru/nternet-tehnolog-u-distancjnomu-navchann-programa-web-test-konstruktor.html
  • klass.bystrickaya.ru/azastan-respublikasi-blm-zhne-ilim-ministrlgmen.html
  • nauka.bystrickaya.ru/uchebnoe-posobie-k-speckursu-istoriya-holodnoj-vojni.html
  • uchitel.bystrickaya.ru/razdelenij-ne--sostavleniya-i-predstavleniya-form-otchetnosti-kreditnih.html
  • literature.bystrickaya.ru/departament-obrazovaniya-goroda-moskvi-uchebnaya-programma-disciplini-prakticheskaya-grammatika-dpp-f-08.html
  • report.bystrickaya.ru/iv-uchebnaya-literatura-uchebnie-posobiya-programma-disciplini-istoriya-sociologii-dlya-napravleniya-040200-62.html
  • exchangerate.bystrickaya.ru/issledovanie-planeti-venera-kosmicheskimi-apparatami-chast-4.html
  • prepodavatel.bystrickaya.ru/tematicheskij-plan-izucheniya-disciplini-bezopasnost-zhiznedeyatelnosti.html
  • testyi.bystrickaya.ru/anglosaksonskaya-hronika.html
  • laboratornaya.bystrickaya.ru/rabochaya-programma-disciplini-po-viboru-ultrazvukovaya-diagnostika-v-akusherstve-i-ginekologii.html
  • institute.bystrickaya.ru/glava-ix-uchebnoe-posobie-dlya-visshih-uchebnih-zavedenij-izdanie-6-e-pererabotannoe-i-dopolnennoe-rostov-nd.html
  • gramota.bystrickaya.ru/zadachi-k-kontrolnoj-rabote-zadacha-1-metodicheskie-ukazaniya-i-kontrolnie-zadaniya-dlya-studentov-zaochnikov-srednih.html
  • letter.bystrickaya.ru/ob-utverzhdenii-programmi-socialno-ekonomicheskogo-razvitiya-kaliningradskoj-oblasti-na-2007-2016-godi-stranica-22.html
  • upbringing.bystrickaya.ru/meropriyatiya-provedennie-obespechivayushie-otkritost-i-translyaciyu-rezultatov-eksperimentalnoj-i-innovacionnoj-deyatelnosti.html
  • bukva.bystrickaya.ru/prilozhenie-6-rekomenduemoe-plotini-iz-gruntovih-materialov-snip-06-05-84.html
  • kolledzh.bystrickaya.ru/azhazha-vladimir-georgievich-inaya-zhizn-stranica-11.html
  • desk.bystrickaya.ru/podvodnij-mir-v-kraevedcheskom-muzee-445011-gsp-rossijskaya-federaciya-samarskaya-oblast-pl-svobodi-4-kab7.html
  • studies.bystrickaya.ru/glava-h-skazka-kak-celoe-2-strelku-vniz-ya-zamenil-na-zakrituyu-figurnuyu-skobku-.html
  • testyi.bystrickaya.ru/74-vethozavetnaya-i-novozavetnaya-tradiciya-resheniya-problemi-smisla-zhizni.html
  • uchitel.bystrickaya.ru/pskovichi-i-nemci-xiii-xvi-vv-platonovskie-chteniya-materiali-xiii-vserossijskoj-konferencii-molodih-istorikov.html
  • © bystrickaya.ru
    Мобильный рефератник - для мобильных людей.