Howto Mysql
Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
howto:howto_mysql [15.01.2019 01:53] admin Approved(admin 2019/01/15 01:53) |
howto:howto_mysql [05.08.2019 10:46] (текущий) admin Approved(admin 2019/08/05 10:47) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Как профилировать mysql ====== | ||
+ | добавить в my.conf | ||
+ | <code bash> | ||
+ | slow-query-log = 1 | ||
+ | slow-query-log-file = /var/log/mysql_slow.log | ||
+ | long_query_time = 0.01 | ||
+ | log-queries-not-using-indexes | ||
+ | </code> | ||
+ | <code bash> | ||
+ | touch /var/log/mysql_slow.log | ||
+ | chmod 666 /var/log/mysql_slow.log | ||
+ | restart mysql | ||
+ | выполняем запросы | ||
+ | анализируем | ||
+ | mysqldumpslow -t 5 -s at /var/log/mysql_slow.log | ||
+ | </code> | ||
+ | Вариант 2 | ||
+ | <code bash> | ||
+ | strace -s 1000 -f -p `pidof mysqld` 2>&1 | head -n 100000 &>/tmp/s1 | ||
+ | cat /tmp/s1 | grep -i '[^ ]select' | awk '{ printf $7" "$8" "$9" "$10" "$11" "$12" "$13 "\n" }' | sort | uniq -c | sort -n | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ====== Как по-быстрому склонить базу на тестовый сервак ====== | ||
+ | |||
+ | 1. Делаем клон базы на проде | ||
+ | |||
+ | двойной rsync для быстроты и целостности | ||
+ | |||
+ | <code bash> | ||
+ | rsync -avP /var/lib/mysql/ /tmp/mysql.$(date --iso)/ | ||
+ | /etc/init.d/mysqld stop | ||
+ | rsync -avP /var/lib/mysql/ /tmp/mysql.$(date --iso)/ | ||
+ | /etc/init.d/mysqld start | ||
+ | </code> | ||
+ | |||
+ | 2. Восстановить базу на тестовый сервак | ||
+ | |||
+ | <code bash> | ||
+ | /etc/init.d/mysqld stop | ||
+ | mv /var/lib/mysql /root/delme.mysql.$(date --iso) | ||
+ | rsync -avP root@node1.carbonsoft.ru:/vm/vcrm/rootfs/tmp/mysql.$(date --iso)/ /var/lib/mysql/ | ||
+ | chown -R mysql:mysql /var/lib/mysql/ | ||
+ | /etc/init.d/mysqld start | ||
+ | |||
+ | # если ругается на отсутствие сокета при старте | ||
+ | |||
+ | mv /var/lib/ib_logfile* /root | ||
+ | /etc/init.d/mysqld start | ||
+ | |||
+ | </code> | ||
+ | |||
+ | //HINT: $(date --iso) может быть разной в екб и мск в ночное время// | ||
+ | |||
+ | ~~OWNERAPPROVE~~ | ||
+ | /*Не удаляйте эту строку и ниже!*/ | ||
+ | {(rater>id=1|name=Прочитал_howto:howto_mysql|type=vote|trace=user|tracedetails=1)} | ||