
ΠΠ°ΠΏΡΠ΅Π΄ΡΠΊΡΡ Π½Π΅ ΡΠΏΠΈΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π΄Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ Π΄ΠΎ Π½ΠΎΠ²ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π½Π° MySQL ΡΡΠ°Π²Π°Ρ Π²ΡΠ΅ ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΈ. ΠΠ΅ΠΎΡΠ΄Π°Π²Π½Π° Π² Π΅Π΄ΠΈΠ½ ΠΎΡ Π½Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ Π΄ΠΎΠΉΠ΄Π΅ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ ΠΏΡΠΈΡΡΠ½ΠΈΡΠ΅ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ Π½Π° Percona Server 5.7 Π΄ΠΎ Π²Π΅ΡΡΠΈΡ 8. ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ΅ ΡΠ»ΡΡΠ²Π° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Ubuntu Linux 16.04. ΠΠ°ΠΊ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ ΠΏΡΠ΅ΡΡΠΎΠΉ ΠΈ Ρ ΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ°Ρ
ΠΌΠ΅ ΠΏΡΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° - ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ Π² ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ.
ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ°
ΠΡΡΠΊΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΡΠ²ΡΡΠ° Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π΅ ΡΠ²ΡΡΠ·Π°Π½ΠΎ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ°: ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π·Π° Π»ΠΈΠΌΠΈΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΡΡ ΠΎΡ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ.
ΠΡΠ΅Π΄ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ΠΏΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ ΡΠ΅ ΠΎΠ±ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΠΎΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ:
- ;
- ;
- ;
- .
Π ΡΠ΅ ΡΡΡΡΠ°Π²ΠΈΠΌ ΠΏΠ»Π°Π½ Π·Π° Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅:
- ΠΠΎΡΠΈΠ³ΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π΅ΡΠ΅ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ.
- ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ° Ρ ΡΡΠΈΠ»ΠΈΡΠΈΡΠ΅.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ slave-Π±Π°Π·ΠΈΡΠ΅, ΠΊΠ°ΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
percona-server-server. - ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ ΠΌΠ°ΠΉΡΡΠΎΡΠ°, ΠΈΠ·Π±ΠΈΡΠ°ΠΉΠΊΠΈ ΡΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ.
ΠΠ΅ΠΊΠ° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π²ΡΡΠΊΠ° ΡΠΎΡΠΊΠ° ΠΎΡ ΠΏΠ»Π°Π½Π° ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊΠ²ΠΎ Π±ΠΈ ΠΌΠΎΠ³Π»ΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠΊΠ°.
ΠΠΠΠΠ! ΠΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° MySQL-ΠΊΠ»ΡΡΡΠ΅ΡΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Galera ΠΈΠΌΠ° ΡΠ²ΠΎΠΈΡΠ΅ Π½ΡΠ°Π½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΡΠ° ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π² ΡΡΠ°ΡΠΈΡΡΠ°. ΠΠ΅ Π±ΠΈΠ²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π² ΡΠ°ΠΊΡΠ² ΡΠ»ΡΡΠ°ΠΉ.
Π§Π°ΡΡ 1: ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅
Π 8-Π° Π²Π΅ΡΡΠΈΡ Π½Π° MySQL Π΅ ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π°Ρ query_cache. ΠΡΡΡΠ½ΠΎΡΡ ΡΠΎΠΉ Π±Π΅ ΠΎΡΠ΅ Π² Π²Π΅ΡΡΠΈΡ 5.7, Π½ΠΎ ΡΠ΅Π³Π° Π΅ . Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° ΠΏΡΠ΅ΠΌΠ°Ρ
Π½Π΅ΠΌ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ. Π Π·Π° ΠΊΠ΅ΡΠΈΡΠ°Π½Π΅ Π½Π° Π·Π°ΡΠ²ΠΊΠΈ ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΡΠ½ΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, .
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π°ΠΌΠ΅ΡΠΈΡ
ΠΌΠ΅ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ Π·Π° innodb_file_format. ΠΠΊΠΎ Π² MySQL 5.7 ΠΈΠΌΠ°ΡΠ΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·Π±ΠΎΡ Π½Π° ΡΠΎΡΠΌΠ°Ρ Π½Π° InnoDB, ΡΠΎ 8-Π° Π²Π΅ΡΡΠΈΡ Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ .
ΠΠ°ΡΠΈΡΡ ΠΈΠ·Π²ΠΎΠ΄ β ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ:
-
query_cache_type,query_cache_limitΠΈquery_cache_size; -
innodb_file_formatΠΈinnodb_file_format_max.
ΠΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Percona Server. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΡΡΡΠ²ΡΡΠ° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΠΌ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ mysql_config_test, Π° Π΄ΠΎ Π½Π΅Ρ ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅. ΠΡΠΈΠΌΠ΅Ρ Π·Π° ΡΠ΅ΡΡ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° percona-server:
mkdir -p {mysql_config_test,mysql_data,mysql_logs}
cp -r /etc/mysql/conf.d/* mysql_config_test/
docker run --name some-percona -v $(pwd)/mysql_config_test:/etc/my.cnf.d/ -v $(pwd)/mysql_data/:/var/lib/mysql/ -v $(pwd)/mysql_logs/:/var/log/mysql/ -e MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD} -d percona:8-centosΠ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅: Π² Π»ΠΎΠ³Π°Ρ Docker ΠΈΠ»ΠΈ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ Ρ Π»ΠΎΠ³Π°ΠΌΠΈ - Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ - Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ.
ΠΠΎΡ ΡΡΠΎ Ρ Π½Π°Ρ Π±ΡΠ»ΠΎ:
2020-04-03T12:44:19.670831Z 0 [ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅] [MY-011068] [Π‘Π΅ΡΠ²Π΅Ρ] Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ 'expire-logs-days' ΡΡΡΠ°ΡΠ΅Π» ΠΈ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ Π² Π±ΡΠ΄ΡΡΠΈΡ
Π²Π΅ΡΡΠΈΡΡ
. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ binlog_expire_logs_seconds Π²ΠΌΠ΅ΡΡΠΎ.
2020-04-03T12:44:19.671678Z 0 [ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅] [MY-013242] [Π‘Π΅ΡΠ²Π΅Ρ] --character-set-server: 'utf8' Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠΌ Π΄Π»Ρ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² UTF8MB3, Π½ΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠΌ Π΄Π»Ρ UTF8MB4. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ UTF8MB4 Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎΡΡΠΈ.
2020-04-03T12:44:19.671682Z 0 [ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠ΅] [MY-013244] [Π‘Π΅ΡΠ²Π΅Ρ] --collation-server: 'utf8_general_ci' ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ΄ΠΎΠΌ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅Π³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² UTF8MB3. ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ UTF8MB4 Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΡΠ²ΠΎΠ΄ΠΎΠΌ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ expire-logs-days.
Π§Π°ΡΡΡ 2: ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ Π΅ΡΡΡ 2 ΡΡΠΈΠ»ΠΈΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±Π°Π·Ρ Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ°ΡΠ½Π΅ΠΌ Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠΈΠ»ΠΈΡΡ mysqlcheck. ΠΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
mysqlcheck -u root -p --all-databases --check-upgradeΠΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Ρ, ΡΡΠΈΠ»ΠΈΡΠ° Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΠΊΠΎΠ΄ΠΎΠΌ 0:

ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π²Π΅ΡΡΠΈΡΡ
MySQL Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΡΠΈΠ»ΠΈΡΠ° (Π² ΡΠ»ΡΡΠ°Π΅ Percona ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ percona-mysql-shell). ΠΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΌΠ΅Π½ΠΎΠΉ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡ mysql ΠΈ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° SQL-ΠΊΠΎΠ΄Π° ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ MySQL. ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΡΠ΅Π· Π½Π΅Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
mysqlsh -- util check-for-server-upgrade { --user=root --host=1.1.1.1 --port=3306 } --config-path=/etc/mysql/my.cnfΠ Π²ΠΎΡ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΡ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ:

Π ΠΎΠ±ΡΠ΅ΠΌ, Π½ΠΈΡΠ΅Π³ΠΎ ΠΊΡΠΈΡΠΈΡΠ½ΠΎΠ³ΠΎ β ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°Ρ
(Π²ΠΆ. ΠΏΠΎ-Π΄ΠΎΠ»Ρ). ΠΠ±ΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:

ΠΡ ΡΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅ ΠΎ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡΡ
Π²ΡΡΠ΅, ΡΠ²ΠΈΠ΄Π΅ΡΠ΅Π»ΡΡΡΠ²ΡΡΡΠΈΡ
ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ
Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ UTF-8 Π² MySQL Π΄ΠΎ Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ , ΡΠ°ΠΊ ΠΊΠ°ΠΊ Ρ
ΡΠ°Π½ΠΈΠ»Π° ΡΠΎΠ»ΡΠΊΠΎ 3 Π±Π°ΠΉΡΠ° Π²ΠΌΠ΅ΡΡΠΎ 4. Π MySQL 8 ΡΡΠΎ Π½Π°ΠΊΠΎΠ½Π΅Ρ-ΡΠΎ : Π°Π»ΠΈΠ°Ρ utf8 Π²ΡΠΊΠΎΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ΅ utf8mb4, Π° ΡΡΠ°ΡΡΠ΅ ΡΡΠΎΠ»Π±ΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ
ΡΡΠ°Π½ΡΡ utf8mb3. Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΡΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ° utf8mb3 Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½Π°, Π½ΠΎ Π½Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ΅Π»ΠΈΠ·Π΅. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΡΠ΅ΡΠΈΠ»ΠΈ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΆΠ΅ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅ΠΉ ΠΈΠ½ΡΡΠ°Π»Π»ΡΡΠΈΠΈ Π‘Π£ΠΠ, ΠΏΠΎΡΠ»Π΅ Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
Π§Π°ΡΡΡ 3: ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ²
ΠΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΡΠΊΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΡΠ΄Π΅ΡΠ΅Π½ ΠΏΠ»Π°Π½?.. Π Π°Π·Π±ΠΈΡΠ°ΠΉΠΊΠΈ, ΡΠ΅ Π½ΡΠ°Π½ΡΠΈΡΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΡΠ»ΡΡΠ²Π°Ρ, ΠΏΡΡΠ²ΠΈΡΡ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅Π΄ΠΎΡ ΠΌΠ΅ Π½Π° dev ΠΊΠ»Π°ΡΡΠ΅ΡΠ° MySQL.
ΠΠ°ΠΊΡΠΎ Π²Π΅ΡΠ΅ ΡΠΏΠΎΠΌΠ΅Π½Π°Ρ ΠΌΠ΅, ΠΎΡΠ²Π΅ΡΠ»ΡΠ²Π° Π²ΡΠΏΡΠΎΡΠ° Π·Π° ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° MySQL ΡΡΡΠ²ΡΡΠΈ Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ. Π‘ΡΡΠ½ΠΎΡΡΡΠ° Π΅, ΡΠ΅ ΠΏΡΡΠ²ΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±Π½ΠΎΠ²ΠΈΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ (slave), ΡΡΠΉ ΠΊΠ°ΡΠΎ MySQL 8 ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ° ΠΎΡ ΠΌΠ°ΠΉΡΡΠΎΡ Ρ Π²Π΅ΡΡΠΈΡ 5.7. ΠΡΠΊΠΎΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ ΠΏΡΠΎΠΈΠ·ΡΠΈΡΠ°Ρ ΠΎΡ ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΡΠ΅ΠΆΠΈΠΌ master master, ΠΊΠΎΠ³Π°ΡΠΎ ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½ ΠΌΠ°ΠΉΡΡΠΎΡ Π΅ Π² ΡΠ΅ΠΆΠΈΠΌ read-only. Π’ΠΎΠ΅ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ ΠΏΠΎΡΡΡΠΏΠ²Π° Π² Π΅Π΄ΠΈΠ½ Π¦ΠΠ, Π° Π²ΡΠΎΡΠΈΡΡ Π΅ ΡΠ΅Π·Π΅ΡΠ²Π΅Π½.
Π’ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:

ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ΅ mysql replica dc 2, mysql master dc 2 ΠΈ mysql replica dc 1, Π° Π΄Π° Π·Π°Π²ΡΡΡΠΈ Ρ ΡΡΡΠ²ΡΡΠ° mysql master dc 1. ΠΠ° ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΡΠΏΡΡΡ
ΠΌΠ΅ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈΡΠ΅ ΠΌΠ°ΡΠΈΠ½ΠΈ, Π½Π°ΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅ ΠΈΠΌ ΡΠ½ΠΈΠΌΠΊΠΈ, Π° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½ΠΎ ΠΏΡΠ΅Π΄ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠΏΡΡΡ
ΠΌΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡΠ° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° STOP SLAVE. Π ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΡΠ°ΠΊΠ°:
- Π Π΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π²ΡΡΠΊΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°, Π΄ΠΎΠ±Π°Π²ΡΠΉΠΊΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈΡΠ΅ 3 ΠΎΠΏΡΠΈΠΈ:
skip-networking,skip-slave-start,skip-log-bin. Π€Π°ΠΊΡ Π΅, ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π±Π°Π·Π°ΡΠ° Π³Π΅Π½Π΅ΡΠΈΡΠ° Π±ΠΈΠ½Π°ΡΠ½ΠΈ Π»ΠΎΠ³ΠΎΠ²Π΅ Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ. Π’Π΅Π·ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠ°Ρ, ΡΠ΅ Π² Π±Π°Π·Π°ΡΠ° Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, Π° Π² Π±ΠΈΠ½Π°ΡΠ½ΠΈΡΠ΅ Π»ΠΎΠ³ΠΎΠ²Π΅ Π½ΡΠΌΠ° Π΄Π° ΠΏΠΎΠΏΠ°Π΄Π½Π΅ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ. Π’ΠΎΠ²Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡΠ°. - ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ°
percona-server-server. ΠΠ°ΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ Π² Π²Π΅ΡΡΠΈΡ MySQL 8 Π½Π΅ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°mysqlupgradeΡΠ»Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΡΡΠ²ΡΡΠ°. - Π‘Π»Π΅Π΄ ΡΡΠΏΠ΅ΡΠ΅Π½ ΡΡΠ°ΡΡ, ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΡΡΠ²ΡΡΠ° β Π²Π΅ΡΠ΅ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π±ΡΡ Π° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Π² ΠΏΡΡΠ²Π°ΡΠ° ΡΡΡΠΏΠΊΠ°.
- Π£Π±Π΅Π΄Π΅ΡΠ΅ ΡΠ΅, ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡΠ° ΡΠ°Π±ΠΎΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ: ΠΏΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅
SHOW SLAVE STATUSΠΈ Π²ΠΈΠΆΡΠ΅, ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ Ρ Π±ΡΠΎΡΡΠΈ Π² Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Ρ.
ΠΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° dev ΠΏΡΠ΅ΠΌΠΈΠ½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ. ΠΠΎΠ±ΡΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ Π΄Π° ΠΏΠ»Π°Π½ΠΈΡΠ°ΠΌΠ΅ Π½ΠΎΡΠ½ΠΎΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ.
ΠΠ΅ Π±Π΅ΡΠ΅ Π·Π»Π΅ β prod ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Ρ ΠΌΠ΅
ΠΠΎ ΠΏΡΠ΅Π½Π°ΡΡΠ½Π΅ΡΠΎ Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΈΡ ΠΎΠΏΠΈΡ ΠΎΡ dev ΠΊΡΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ Π½Π΅ ΠΌΠΈΠ½Π° Π±Π΅Π· ΠΈΠ·Π½Π΅Π½Π°Π΄ΠΈ.
ΠΠ° ΡΠ°ΡΡΠΈΠ΅, ΡΠ°ΠΌΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΎΡΠ²Π° Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ΅, Π·Π°ΡΠΎΠ²Π°, ΡΡΠ΅ΡΠ°ΠΉΠΊΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ, ΡΠΏΡΡΡ ΠΌΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΈ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΠΌΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠ° ΠΎΡ ΡΠ½ΠΈΠΌΠΊΠ°ΡΠ°. ΠΡΠΎΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈΡΠ΅ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈΡ ΠΌΠ΅ Π·Π° ΡΠ»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΡΡΠΈΠ½. Π Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΎΠΊΠ°Π·Π°Ρ Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ:
2020-01-14T21:43:21.500563Z 2 [ERROR] [MY-012069] [InnoDB] table: t1 has 19 columns but InnoDB dictionary has 20 columns
2020-01-14T21:43:21.500722Z 2 [ERROR] [MY-010767] [Server] Error in fixing SE data for db1.t1
2020-01-14T21:43:24.208365Z 0 [ERROR] [MY-010022] [Server] Failed to Populate DD tables.
2020-01-14T21:43:24.208658Z 0 [ERROR] [MY-010119] [Server] Aborting ΠΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ΡΠΎ Π½Π° Π°ΡΡ
ΠΈΠ²ΠΈΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΈΠΌΠ΅ΠΉΠ» ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΡ Π² Google Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ, ΡΠ΅ ΡΠ°ΠΊΠ°Π²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ·Π½ΠΈΠΊΠ²Π° Π·Π°ΡΠ°Π΄ΠΈ . ΠΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠ²Π° Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π±ΡΠ³ Π² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ mysqlcheck ΠΈ mysqlsh.
ΠΠΊΠ°Π·Π²Π° ΡΠ΅, ΡΠ΅ Π² MySQL Π΅ ΠΏΡΠΎΠΌΠ΅Π½Π΅Π½ Π½Π°ΡΠΈΠ½ΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Π΄Π΅ΡΠ΅ΡΠΈΡΠ½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° (int, tinyint ΠΈ Ρ.Π½.), Π·Π°ΡΠΎΠ²Π° Π²ΡΡΡΠ΅ Π² mysql-server ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΡΡΠ³ Π½Π°ΡΠΈΠ½ Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠΊΠΎ Π²Π°ΡΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ Π±ΠΈΠ»Π° Π² Π²Π΅ΡΡΠΈΡ 5.5 ΠΈΠ»ΠΈ 5.1 ΠΈ ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π»ΠΈ Π΄ΠΎ 5.7, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ·Π²ΡΡΡΠΈΡΠ΅ OPTIMIZE Π·Π° Π½ΡΠΊΠΎΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ. Π’ΠΎΠ³Π°Π²Π° MySQL ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Ρ Π΄Π°Π½Π½ΠΈ, ΠΏΡΠ΅Π²Π΅ΠΆΠ΄Π°ΠΉΠΊΠΈ Π³ΠΈ Π½Π° Π°ΠΊΡΡΠ°Π»Π΅Π½ ΡΠΎΡΠΌΠ°Ρ Π½Π° ΡΡΡ
ΡΠ°Π½Π΅Π½ΠΈΠ΅.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ°, ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈ Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° mysqlfrm:
mysqlfrm --diagnostic -vv /var/lib/mysql/db/table.frm
...
'field_length': 8,
'field_type': 246, # ΡΠΎΡΠΌΠ°Ρ Π½Π° ΠΏΠΎΠ»Π΅ΡΠΎ
'field_type_name': 'decimal',
'flags': 3,
'flags_extra': 67,
'interval_nr': 0,
'name': 'you_deciaml_column',
... ΠΠΊΠΎ field_type Π°ΠΊΠΎ Π΅ ΡΠ°Π²Π½ΠΎ Π½Π° 0, ΡΠΎ Π² ΡΠ°Π±Π»ΠΈΡΠ°ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΡΠ°Ρ ΡΠΈΠΏ β ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠΈ OPTIMIZE. ΠΠΎ Π°ΠΊΠΎ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° Π΅ 246 β ΠΈΠΌΠ°ΡΠ΅ Π½ΠΎΠ² ΡΠΈΠΏ. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π² .
ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² ΡΠ΅ ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π° Π²ΡΠΎΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½Π° ΠΏΡΠΈΡΠΈΠ½Π°, ΠΊΠΎΡΡΠΎ Π½ΠΈ Π΅ ΠΏΠΎΠ΄ΠΌΠΈΠ½Π°Π»Π° β ΡΠΎΠ²Π° Π΅ Π»ΠΈΠΏΡΠ°ΡΠ° Π½Π° InnoDB ΡΠ°Π±Π»ΠΈΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΠ½Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° INNODB_SYS_TABLESPACES, Π°ΠΊΠΎ ΡΠ΅, ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅, ΡΠ° Π±ΠΈΠ»ΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½ΠΈ Π² Π²Π΅ΡΡΠΈΡ 5.1. ΠΠ° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ .
ΠΠ°ΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° dev? ΠΠ°Π·Π°ΡΠ° Π²Π΅Π΄Π½ΡΠΆ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ° ΠΎΡ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ β ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅ΡΡΠ·Π΄Π°Π²Π°Ρ.
ΠΠ° ΡΡΠΆΠ°Π»Π΅Π½ΠΈΠ΅, Π½Π° ΡΠ΅Π°Π»Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠ° Π³ΠΎΠ»ΡΠΌΠ° ΠΠ Π½Π΅ ΠΌΠΎΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° Π²Π·Π΅ΠΌΠ΅ΡΠ΅ ΠΈ Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ Π²ΡΠ΅ΡΡΡΠ°Π½Π½ΠΎ OPTIMIZE. Π’ΡΠΊ ΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ percona-toolkit: Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΎΠ½Π»Π°ΠΉΠ½ OPTIMIZE ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠ±ΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠΆΠ΄Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ pt-online-schema-change.
ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΡ ΠΏΠ»Π°Π½ ΡΡΠ°Π½Π° ΡΠ»Π΅Π΄Π½ΠΈΡ:
- ΠΠ° ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ.
- ΠΠ° ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π±Π°Π·ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ.
ΠΠ° Π΄Π° Π³ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ ΠΈ Π·Π°Π΅Π΄Π½ΠΎ Π΄Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅ Π·Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΈΠ·ΠΊΠ»ΡΡΠΈΡ ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΎΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈΡΠ΅ ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ ΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
pt-online-schema-change --critical-load Threads_running=150 --alter "ENGINE=InnoDB" --execute --chunk-size 100 --quiet --alter-foreign-keys-method auto h=127.0.0.1,u=root,p=${MYSQL_PASSWORD},D=db1,t=t1ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π±Π΅Π· Π΄ΡΠ»Π³ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ, Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΊΡΠ°, ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΡ ΡΡΠ·Π΄Π°Π²Π° Π½ΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅Π½Π½Π° ΡΠ°Π±Π»ΠΈΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΠΊΠΎΠΏΠΈΡΠ° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π°ΡΠΎ ΠΈ Π΄Π²Π΅ΡΠ΅ ΡΠ°Π±Π»ΠΈΡΠΈ ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΠΈ, ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ° ΡΠ΅ Π·Π°ΠΊΠ»ΡΡΠ²Π° ΠΈ ΡΠ΅ Π·Π°ΠΌΠ΅Π½Ρ Ρ Π½ΠΎΠ²Π°ΡΠ°. Π Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ΡΡΠΎΠ²ΠΈΡΡ ΡΡΠ°ΡΡ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π±Π»ΠΈΡΠΈ ΡΠ΅ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π΄Π΅Π½, Π½ΠΎ Π² ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠ΅ ΡΠ²ΡΡΠ΄Π΅ Π³ΠΎΠ»ΡΠΌΠΎ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²Π΅ΡΠ΅.
ΠΠ° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ ΡΠΎΠ²Π°, Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ Π΄ΠΎΠ±Π°Π²ΠΈΡ
ΠΌΠ΅ ΠΊΡΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½Ρ --sleep Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ 10 β ΡΠΎΠ·ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ΅Π³ΡΠ»ΠΈΡΠ° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΡΠ°ΠΊΠ²Π°Π½Π΅ΡΠΎ ΡΠ»Π΅Π΄ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ Π΄Π°Π½Π½ΠΈ Π² Π½ΠΎΠ²Π°ΡΠ° ΡΠ°Π±Π»ΠΈΡΠ°. Π’Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈΠΌ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ, Π°ΠΊΠΎ ΡΠ΅Π°Π»Π½ΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Π½ΠΎΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΅ Π²Π·ΠΈΡΠΊΠ°ΡΠ΅Π»Π½ΠΎ ΠΊΡΠΌ Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π·Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡ.
Π‘Π»Π΅Π΄ ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎ.
β¦ Π½ΠΎ Π½Π΅ Π½Π°ΠΏΡΠ»Π½ΠΎ!
ΠΠ΅ΡΠ΅ ΡΠ»Π΅Π΄ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ ΡΠ°Ρ ΡΠ»Π΅Π΄ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΡ Π΄ΠΎΠΉΠ΄Π΅ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ°Π·Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠ°Π½Π½ΠΎ: ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Π° ΡΠ±ΡΠΎΡΠΈ Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΠΎΠ²Π° Π² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°:

ΠΠ° ΡΠΊΡΠΈΠΉΠ½ΡΠΎΡΠ° ΡΠ΅ Π²ΠΈΠΆΠ΄Π° Π·ΡΠ±ΡΠ°Ρ Π³ΡΠ°ΡΠΈΠΊ, ΡΠ²ΡΡΠ·Π°Π½ Ρ ΡΠΎΠ²Π°, ΡΠ΅ ΡΠ°ΡΡ ΠΎΡ ΠΏΠΎΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π½Π° MySQL ΡΡΡΠ²ΡΡΠ° ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ½ΠΎ ΠΏΠ°Π΄Π°Π»ΠΈ Ρ Π³ΡΠ΅ΡΠΊΠ°. Π ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΡ
Π° Π³ΡΠ΅ΡΠΊΠΈ:
[PDOException] SQLSTATE[HY000] [2002] Connection refusedΠΡΡΠ· ΠΏΡΠ΅Π³Π»Π΅Π΄ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡ mysqld Π½Π΅ ΠΌΠΎΠΆΠ° Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΈΡΠ΅ ΡΠ΅ΡΡΡΡΠΈ ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π Π°Π·Π±ΠΈΡΠ°ΠΉΠΊΠΈ Π³ΡΠ΅ΡΠΊΠΈΡΠ΅, ΠΎΡΠΊΡΠΈΡ ΠΌΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° βΠ±Π΅Π·ΡΡΠΎΠΏΠ°Π½ΡΡΠ²Π΅Π½ΠΈβ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈΡΠ΅ Π½Π° apparmor:
# dpkg -S /etc/apparmor.d/cache/usr.sbin.mysqld
dpkg-query: no path found matching pattern /etc/apparmor.d/cache/usr.sbin.mysqld
# dpkg -S /etc/apparmor.d/local/usr.sbin.mysqld
dpkg-query: no path found matching pattern /etc/apparmor.d/local/usr.sbin.mysqld
# dpkg -S /etc/apparmor.d/usr.sbin.mysqld
mysql-server-5.7: /etc/apparmor.d/usr.sbin.mysqld
# dpkg -l mysql-server-5.7
rc mysql-server-5.7 5.7.23-0ubuntu0.16.04.1 amd64Π’Π΅Π·ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Π»ΠΈ ΠΏΡΠΈ ΡΠΏΠ³ΡΠ΅ΠΉΠ΄Π° Π΄ΠΎ MySQL 5.7 ΠΏΡΠ΅Π΄ΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΈ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ Π½Π° ΠΈΠ·ΡΡΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ. ΠΠ·ΡΡΠΈΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ° apparmor ΡΠ΅ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°:
systemctl stop apparmor
rm /etc/apparmor.d/cache/usr.sbin.mysqld
rm /etc/apparmor.d/local/usr.sbin.mysqld
rm /etc/apparmor.d/usr.sbin.mysqld
systemctl start apparmorΠ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΡΡΠΊΠ°, Π΄ΠΎΡΠΈ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. Π Π΄ΠΎΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΎΠ±ΠΌΠΈΡΠ»Π΅Π½ ΠΏΠ»Π°Π½ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π³Π°ΡΠ°Π½ΡΠΈΡΠ° ΠΎΡΠ°ΠΊΠ²Π°Π½ΠΈΡ ΡΠ΅Π·ΡΠ»ΡΠ°Ρ. Π‘Π΅Π³Π° Π²ΡΠ² Π²ΡΠ΅ΠΊΠΈ ΠΏΠ»Π°Π½ Π·Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π°ΡΠΈΡΡ Π΅ΠΊΠΈΠΏ Π²ΠΊΠ»ΡΡΠ²Π° ΠΈ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΠΊΠΎΠΈΡΠΎ Π±ΠΈΡ Π° ΠΌΠΎΠ³Π»ΠΈ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ²ΡΡ Π² ΡΠ΅Π·ΡΠ»ΡΠ°Ρ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
Π Ρ ΡΠΎΠ²Π° Π½Π΅ ΡΠ²ΡΡΠ΄Π΅ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»Π½ΠΎ Π³ΡΠ°ΡΠΈΡΠ½ΠΎ ΡΠ²ΠΎΡΡΠ΅ΡΡΠ²ΠΎ Π±ΠΈΡ ΠΈΡΠΊΠ°Π» Π΄Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Percona Π·Π° ΡΠ΅Ρ Π½ΠΈΡΠ΅ ΠΎΡΠ»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈ!

P.S.
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΡΡΡΠΎ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
- «»;
- «»;
- «»;
- «»;
- «».
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
