суббота, 24 декабря 2016 г.

Исправляем поврежденные MySQL-таблицы с myisamchk

Определяем все поврежденные таблицы, используя myisamchk

# myisamchk /var/lib/mysql/bugs/*.MYI >> /tmp/myisamchk_log.txt

myisamchk: error: Wrong bytesec: 0-0-0 at linkstart: 18361936
MyISAM-table 'attach_data.MYI' is corrupted
Fix it using switch "-r" or "-o"
myisamchk: warning: 1 client is using or hasn't closed the table properly
MyISAM-table 'groups.MYI' is usable but should be fixed
myisamchk: warning: 1 client is using or hasn't closed the table properly
MyISAM-table 'profiles.MYI' is usable but should be fixed

Исправляем поврежденные таблицы, используя myisamchk

Для этого используем myisamchk, с опцией -r, как и показано ниже:

# myisamchk -r profiles.MYI

- recovering (with sort) MyISAM-table 'profiles.MYI'
Data records: 80
- Fixing index 1
- Fixing index 2


Запускаем проверку и исправлением для всей БД MySQL


# myisamchk --silent --force --fast --update-state /var/lib/mysql/bugs/*.MYI

myisamchk: MyISAM file /var/lib/mysql/bugs/groups.MYI
myisamchk: warning: 1 client is using or hasn't closed the table properly
myisamchk: MyISAM file /var/lib/mysql/bugs/profiles.MYI
myisamchk: warning: 1 client is using or hasn't closed the table properly


-s: выводим только ошибки. Можно использовать двойной -s -s, чтобы сделать режим максимально «тихим»;
-f: автоматический перезапуск myisamchk с опцией -r, есть обнаружены ошибки;
-F: проверка только таблиц, которые не были закрыты в нормальном режиме;
-U: отмечаем таблицы, как поврежденные, если обнаружены ошибки.

Использование дополнительной памяти для больших БД MySQL

В случае работы с большими БД восстановление может занять несколько часов. Если есть дополнительные ресурсы, их можно использовать для ускорения процесса:


# myisamchk --silent --force --fast --update-state \
--key_buffer_size=512M --sort_buffer_size=512M \
--read_buffer_size=4M --write_buffer_size=4M \
/var/lib/mysql/bugs/*.MYI


Использование myisamchk для получения данных о таблице


При необходимости можно получить довольно много данных.

# myisamchk -dvv profiles.MYI

MyISAM file:         profiles.MYI
Record format:       Packed
Character set:       latin1_swedish_ci (8)
File-version:        1
Creation time:       2007-08-16 18:46:59
Status:              open,changed,analyzed,optimized keys,sorted index pages
Auto increment key:              1  Last value:                    88
Data records:                   88  Deleted blocks:                 0
Datafile parts:                118  Deleted data:                   0
Datafile pointer (bytes):        4  Keyfile pointer (bytes):        4
Datafile length:              6292  Keyfile length:              6144
Max datafile length:    4294967294  Max keyfile length: 4398046510079
Recordlength:                 2124

table description:
Key Start Len Index   Type                     Rec/key         Root  Blocksize
1   2     3   unique  int24                          1         1024       1024
2   5     765 unique  char packed stripped           1         2048       4096

Field Start Length Nullpos Nullbit Type
1     1     1
2     2     3                      no zeros
3     5     765                    no endspace


Все опции myisamchk

Для того чтобы получить дополнительную информацию по команде, стоит использовать помощь:

# myisamchk --help

Общие опции:

-s: только вывод ошибок;
-v: вывод большего количества информации;
-V: вывод версии и выход;
-w: ждать, если таблица заблокирована.

Опции проверки:

-c: проверка таблиц на ошибки;
-е: очень «грубая» проверка. Стоит использовать только в крайнем случае, если в обычном режиме ошибки не обнаруживаются;
-F: быстрая проверка, проверяются только таблицы, которые не закрывались правильно;
-С: проверка только таблиц, которые изменились со времени последней поверки;
-f: автоматический перезапуск myisamchk с опцией -r, есть обнаружены ошибки;
-i: вывод статистики по проверенным таблицам;
-m: облегченный режим проверки, быстрее, чем обычный, находится 99,99% ошибок;
-U: обновление статуса: пометка таблиц как поврежденных, если обнаруживаются любые ошибки;
-T: не помечать таблицы как проверенные.

Опции исправления:

-B: бэкап файла .MYD, «filename-time.BAK»;
--correct-checksum;
-е: попытка исправления максимального числа строк в файле данных. Кроме того, эта команда находит «мусорные» строки. Не стоит использовать эту команду, если ситуация не безнадежна;
-f: перезапись старых временных файлов;
-r: исправляет почти все, кроме уникальных ключей, которые на самом деле не уникальны;
-n: принудительная сортировка, даже, если временный файл получается очень большим;
-о: использование старого метода восстановления;
-q: быстрое исправление без модификации файла данных;
-u: распаковка файла, запакованного myisampack.

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

четверг, 22 декабря 2016 г.

Отключение и удаление бинарных логов репликации mysql-bin.0000 в MySQL


Отключение ведения логов репликации

В файле конфигурации (обычно он находятся в /etc/my.cnf) закомментируем строчку:

#log-bin=mysql-bin


Удаляем созданные файлы логи репликации SQL-запросом
Обычно файлы с логами находятся в /var/db/mysql

PURGE MASTER LOG TO 'mysql-bin.00005';

где mysql-bin.00005 - название файла до которого следует удалить логи.

Или если совсем не нужны логии удаляем их все следующим SQL-запросом:

RESET MASTER;

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

понедельник, 19 декабря 2016 г.

На средненагруженном сервере в итоге вышел такой конфиг (по возможности убрано всё лишнее и оставлены лишь необходимые мне настройки):
[mysqld]
default-storage-engine=MyISAM
innodb=OFF
skip-symbolic-links
skip-networking
skip-name-resolve
skip-federated
bind-address = 127.0.0.1
max_connect_errors = 1K
max_join_size=200M
max_allowed_packet=16M
key_buffer_size=128M
query_cache_size = 256M
max_heap_table_size=256M
tmp_table_size=256M
max_connections = 160
thread_cache_size = 160
read_buffer_size = 128K
read_rnd_buffer_size = 256K
join_buffer_size = 256K
sort_buffer_size = 128K
myisam_sort_buffer_size = 512M
table_open_cache = 1K
interactive_timeout = 60
wait_timeout = 60
connect_timeout =20
character-set-server=utf8
collation-server=utf8_general_ci
log_slow_queries = 1
slow_query_log_file = /var/log/mysql-bin.log
long_query_time = 4
#log-queries-not-using-indexes
Подробности:
1) Ставим MyISAM по умолчанию и отключаем ненужные нам вещи:
default-storage-engine=MyISAM
innodb=OFF
skip-symbolic-links
skip-networking
skip-name-resolve
skip-federated
2) Привязываем базу для использования только на нашем сервере:
bind-address = 127.0.0.1
3) Выставляем необходимые максимальные ограничения:
max_connect_errors = 1K
max_join_size=200M
max_allowed_packet=16M
4) Устанавливаем общий буфер, кэш для запросов и max размер для временных таблиц:
key_buffer_size=128M
query_cache_size = 256M
max_heap_table_size=256M
tmp_table_size=256M
5) Максимальное число соединений к базе и ожидающих их процессов:
max_connections = 160
thread_cache_size = 160
6) Буферы на каждый процесс (большие значения типа 1Mb и выше для нас это явно перебор).
read_buffer_size = 128K
read_rnd_buffer_size = 256K
join_buffer_size = 256K
sort_buffer_size = 128K
7) Служебный сортировочный буфер (память постоянно не занимает) и кэш открытых таблиц.
myisam_sort_buffer_size = 512M
table_open_cache = 1K
8) Необходимые таймауты, чтобы отсекать долгие ожидания.
interactive_timeout = 60
wait_timeout = 60
connect_timeout =20
9) Установка кодировки UTF8:
character-set-server=utf8
collation-server=utf8_general_ci
10) По желанию можно добавить логи медленных запросов или неиспользуемых индексов (создайте доступным на запись файл для лога).
log_slow_queries = 1
slow_query_log_file = /var/log/mysql-bin.log
long_query_time = 4
log-queries-not-using-indexes

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

вторник, 13 декабря 2016 г.

Тестирование скорости передачи жестких дисков в UBUNTU


sudo -i hdparm -t /dev/sda /dev/sdb /dev/sdc

будет что то наподобии

sda: OCZ-VERTEX2 3.5        229.47 MB/sec
sdb: WDC WD3000GLFS-01F8U0  122.29 MB/sec
sdc: ST3200822A             59.23 MB/sec

Отблагодарить можно через форму справа "Donate" ... )

To reward you via the form on the right "Donate" ... )

:)

друзья )

Сохраняйте и делитесь желаниями, и не забывайте о важных датах! парсинг центр