mysql ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ binlog
ΠΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² MySQL
ΠΡΡΠ½Π°Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ β ΠΏΠ΅ΡΠ²ΡΠΉ ΠΈ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΠ½ΠΎΠ²Π½ΡΡ Π»ΠΎΠ³ΠΎΠ² Π² MySQL ΡΠ΅ΡΡΡΠ΅:
ΠΠΎΠ³ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠΎΡ ΠΆΡΡΠ½Π°Π» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ (warnings). Π‘ Π½Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π½Π°ΡΠ°ΡΡ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠ²ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»Ρ (stderr), ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² syslog (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π² Debian) ΠΈΠ»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π»ΠΎΠ³-ΡΠ°ΠΉΠ»:
log_error=/var/log/mysql/mysql_error.log
ΠΡΠΈΠ±ΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΈΡΠ°ΡΡΡΡ Π² mysql_error.log
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Π΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠΎΡ ΠΆΡΡΠ½Π°Π» Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΌ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ. Π Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡ ΡΠ° ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°, Π² MySQL ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΡΠΈΠ»ΠΈΡΠ° [http://dev.mysql.com/doc/refman/5.7/en/perror.html perror]:
ΠΠ±ΡΡΡΠ½ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΠΈΠ½Π°ΡΠ½ΡΠΉ (ΠΎΠ½ ΠΆΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ) Π»ΠΎΠ³
Π Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ Π»ΠΎΠ³ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΡΠΎΠΊ ΠΆΠΈΠ·Π½ΠΈ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°
Π£ΡΡΠΈΡΠ΅, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ, ΡΠΎ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ Π»ΠΎΠ³ Π»ΡΡΡΠ΅ Π½Π΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ. ΠΠ½ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»Π΅Π½ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΠΈ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠΎΠ³ Π·Π°ΠΏΡΠΎΡΠΎΠ²
Π ΡΡΠΎΠΌ ΠΆΡΡΠ½Π°Π»Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π²ΡΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ SQL-Π·Π°ΠΏΡΠΎΡΡ, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². ΠΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²:
ΠΠΊΠ»ΡΡΠ°Π΅Ρ Π»ΠΎΠ³ ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
Π’Π°ΠΊΠΆΠ΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ/ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° MySQL:
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠΆΠ°ΡΡ ΡΠ΅ΡΠ²Π΅Ρ
ΠΠΎΠ³ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΡΡΠ½Π°Π» ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ , ΡΠΎ Π΅ΡΡΡ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΈΡΠ°ΠΉΡΠ΅ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅.
ΠΡΠΎΡΠΌΠΎΡΡ Π»ΠΎΠ³ΠΎΠ²
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π»ΠΎΠ³ΠΎΠ² Π½Π° Debian (Ubuntu) Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ:
ΠΡΠ»ΠΈ Π»ΠΎΠ³ΠΈ Π½Π΅ ΡΠΊΠ°Π·Π°Π½Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ, ΡΠΎ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² /var/lib/mysql
Π ΠΎΡΠ°ΡΠΈΡ Π»ΠΎΠ³ΠΎΠ²
ΠΠ΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΡΠΆΠΈΠΌΠ°ΡΡ (Π°ΡΡ ΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ, ΡΠΎΡΠΈΡΠΎΠ²Π°ΡΡ) ΡΠ°ΠΉΠ»Ρ Π»ΠΎΠ³ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈ ΠΌΠ΅Π½ΡΡΠ΅ ΠΌΠ΅ΡΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΈΠ»ΠΈΡΡ logrotate, ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π² ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ /etc/logrotate.d/mysql-server :
Π‘ΠΆΠΈΠΌΠ°Π΅Ρ ΠΈ Π°ΡΡ ΠΈΠ²ΠΈΡΡΠ΅Ρ Π½ΡΠΆΠ½ΡΠ΅ Π»ΠΎΠ³ΠΈ, ΠΎΡΠΈΡΠ°Π΅Ρ ΡΠ°ΠΉΠ»Ρ
DDL Log
MySQL ΡΠ°ΠΊΠΆΠ΅ Π²Π΅Π΄Π΅Ρ Π»ΠΎΠ³ ΡΠ·ΡΠΊΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ . Π Π½Π΅Π³ΠΎ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΈΠΏΠ° DROP_TABLE and ALTER_TABLE. ΠΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ. [http://dev.mysql.com/doc/refman/5.7/en/ddl-log.html DDL Log] β Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», Π½Π΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠΉΡΠ΅ ΠΈ Π½Π΅ ΡΠ΄Π°Π»ΡΠΉΡΠ΅ Π΅Π³ΠΎ.
Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅
ΠΡΠ΅Π³Π΄Π° Π²ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ Π»ΠΎΠ³ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π»ΠΎΠ³ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΡΠ°Π±ΠΎΡΡ memcached. ΠΠΎΠ³ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ MySQL.
ΠΡΠΎΡ ΡΠ΅ΠΊΡΡ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π»Π΅Ρ Π½Π°Π·Π°Π΄. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠ΅ Π·Π΄Π΅ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΈ ΡΠΎΡΡ ΠΌΠΎΠ³Π»ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡ Π² Mysql ΠΈ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΠ°ΠΊ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π±Π°Π·Π΅ 1045 Access denied for user
ΠΡΠΈΠΌΠ΅ΡΡ ad-hoc Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄Π»Ρ ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΠΎΠ½ΡΡΠΈΡ ΠΎ ΡΠ°ΡΠ΄ΠΈΠ½Π³Π΅ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Master-Master ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° MySQL Π·Π° 6 ΡΠ°Π³ΠΎΠ²
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΡΠ°Π²Π½ΠΎΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π² Mysql
ΠΠ½Π°Π»ΠΈΠ· ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅) Π² MySQL Ρ ΠΏΠΎΠΌΠΎΡΡΡ Percona Toolkit
Check-unused-keys Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Mysql LIMIT
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Master-Slave ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° MySQL Π·Π° 6 ΠΏΡΠΎΡΡΡΡ ΡΠ°Π³ΠΎΠ²
Π’ΠΈΠΏΡ ΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ MySQL
ΠΠ°ΠΏΡΠΎΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΈ Mysql: SELECT version()
ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Mysql ΠΏΠΎΠ΄ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ.
3 ΠΏΡΠΈΠΌΠ΅ΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π² JOIN Π·Π°ΠΏΡΠΎΡΠ°Ρ
ΠΡΡΡΡΡΠΉ ΠΏΠΎΠ΄ΡΡΠ΅Ρ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π·Π° ΡΠ°Π·Π½ΡΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Π ΠΊΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡΠΌΠΈ Π² MySQL
ΠΠ½Π°Π»ΠΈΠ· ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ EXPLAIN
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° query_cache_size
Π§ΡΠΎ Π·Π½Π°ΡΠΈΡ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΡΠΈΠ½ΠΈΡΡ
ΠΡΠ°Π²ΠΈΠ»Π° Π²ΡΠ±ΠΎΡΠ° ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² Mysql
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΉ Π΄Π»Ρ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΉ
ΠΡΡΠ½Π°Π»Ρ (logs) Π² MySQL
Π MySQL Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ 4 Π²ΠΈΠ΄Π° ΠΆΡΡΠ½Π°Π»Π° (Π»ΠΎΠ³Π°) ΠΈ ΠΏΡΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠ΅ΡΡΡΠ·Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π±Π°Π·Π°ΠΌΠΈ Π½Π° MySQL Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° Π½ΠΈΠΌΠΈ ΡΠ»Π΅Π΄ΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ Π»ΠΎΠ³ Ρ Π½Π°Ρ Π·Π° ΡΡΡΠΊΠΈ Π½Π°Π±ΠΈΡΠ°Π΅Ρ ΠΎΠΊΠΎΠ»ΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°, Π° ΡΠ°Π·ΠΌΠ΅Ρ ΠΆΡΡΡΠΊΠΎΠ³ΠΎ Π΄ΠΈΡΠΊΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ ΠΈ Π·Π° Π½ΠΈΠΌΠΈ Π½Π°Π΄ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π·Π° Π±ΠΈΠ½Π°ΡΠ½ΡΠΌ Π»ΠΎΠ³ΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π»ΠΎΠ³ΠΈ (ΠΆΡΡΠ½Π°Π»Ρ) Π² MySQL ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½Π΅ΡΡΠΈ Π½Π΅ΠΌΠ°Π»ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ.
ΠΡΠ°ΠΊ, ΠΊΠ°ΠΊΠΈΠ΅ Π»ΠΎΠ³ΠΈ Π²Π΅Π΄ΡΡ MySQL? ΠΡΠΎ:
1. Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ Π»ΠΎΠ³ (binary log)
2. Π»ΠΎΠ³ ΠΎΡΠΈΠ±ΠΎΠΊ (error log)
3. Π»ΠΎΠ³ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡΠΎΠ² (slow query log)
4. Π»ΠΎΠ³ Π·Π°ΠΏΡΠΎΡΠΎΠ² (general query log)
5. Π»ΠΎΠ³ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΉ (relay log)
ΠΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΏΠΎ-ΡΠ²ΠΎΠ΅ΠΌΡ ΠΏΠΎΠ»Π΅Π·Π΅Π½.
ΠΠΈΠ½Π°ΡΠ½ΡΠΉ Π»ΠΎΠ³
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ Π»ΠΎΠ³Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΠ»ΠΈΡΡ mysqlbinlog.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² my.cnf
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³Π°:
log_bin = /var/log/mysql/mysql-bin.log
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ, ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 4096 Π±Π°ΠΉΡ, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 1073741824 Π±Π°ΠΉΡ (1 Π³ΠΈΠ³Π°Π±Π°ΠΉΡ):
max_binlog_size= 500M
Π‘ΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π½Π΅ΠΉ Ρ
ΡΠ°Π½ΠΈΡΡΡ:
expire_logs_days = 3
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
PURGE BINARY LOGS TO ‘mysql-bin.000’;
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΎΠ² Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΠΎΠΉ Π΄Π°ΡΡ:
PURGE BINARY LOGS BEFORE ‘YYYY-MM-DD hh:mm:ss’;
ΠΠΎΠ³ ΠΎΡΠΈΠ±ΠΎΠΊ
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΡΠ»ΡΡΠ°ΡΡ ΡΠ±ΠΎΠ΅Π². ΠΠΎΠ³ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°Ρ , Π·Π°ΠΏΡΡΠΊΠ°Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°Ρ . ΠΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ (warnings).
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² my.cnf
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³Π°:
log_error = /var/log/mysql/mysql.err
Π€Π»Π°Π³, ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ ΡΡΠΎΠΈΡ Π»ΠΈ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π² Π»ΠΎΠ³ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ (Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π½ΡΠ»Ρ):
log_warnings = 1
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ ΠΊ Π½ΠΎΠ²ΠΎΠΌΡ ΡΠ°ΠΉΠ» Π»ΠΎΠ³Π°:
shell> mysqladmin flush-logs
ΠΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ°ΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π»ΠΎΠ³Π° (Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ fluch ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»ΡΠ½):
shell> mv host_name.err-old backup-directory
ΠΠΎΠ³ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΡΠ»ΠΈ Π΅ΡΡΡ ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ·-Π·Π° Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΊ Π±Π°Π·Π΅, ΡΠΎ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π»ΠΎΠ³ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΡΠΎΡ Π»ΠΎΠ³ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² my.cnf
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³Π°:
log_slow_queries = /var/log/mysql/mysql_slow.log
Π‘ΠΎ ΡΠΊΠΎΠ»ΡΠΊΠΈ ΡΠ΅ΠΊΡΠ½Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ β 1 ΡΠ΅ΠΊΡΠ½Π΄Π°, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 10 ΡΠ΅ΠΊΡΠ½Π΄:
long_query_time = 10
ΠΡΠ»ΠΈ Π½Π°Π΄ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ, Π½Π°Π΄ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ:
log-queries-not-using-indexes
ΠΠΎΠ³ Π·Π°ΠΏΡΠΎΡΠΎΠ²
ΠΠΎΠ³ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠ΅ SQL Π·Π°ΠΏΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ. Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π»ΠΎΠ³. ΠΠ±ΡΡΠ½ΠΎ Π»ΠΎΠ³ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠ°Π½Π΄ (Ρ.Π΅. ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ½ ΡΡΠ°Π» Π½Π΅Π½ΡΠΆΠ½ΡΠΌ). ΠΠΎΠ³ Π²Π΅Π΄ΡΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΡΡΡ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠΎΡ Π»ΠΎΠ³ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ). Π’Π°ΠΊ ΡΡΠΎ Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ) ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ, ΡΠΎ ΡΡΠΎΡ Π»ΠΎΠ³ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ Π² ΡΠ°ΠΊΠΈΡ ΡΠ΅Π»ΡΡ . ΠΠΎΠ³ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΠ»ΡΡΠ°Π΅Π², ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ ΠΈ Π² ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΡΡΠ½ΠΎ, ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° Ρ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ , Π½ΠΎ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ» ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ SQL-Π°). Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π·Π°ΡΠΈΡΠ°ΡΡ Π»ΠΎΠ³ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΏΠ°ΡΠΎΠ»Π΅ΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΎ ΠΏΠ°ΡΠΎΠ»ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² my.cnf
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³Π°:
log = /var/log/mysql/mysql.log
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ Π΄ΡΡΠ³ΠΈΡ
Π»ΠΎΠ³ΠΎΠ², ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° fluch Π½Π΅ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π»ΠΎΠ³Π°. ΠΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΡΡΠ½ΡΡ:
shell> mv host_name.log host_name-old.log
shell> mysqladmin flush-logs
shell> mv host_name-old.log backup-directory
ΠΠΎΠ³ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΉ
ΠΠ΄Π΅ΡΡ Π»ΠΎΠ³ΠΈΡΡΡΡΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠ΅ ΠΏΠΎ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΉ. ΠΠ°ΠΊ ΠΈ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ Π»ΠΎΠ³, ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· ΡΠ°ΠΉΠ»ΠΎΠ², ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π² my.cnf
ΠΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³Π°:
relay-log = /var/log/mysql/mysql-relay-bin.log
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ:
max_relay_log_size = 500Π
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠ°ΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π»ΠΎΠ³Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ (slave) ΡΠ΅ΡΠ²Π΅ΡΠ΅:
shell> cat new_relay_log_name.index >> old_relay_log_name.index
shell> mv old_relay_log_name.index new_relay_log_name.index
ΠΠΎΠΌΠ°Π½Π΄Π° fluch logs ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΡΠΎΡΠ°ΡΠΈΡ Π»ΠΎΠ³Π°.
15 ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ mysqlbinlog Π΄Π»Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² MySQL
ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Β» ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ Β» ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ MySQL Β» 15 ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ mysqlbinlog Π΄Π»Ρ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π² MySQL
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ Π½ΠΎΠ²ΡΡ ΡΠ°Π±Π»ΠΈΡΡ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅, ΡΡΠΈ ΡΠΎΠ±ΡΡΠΈΡ Ρ ΡΠ°Π½ΡΡΡΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΆΡΡΠ½Π°Π»Π°Ρ .
ΠΠ²ΠΎΠΈΡΠ½ΡΠΉ ΠΆΡΡΠ½Π°Π» ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π² ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ MySQL, Π³Π΄Π΅ Π³Π»Π°Π²Π½ΡΠΉ ΡΠ΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ² Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°.
ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π΄Π΅Π»ΠΎ Ρ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΆΡΡΠ½Π°Π»Π°, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΠ΅ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π² MySQL.
ΠΠΎΠΌΠ°Π½Π΄Π° mysqlbinlog ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ΅. ΠΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mysqlbinlog Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΡΠΈΠ»ΠΈΡΠ°ΠΌ mysql.
Π ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mysqlbinlog:
1. ΠΠΎΠ»ΡΡΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΡΠ΅ΠΊΡΡΠΈΡ Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΠΆΡΡΠ½Π°Π»ΠΎΠ²
ΠΠ· mysql Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ show binary logs, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡ Π²ΡΠ΅ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΆΡΡΠ½Π°Π»Ρ Π² Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΆΡΡΠ½Π°Π», ΡΠΎ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠ»Ρ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ /var/lib/mysql, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
2. ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Mysqlbinlog
ΠΠ°Π»Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΆΡΡΠ½Π°Π»Π° mysql (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: mysqld-bin.000001) Π² ΡΠ΄ΠΎΠ±Π½ΠΎΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΡΠΌΠ°ΡΠ΅.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅.
3. ΠΠΎΠ»ΡΡΠΈΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
ΠΡΠ²ΠΎΠ΄ mysqlbinlog ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π»ΠΎΠΌΠ»ΡΡΡΠΈΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ±ΡΠ°ΡΡΠ²Π°Π΅Ρ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠ΅ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Β«crmΒ», Π² ΡΠ°ΠΉΠ» crm-events.txt
4. ΠΡΠΊΠ»ΡΡΠΈΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΆΡΡΠ½Π°Π» Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ mysqlbinlog Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ·-Π·Π° ΡΠ±ΠΎΡ, Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠ·Π΄Π°Π²Π°Π» Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΠΆΡΡΠ½Π°Π»Ρ. ΠΡΠ»ΠΈ Π΄Π°, ΡΠΎ Π²Ρ ΠΎΠΊΠ°ΠΆΠ΅ΡΠ΅ΡΡ Π² ΡΠΈΠΊΠ»Π΅, Π³Π΄Π΅ Π²Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ².
ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΎΠΏΡΠΈΡ Β«βto-last-logΒ». ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΈΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ root Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
ΠΠ»Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mysqldump, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π² ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π²ΠΎΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΠΎΡ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ mysqlbinlog.
5. Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ base-64 Π² Π²ΡΠ²ΠΎΠ΄Π΅ BINLOG
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΡΠΈΡ base64-output, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Π²ΡΠ²ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ BINLOG, Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² base64.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ base64-output:
never: ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Β«neverΒ», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, Π±ΡΠ΄ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ BINLOG Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ base64 Π² Π²ΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅.
Ρ.Π΅. ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Β«neverΒ», Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mysqlbinlog Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ BINLOG Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ base64.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΠ°Ρ ΠΎΠΏΡΠΈΡ Β«neverΒ» Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° base64 Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Π΄Π²ΠΎΠΈΡΠ½ΡΡ ΡΠ°ΠΉΠ»Π°Ρ ΠΆΡΡΠ½Π°Π»Π°, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠΎΠ±ΡΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠΎΠΊ.
always: ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠΈΡ Β«alwaysΒ», ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠΈ BINLOG, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ ΠΎΡΠ»Π°ΠΆΠΈΠ²Π°Π΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π²ΡΠ²ΠΎΠ΄ Π²ΡΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Β«alwaysΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΠΈ BINLOG.
auto: ΠΡΠΎ ΠΎΠΏΡΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠΈΡ base64-decode, ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ auto. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ mysqlbinlog Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ°ΡΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ BINLOG ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΡΠΎΠ±ΡΡΠΈΠΉ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠΎΠ±ΡΡΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠΎΠΊ ΠΈ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΡΠΌΠ°ΡΠ°.
ΠΠ±Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
6. ΠΡΠ»Π°Π΄ΠΎΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅ mysqlbinlog.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΎΠΏΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΠ°ΠΌΡΡΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π°.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ debug-info Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΎΠΏΡΠΈΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
7. ΠΡΠΎΠΏΡΡΡΠΈΡΡ ΠΏΠ΅ΡΠ²ΡΠ΅ N ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΏΠΈΡΠ΅ΠΉ
ΠΠΌΠ΅ΡΡΠΎ ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° mysql, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΅Π³ΠΎ ΡΠ°ΡΡΡ, ΡΠΊΠ°Π·Π°Π² ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅.
ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΏΠ΅ΡΠ²ΡΠ΅ 10 Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ ΠΆΡΡΠ½Π°Π»Π΅ bin mysql.
Π§ΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠΌΠ΅Ρ ΡΠΎΠ±ΡΡΠΈΡ Π΄Π»Ρ ΡΠΌΠ΅ΡΠ΅Π½ΠΈΡ, ΠΈ Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡ ΠΏΠ΅ΡΠ²ΡΠ΅ 10 000 Π·Π°ΠΏΠΈΡΠ΅ΠΉ (ΡΠΎΠ±ΡΡΠΈΠΉ) ΠΈΠ· ΠΆΡΡΠ½Π°Π»Π°.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΆΡΡΠ½Π°Π»Π°, Π½Π΅Ρ 10 000 Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΎΠ½ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΎΠ±ΡΡΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π½Π° Π²ΡΡ ΠΎΠ΄Π΅.
8. Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ Π² ΡΠ°ΠΉΠ»
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Linux > ΠΈ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ Π² ΡΠ°ΠΉΠ», ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
9. ΠΠ·Π²Π»Π΅ΡΡ Π·Π°ΠΏΠΈΡΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ±ΡΡΠ½ΠΎ Π² Π±ΠΈΠ½Π°ΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ mysql Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΠΎΠ·ΠΈΡΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅. ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ°ΡΡΠΈΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ mysqlbinlog, Π³Π΄Π΅ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Β«15028Β» β Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°ΡΠ½Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 15028.
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΡΠ°ΡΡΠΎΠ²Π°Ρ ΠΏΠΎΠ·ΠΈΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΌΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌΡ ΠΆΡΡΠ½Π°Π»Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅.
10. ΠΠ·Π²Π»Π΅ΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΈΡΠ°ΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° mysql Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
ΠΡΡΠ΅ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΈΠ· binlog ΡΠΎΡΠ½ΠΎ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ 15028. ΠΠΎΠ³Π΄Π° Π²Ρ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ»ΠΎΠ² Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌΡ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠΌΡ ΠΆΡΡΠ½Π°Π»Ρ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅.
11. Π‘Π±ΡΠΎΡΠΈΡΡ ΠΆΡΡΠ½Π°Π»Ρ Π΄Π»Ρ ΡΠΈΡΡΠΎΠ³ΠΎ Π²ΡΠ²ΠΎΠ΄Π° Binlog
ΠΠΎΠ³Π΄Π° Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΆΡΡΠ½Π°Π» Π½Π΅ Π±ΡΠ» ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΊΡΡΡ, Π½Π° Π²ΡΡ ΠΎΠ΄Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π·Π΄Π΅ΡΡ, ΠΎΠ½ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΡΠ°ΠΉΠ» binlog Π½Π΅ Π±ΡΠ» Π·Π°ΠΊΡΡΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
ΠΠΎΠ³Π΄Π° Π²Ρ ΡΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ ΠΊ mysql ΠΈ ΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΆΡΡΠ½Π°Π»Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΆΡΡΠ½Π°Π»Ρ ΠΈ ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ mysqlbinlog, Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ binlog Π½Π΅ Π·Π°ΠΊΡΡΠ» Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² Π²Π°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄Π΅ mysqlbinlog.
12. ΠΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ SQL-Π·Π°ΠΏΡΠΎΡΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΠΊΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π² Π²ΡΠ²ΠΎΠ΄Π΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΏΠΎΠΌΠΈΠΌΠΎ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ², Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π²ΡΠ²ΠΎΠ΄Π΅ mysqlbinlog.
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ°ΡΡΠΈΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π·Π΄Π΅ΡΡ, ΠΎΠ½ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ SQL-Π·Π°ΠΏΡΠΎΡΡ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΠΆΡΡΠ½Π°Π»Π°.
Π ΠΊΠΎΡΠΎΡΠΊΠΎΠΉ ΡΠΎΡΠΌΠ΅ Π²Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
13. ΠΡΠΎΡΠΌΠΎΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ΠΠΈΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΡΠ±ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ Π·Π° ΡΡΠΎΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π€ΠΎΡΠΌΠ°Ρ ΠΌΠ΅ΡΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΡΠΌ, ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠΈΠΏΠ°ΠΌΠΈ DATETIME ΠΈ TIMESTAMP ΡΠ΅ΡΠ²Π΅ΡΠ° MYSQL. ΠΡΠ°ΠΊ, Ρ Π²Π°Ρ Π·Π΄Π΅ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ.
14. ΠΡΠΎΡΠΌΠΎΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ΠΠ°ΠΊ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°ΡΠ°Π»Π°, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π²ΡΠ΅ΠΌΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
ΠΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ. ΠΡΠ±ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΠΈΠ· Π±ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΆΡΡΠ½Π°Π»Π° mysql, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ.
15. ΠΠΎΠ»ΡΡΠΈΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΆΡΡΠ½Π°Π» Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°
Π‘ Π²Π°ΡΠ΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ° Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΠ΅ ΠΆΡΡΠ½Π°Π»Ρ mysql, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ ΡΠ΅ΡΠ²Π΅ΡΠ΅.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·Π°ΡΡ IP-Π°Π΄ΡΠ΅Ρ, ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π½ΠΈΠΆΠ΅.
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅:
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊΠ°Ρ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°:
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΠ°ΡΡΠΈΡΠ½ΡΠΉ Π²ΡΠ²ΠΎΠ΄ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠ°Π² Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ βis not allowed to connectβ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π² ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° (Ρ. Π΅. ΠΊΠΎΠ³Π΄Π° Π·Π°ΠΏΡΡΠ΅Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° mysqlbinlog)
ΠΡΠ»ΠΈ Π²Ρ Π½Π°ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²ΡΠ΄Π΅Π»ΠΈΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΡΠ΅ΠΊΡΡΠ° ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Ctrl+Enter.
Mysql ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ binlog
Events are preceded by header comments that provide additional information. For example:
In the first line, the number following at indicates the file offset, or starting position, of the event in the binary log file.
The second line starts with a date and time indicating when the statement started on the server where the event originated. For replication, this timestamp is propagated to replica servers. server id is the server_id value of the server where the event originated. end_log_pos indicates where the next event starts (that is, it is the end position of the current event + 1). thread_id indicates which thread executed the event. exec_time is the time spent executing the event, on a replication source server. On a replica, it is the difference of the end execution time on the replica minus the beginning execution time on the source. The difference serves as an indicator of how much replication lags behind the source. error_code indicates the result from executing the event. Zero means that no error occurred.
When using event groups, the file offsets of events may be grouped together and the comments of events may be grouped together. Do not mistake these grouped events for blank file offsets.
mysqlbinlog ‘s own connection compression does less if transaction payloads are already compressed, but still operates on uncompressed transactions and headers.
For more information on binary log transaction compression, see Section 5.4.4.5, βBinary Log Transaction Compressionβ.
Table 4.22 mysqlbinlog Options
Display a help message and exit.
This option determines when events should be displayed encoded as base-64 strings using BINLOG statements. The option has these permissible values (not case-sensitive):
On a computer having multiple network interfaces, use this option to select which interface to use for connecting to the MySQL server.
| Command-Line Format | —binlog-row-event-max-size=# |
|---|---|
| Type | Numeric |
| Default Value | 4294967040 |
| Minimum Value | 256 |
| Maximum Value | 18446744073709547520 |
Specify the maximum size of a row-based binary log event, in bytes. Rows are grouped into events smaller than this size if possible. The value should be a multiple of 256. The default is 4GB.
The directory where character sets are installed. See Section 10.15, βCharacter Set Configurationβ.
Compress all information sent between the client and the server if possible. See Section 4.2.8, βConnection Compression Controlβ.
This option was added in MySQL 8.0.17. As of MySQL 8.0.18 it is deprecated. Expect it to be removed in a future version of MySQL. See Configuring Legacy Connection Compression.
This option was added in MySQL 8.0.18.
While db_name is the default database, statements are output whether they modify tables in db_name or a different database.
Suppose that the binary log was created by executing these statements using statement-based-logging:
Print some debugging information when the program exits.
Print debugging information and memory and CPU usage statistics when the program exits.
A hint about which client-side authentication plugin to use. See Section 6.2.17, βPluggable Authenticationβ.
Read this option file after the global option file but (on Unix) before the user option file. If the file does not exist or is otherwise inaccessible, an error occurs. If file_name is not an absolute path name, it is interpreted relative to the current directory.
For additional information about this and other option-file options, see Section 4.2.2.3, βCommand-Line Options that Affect Option-File Handlingβ.
Use only the given option file. If the file does not exist or is otherwise inaccessible, an error occurs. If file_name is not an absolute path name, it is interpreted relative to the current directory.
For additional information about this and other option-file options, see Section 4.2.2.3, βCommand-Line Options that Affect Option-File Handlingβ.
For additional information about this and other option-file options, see Section 4.2.2.3, βCommand-Line Options that Affect Option-File Handlingβ.
Read binary log files even if they are open or were not closed properly.
Request from the server the public key required for RSA key pair-based password exchange. This option applies to clients that authenticate with the caching_sha2_password authentication plugin. For that plugin, the server does not send the public key unless requested. This option is ignored for accounts that do not authenticate with that plugin. It is also ignored if RSA-based password exchange is not used, as is the case when the client connects to the server using a secure connection.
For information about the caching_sha2_password plugin, see Section 6.4.1.2, βCaching SHA-2 Pluggable Authenticationβ.
Display a hex dump of the log in comments, as described in Section 4.6.9.1, βmysqlbinlog Hex Dump Formatβ. The hex output can be helpful for replication debugging.
Get the binary log from the MySQL server on the given host.
Tell the MySQL Server to use idempotent mode while processing updates; this causes suppression of any duplicate-key or key-not-found errors that the server encounters in the current session while processing updates. This option may prove useful whenever it is desirable or necessary to replay one or more binary logs to a MySQL Server which may not contain all of the data to which the logs refer.
For additional information about this and other option-file options, see Section 4.2.2.3, βCommand-Line Options that Affect Option-File Handlingβ.
For additional information about this and other option-file options, see Section 4.2.2.3, βCommand-Line Options that Affect Option-File Handlingβ.
Skip the first N entries in the log.
Specify the number of open file descriptors to reserve.
Specifying a password on the command line should be considered insecure. To avoid giving the password on the command line, use an option file. See Section 6.1.2.1, βEnd-User Guidelines for Password Securityβ.
The TCP/IP port number to use for connecting to a remote server.
Print the program name and all options that it gets from option files.
For additional information about this and other option-file options, see Section 4.2.2.3, βCommand-Line Options that Affect Option-File Handlingβ.
The transport protocol to use for connecting to the server. It is useful when the other connection parameters normally result in use of a protocol other than the one you want. For details on the permissible values, see Section 4.2.7, βConnection Transport Protocolsβ.
The REPLICATION SLAVE privilege is required to use these options.
Read the binary log from a MySQL server rather than reading a local log file. This option requires that the remote server be running. It works only for binary log files on the remote server, not relay log files.
The REPLICATION SLAVE privilege is required to use this option.
This option was added in MySQL 8.0.19.
Statements in which table names are qualified with database names are not rewritten to use the new name when using this option.
To employ multiple rewrite rules, specify the option multiple times, as shown here:
Display only those events created by the server having the given server ID.
The path name to a file in PEM format containing a client-side copy of the public key required by the server for RSA key pair-based password exchange. This option applies to clients that authenticate with the sha256_password or caching_sha2_password authentication plugin. This option is ignored for accounts that do not authenticate with one of those plugins. It is also ignored if RSA-based password exchange is not used, as is the case when the client connects to the server using a secure connection.
This option applies only if the server was started with the shared_memory system variable enabled to support shared-memory connections.
Display only the statements contained in the log, without any extra information or row-based events. This is for testing only, and should not be used in production systems. It is deprecated, and you should expect it to be removed in a future release.
Do not display any GTIDs in the output. This is needed when writing to a dump file from one or more binary logs containing GTIDs, as shown in this example:
The use of this option is otherwise not normally recommended in production.
On Windows, this option applies only if the server was started with the named_pipe system variable enabled to support named-pipe connections. In addition, the user making the connection must be a member of the Windows group specified by the named_pipe_full_access_group system variable.
OFF : Disable FIPS mode.
ON : Enable FIPS mode.
STRICT : Enable β strict β FIPS mode.
The permissible ciphersuites for encrypted connections that use TLSv1.3. The value is a list of one or more colon-separated ciphersuite names. The ciphersuites that can be named for this option depend on the SSL library used to compile MySQL. For details, see Section 6.3.2, βEncrypted Connection TLS Protocols and Ciphersβ.
This option was added in MySQL 8.0.16.
The permissible TLS protocols for encrypted connections. The value is a list of one or more comma-separated protocol names. The protocols that can be named for this option depend on the SSL library used to compile MySQL. For details, see Section 6.3.2, βEncrypted Connection TLS Protocols and Ciphersβ.
The user name of the MySQL account to use when connecting to a remote server.
Verify checksums in binary log files.
Display version information and exit.
The compression level to use for connections to the server that use the zstd compression algorithm. The permitted levels are from 1 to 22, with larger values indicating increasing levels of compression. The default zstd compression level is 3. The compression level setting has no effect on connections that do not use zstd compression.
This option was added in MySQL 8.0.18.
Processing multiple files. If you have more than one binary log to execute on the MySQL server, the safe method is to process them all using a single connection to the server. Here is an example that demonstrates what may be unsafe :
Another approach is to write all the logs to a single file and then process the file:
You can specify more than one archive file, for example:
