Re: MySQL-репликация и размеры БД.
В Thu, 23 Feb 2012 17:57:19 +0200
Bogdan <bogdar@gmail.com> пишет:
> Добрый день.
> Есть две репликационных пары MySQL-серверов (master-slave)
>
> На обоих парах смотрю размер БД с помощью:
> SELECT table_schema 'database', concat( round( sum( data_length +
> index_length ) / ( 1024 *1024 ) , 2 ) , 'M' ) size FROM
> information_schema.TABLES WHERE ENGINE=('MyISAM' || 'InnoDB' ) GROUP
> BY table_schema;
>
> Разница в показаниях достигает гигабайта, причем как в большую, так и
> в меньшую сторону.
> Проверял размер с помощью du - различается примерно на столько же
> (innodb-таблицы в отдельных файлах)
> Локальных модификаций на slave нет.
>
> Задержек репликации нет.
> Это вообще нормально, или у меня на слейве данные уже превратились в
> тыкву?
>
> В обоих случаях mysql на мастер-серверах минимум один раз завершался
> некорректно (например, ребут железа по питанию или OOM прибил)
> Аппаратный RAID, батарейки в порядке.
>
> Спасибо!
Вобще-то как innodb обращается с занимаемым местом - это просто шедевр!
Пустая база, без таблиц вполне может весить десяток-другой гигов (думаю
цифры могут быть любые, у меня были такие) если раньше в ней были
данные. Т.е. % фрагментации стремится к бесконечности. Поэтому если у
Вас на мастере всё время ведутся операции вроде UPDATE и DELETE -
я не удивлюсь что журнал слейва может отличаться. Однако репликация в
MySQL по идее идёт непрерывно по двоичному журналу - тогда данные должны
быть равны по размеру, т.к. одни и те же запросы выполняются на
отдельных серверах.
Короче говоря, точного утвердительного ответа дать не могу, но
практически уверен что это нормально (причина уверенности - в
предыдущем абзаце).
Если нужен точный ответ - рекомендую настроить на подопытном компе пару
серверов master-slave и сделать по несколько (немного) тестовых операций
(разных - UPDATE, DELETE, также разбавить и SELECT'ами для чистоты
эксперимента) и сравнить размер. Скорее всего хотя бы на пару байт
разница реально будет накапливаться - тогда можно будет точно сказать
"да, это нормально".
Reply to: