Срочно нужна помощь CENTOS UTM MySQL innodb

Технические вопросы по UTM 5.0
Ответить
steckovski
Сообщения: 31
Зарегистрирован: Сб июл 26, 2008 11:58

Срочно нужна помощь CENTOS UTM MySQL innodb

Сообщение steckovski »

Прошу помощи с базой MySQL innodb

Система CentOS Linux 5 Utm 5.2.1-006 PPPoE Microtik utm_radius

Проблема заключается в том что /var/lib/mysql/ibdata1 весит 94 gb

база на мускуле одна, когда файл весил около 70 гб все было в норме чуть притормаживало при запросах, буквально за месяц он вырос до 94 гб и теперь начались проблемы что мускул грузит проц до 120% и ничего не рабоает (. Месяц назад я делал бэкап и у меня получилось почти 27 гиг и я был очень удивлен такому размеру, при том что бэкап другой базы на другом сервере весит 400 мегбайт. Получается база где 700 аккаунтов и PPPoE бэкап 27 гиг, база где 400 аккаунтов и IP+MAC(NAT) 400 мегабайт.

Вопросы:

1. Как уменьшить или вообще что либо сделать с файлом /var/lib/mysql/ibdata1
2. Почему такая большая разница между бэкапами баз с разных серверов
3. Как избежать раздувание файла /var/lib/mysql/ibdata1

Аватара пользователя
Chrst
Сообщения: 370
Зарегистрирован: Пт май 11, 2007 09:28
Откуда: Медиахолдинг "ЛеККС"
Контактная информация:

Re: Срочно нужна помощь CENTOS UTM MySQL innodb

Сообщение Chrst »

steckovski писал(а): Вопросы:

1. Как уменьшить или вообще что либо сделать с файлом /var/lib/mysql/ibdata1
2. Почему такая большая разница между бэкапами баз с разных серверов
3. Как избежать раздувание файла /var/lib/mysql/ibdata1
1. Архивирование списаний.
2. Разные настройки MySQL, разный объем потребляемого трафика
3. Архивирование списаний.

steckovski
Сообщения: 31
Зарегистрирован: Сб июл 26, 2008 11:58

Re: Срочно нужна помощь CENTOS UTM MySQL innodb

Сообщение steckovski »

Chrst писал(а):
steckovski писал(а): Вопросы:

1. Как уменьшить или вообще что либо сделать с файлом /var/lib/mysql/ibdata1
2. Почему такая большая разница между бэкапами баз с разных серверов
3. Как избежать раздувание файла /var/lib/mysql/ibdata1
1. Архивирование списаний.
2. Разные настройки MySQL, разный объем потребляемого трафика
3. Архивирование списаний.
Каким образом выполнить архивирование списаний при условии что этого до меня с этой базой никогда не делал, база в таком состоянии досталась по наследству и я сам эту операцию никогда не выполнял

xxxupg
Сообщения: 457
Зарегистрирован: Вс май 02, 2010 10:00

Сообщение xxxupg »

читай форум... он тоже типа по наследству достаётся всем новичкам :)

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

Версию MySQL назовите, пожалуйста.

steckovski
Сообщения: 31
Зарегистрирован: Сб июл 26, 2008 11:58

Сообщение steckovski »

JAO писал(а):Версию MySQL назовите, пожалуйста.
# Версия сервера: 5.0.51a-community
# Версия протокола: 10

JAO
Сообщения: 1153
Зарегистрирован: Вт дек 11, 2007 08:17

Сообщение JAO »

У вас всего одна база на движке InnoDB? И эта база - UTM5? И у вас нет репликации?

Если да по всем трем вопросам, то делаем так:

1. Снимаем дамп базы
2. Удаляем базу
3. Останавливаем MySQL
4. Находим и затираем файлы ib_logfile*, ibdata1
5. Включаем в конфиге MySQL опцию innodb_file_per_table=1
6. Запускаем MySQL, он снова создает эти файлы
7. Вливаем базу с дампа
8. Смотрим какая таблица сколько съела (файлы .ibd в каталоге базы)
9. Думаем, что делать, возможно, архивацию данных из этих таблиц

Если не уверены в успехе операции, перед началом скопируйте весь каталог с базами MySQL в другое место, файлы ib_logfile* и ibdata1 тоже должны быть скопированы, обычно они в том же каталоге. Скопируйте также текущий конфиг. Это нужно делать при остановленном MySQL. Если что пойдет не так, можно будет быстро и безболезненно откатиться к тому, что было.

steckovski
Сообщения: 31
Зарегистрирован: Сб июл 26, 2008 11:58

Сообщение steckovski »

JAO писал(а):У вас всего одна база на движке InnoDB? И эта база - UTM5? И у вас нет репликации?

Если да по всем трем вопросам, то делаем так:

1. Снимаем дамп базы
2. Удаляем базу
3. Останавливаем MySQL
4. Находим и затираем файлы ib_logfile*, ibdata1
5. Включаем в конфиге MySQL опцию innodb_file_per_table=1
6. Запускаем MySQL, он снова создает эти файлы
7. Вливаем базу с дампа
8. Смотрим какая таблица сколько съела (файлы .ibd в каталоге базы)
9. Думаем, что делать, возможно, архивацию данных из этих таблиц

Если не уверены в успехе операции, перед началом скопируйте весь каталог с базами MySQL в другое место, файлы ib_logfile* и ibdata1 тоже должны быть скопированы, обычно они в том же каталоге. Скопируйте также текущий конфиг. Это нужно делать при остановленном MySQL. Если что пойдет не так, можно будет быстро и безболезненно откатиться к тому, что было.
Сейчас бьюс как сделать дамп базы следующим образом:

1. Снимаем дамп без учета таблиц discount_transactions_all и discount_transactions_iptraffic_all
2. Снимаем дамп таблиц discount_transactions_all и discount_transactions_iptraffic_all но с параметром установки даты например только начиная с 01.11.2010 и по сей день

нашел скрипт на форуме который вытаскивает отдельно таблицы но ни как не получеться ему задать правильно дату а именно discount_date и вообще я столкнулся проблемой как правильно воспринимать и расчитывать реальную дату вида dd.mm.yy и значения в базе типа 1288569599

Код: Выделить всё

#!/bin/sh
for TABLE in $(echo "show tables" | mysql -u root UTM5 |grep -v Tables_in_ |grep -y 'discount_transactions_*')
do
mysqldump -v --add-drop-table -u root UTM5 ${TABLE} > /mnt/mysqldumpfile_$TABLE.sql
done 
Если есть возможность как это сделать...

starchik
Сообщения: 461
Зарегистрирован: Сб ноя 22, 2008 22:07

Сообщение starchik »

steckovski писал(а):нашел скрипт на форуме который вытаскивает отдельно таблицы но ни как не получеться ему задать правильно дату а именно discount_date и вообще я столкнулся проблемой как правильно воспринимать и расчитывать реальную дату вида dd.mm.yy и значения в базе типа 1288569599
если ручками то так
или же так

steckovski
Сообщения: 31
Зарегистрирован: Сб июл 26, 2008 11:58

Сообщение steckovski »

starchik писал(а):
steckovski писал(а):нашел скрипт на форуме который вытаскивает отдельно таблицы но ни как не получеться ему задать правильно дату а именно discount_date и вообще я столкнулся проблемой как правильно воспринимать и расчитывать реальную дату вида dd.mm.yy и значения в базе типа 1288569599
если ручками то так
или же так
со временем теперь понятно а как переделать скрипт чтоб по discount_date параметру забирать из базы ?

Ответить