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)}