Spec-Zone .ru
спецификации, руководства, описания, API
|
innochecksum печатает контрольные суммы для InnoDB
файлы. Этот инструмент читает InnoDB
файл
табличной области, вычисляет контрольную сумму для каждой страницы, сравнивает расчетную контрольную сумму с
сохраненной контрольной суммой, и сообщает о несоответствиях, которые указывают на поврежденные страницы. Это
было первоначально разработано, чтобы ускорить проверку целостности файлов табличной области после отключений
электричества питания, но может также использоваться после копий файла. Поскольку несоответствия контрольной
суммы вызовут InnoDB
чтобы сознательно завершить работу рабочего сервера, может
быть предпочтительно использовать этот инструмент вместо того, чтобы ожидать сервера в производственном
использовании, чтобы встретиться с поврежденными страницами.
innochecksum не может использоваться на файлах табличной
области, которые сервер уже имеет открытый. Для таких файлов следует использовать CHECK TABLE
проверять таблицы в пределах табличной области. Попытка выполнить
innochecksum на табличной области, которую сервер уже имеет
открытый, приведет к "Неспособный заблокировать файл"
ошибка.
Если бы несоответствия контрольной суммы находятся, Вы обычно восстанавливали бы табличную область от резервного копирования или запускали бы сервер и попытку использовать mysqldump, чтобы сделать резервное копирование таблиц в пределах табличной области.
Вызовите innochecksum как это:
shell> innochecksum [options
]
file_name
innochecksum поддерживает следующие опции. Для опций, которые обращаются к номерам страниц, числа основаны на нуле.
--help
, -?
Справка командной строки дисплеев. Использование в качестве примера:
shell> innochecksum --help
--info
, -I
Синоним для --help
.
Справка командной строки дисплеев. Использование в качестве примера:
shell> innochecksum --info
--version
, -V
Информация о версии дисплеев. Использование в качестве примера:
shell> innochecksum --version
--verbose
, -v
Многословный режим; напечатайте индикатор хода выполнения каждые пять секунд. Использование в качестве примера:
shell> innochecksum --verbose ../data/test/tab1.ibd
Демонстрационный вывод:
Variables (--variable-name=value)and boolean options {FALSE|TRUE} Value (after reading options)--------------------------------- -----------------------------verbose TRUEdebug FALSEcount FALSEstart-page 0end-page 0page 0strict-check crc32no-check FALSEallow-mismatches 0write crc32page-type-summary FALSEpage-type-dump (No default value)log (No default value)
--count
, -c
Напечатайте количество числа страниц в файле и выходе. Использование в качестве примера:
shell> innochecksum --count ../data/test/tab1.ibd
--start-page=
, num
-s
num
Запустите в этом номере страницы. Использование в качестве примера:
shell> innochecksum --start-page=600 ../data/test/tab1.ibd
или:
shell> innochecksum -s 600 ../data/test/tab1.ibd
--end-page=
, num
-e
num
Конец в этом номере страницы. Использование в качестве примера:
shell> innochecksum --end-page=700 ../data/test/tab1.ibd
или:
shell> innochecksum --p 700 ../data/test/tab1.ibd
--page=
, num
-p
num
Проверьте только этот номер страницы. Использование в качестве примера:
shell> innochecksum --page=701 ../data/test/tab1.ibd
--strict-check
, -C
Определите строгий алгоритм контрольной суммы. Опции включают innodb
,
crc32
, и none
.
В этом примере, innodb
алгоритм контрольной суммы определяется:
shell> innochecksum --strict-check=innodb ../data/test/tab1.ibd
В этом примере, crc32
алгоритм контрольной суммы определяется:
shell> innochecksum -C crc32 ../data/test/tab1.ibd
Следующие условия применяются:
Если Вы не определяете --strict-check
опция, innochecksum проверяет против innodb
, crc32
и none
.
Если Вы определяете none
опция, только
контрольные суммы, сгенерированные none
позволяются.
Если Вы определяете innodb
опция, только
контрольные суммы, сгенерированные innodb
позволяются.
Если Вы определяете crc32
опция, только
контрольные суммы, сгенерированные crc32
позволяются.
--no-check
, -n
Проигнорируйте проверку контрольной суммы, переписывая контрольную сумму. Эта опция может только
использоваться с innochecksum --write
опция. Если --write
опция не определяется, innochecksum завершится.
В этом примере, innodb
контрольная сумма переписывается, чтобы заменить
недопустимую контрольную сумму:
shell> innochecksum --no-check --write innodb ../data/test/tab1.ibd
Максимальное количество несоответствий контрольной суммы, позволенных прежде innochecksum, завершается. Настройка по умолчанию 0.
Если --allow-mismatches=
N
,
где
, N
>=0N
несоответствия разрешаются, и innochecksum завершается в
. Когда N
+1--allow-mismatches
устанавливается в 0, innochecksum завершается на первом
несоответствии контрольной суммы.
В этом примере, существующем innodb
контрольная сумма переписывается,
чтобы установить --allow-mismatches
к 1.
shell> innochecksum --allow-mismatches=1 --write innodb ../data/test/tab1.ibd
С --allow-mismatches
набор к 1, если есть несоответствие в странице 600
и другой в странице 700 на файле с 1000 страниц, контрольная сумма, обновляется для страниц 0-599 и
601-699. Поскольку --allow-mismatches
устанавливается в 1, контрольная
сумма терпит первое несоответствие и завершается на втором несоответствии, оставляя страницу 600 и
неизменные страницы 700-999.
--write=
, name
-w
num
Перепишите контрольную сумму. Переписывая недопустимую контрольную сумму, --no-check
опция должна использоваться вместе с --write
опция. --no-check
опция говорит innochecksum игнорировать проверку недопустимой
контрольной суммы. Вы не должны определить --no-check
опция, если текущая контрольная сумма допустима.
Алгоритм должен быть определен при использовании --write
опция. Возможные значения для --write
опция:
innodb
: Контрольная сумма, вычисленная в
программном обеспечении, используя исходный алгоритм от InnoDB
.
crc32
: Контрольная сумма вычислила
использование crc32
алгоритм, возможно сделанный с аппаратными
средствами, помогает.
none
: Постоянное число.
--write
опция переписывает все страницы к диску. Если новая контрольная
сумма идентична существующей контрольной сумме, новая контрольная сумма не пишется диску, чтобы
минимизировать ввод-вывод.
innochecksum
получает монопольную блокировку когда --write
опция используется.
В этом примере, a crc32
контрольная сумма пишется для tab1.ibd
:
shell> innochecksum -w crc32 ../data/test/tab1.ibd
В этом примере, a crc32
контрольная сумма переписывается, чтобы
заменить недопустимое crc32
контрольная сумма:
shell> innochecksum --no-check --write crc32 ../data/test/tab1.ibd
Дисплей количество каждой страницы вводит табличную область. Использование в качестве примера:
shell> innochecksum --page-type-summary ../data/test/tab1.ibd
Демонстрационный вывод для --page-type-summary
:
File::../data/test/tab1.ibd================PAGE TYPE SUMMARY==============#PAGE_COUNT PAGE_TYPE=============================================== 2 Index page 0 Undo log page 1 Inode page 0 Insert buffer free list page 2 Freshly allocated page 1 Insert buffer bitmap 0 System page 0 Transaction system page 1 File Space Header 0 Extent descriptor page 0 BLOB page 0 Compressed BLOB page 0 Other type of page===============================================Additional information:Undo page type: 0 insert, 0 update, 0 otherUndo page state: 0 active, 0 cached, 0 to_free, 0 to_purge, 0 prepared, 0 other
--page-type-dump
, -D
Выведите информацию о типе страницы для каждой страницы в табличной области к stderr
или stdout
. Использование в качестве примера:
shell> innochecksum --page-type-dump /tmp/a.txt ../data/test/tab1.ibd
--log
, -l
Журнал выводится для innochecksum инструмента. Имя файла журнала должно
быть обеспечено. Вывод журнала содержит значения контрольной суммы для каждой страницы табличной
области. Для несжатых таблиц также обеспечиваются значения LSN. --log
замены --debug
опция, которая
была доступна в более ранних выпусках. Использование в качестве примера:
shell> innochecksum --log=/tmp/log.txt ../data/test/tab1.ibd
или:
shell> innochecksum -l /tmp/log.txt ../data/test/tab1.ibd
Определите"-
"опция,
чтобы читать из стандартного ввода. Если"-
"опция отсутствует когда "считано из стандарта в", ожидается, innochecksum сообщает об ошибке.
shell> cat t1.ibd | ./bin/innochecksum -