[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: