ááá¯ážáááºááŸá¯ááẠáááºááá·áºááá±áá²á ááá¯á·ááŒá±á¬áá·áº MySQL ááá±á¬ááºáá¯á¶ážááœááºáá¬ážááŸááºážááá¯á· á¡ááá·áºááŒáŸáá·áºáááºááẠá¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬ážááẠááá¯ááá¯ááœá²áá±á¬ááºááŸá¯ááŸááá¬áá«áááºá áááŒá¬áá±ážáá®áá áá»áœááºá¯ááºááá¯á·á ááá±á¬áá»ááºáá
áºáá¯ááœááºá á¡áááºááŒá±áá±á¬ Percona Server 5.7 á¡á
á¯á¡áá±ážáá»á¬ážááᯠáá¬ážááŸááºáž 8 ááá¯á· á¡ááºááááºáá¯ááºááẠá¡áá»áááºáá»áá±á¬ááºáá²á·áááºá á€á¡áá¬á¡á¬ážáá¯á¶ážááẠUbuntu Linux 16.04 ááááºáá±á¬ááºážáá±á«áºááœááºááŒá
áºáá»ááºáá²á·áááºá á
ááºáááºáá»áááºá¡áááºážáá¯á¶ážááŸáá·áº á¡ááºááááºáá¯ááºáá±á
ááºá¡ááœááºáž áá»áœááºá¯ááºááá¯á·ááŒá¯á¶ááœá±á·áááá·áº ááŒá¿áá¬áá»á¬ážááᯠáááºááá¯á·áá¯ááºáá±á¬ááºááááºáááºáž - á€áá±á¬ááºážáá«ážááœáẠáááºááŸá¯áá«á
áá±á·áá»ááºá·áá±áž
áá±áá¬áá±á·á áºáá¬áá¬á á¡ááºááááºááŸááºááá»áŸááẠáá±áá¬áá±á·á áºááŒááºáááºááœá²á·á ááºážááŒááºážááŸáá·áº áááºá ááºááŸá¯ááŸáááá¯ááºáááº- á áá áºáááºážááŒá áºáá»á¬ážá¡áá±á«áº ááá·áºáááºáá»ááºáá»á¬ážá¡ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááŸáá·áº áá±ááºááá®áá±á¬á·áá±á¬ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááŸááºážáá áºááẠááá¯á¡ááºááá·áº áá±áá¬áá±á·á áºáá¯á¶á á¶ááŒááºáááºááŒááºážááá¯ááºáᬠááá·áºáááºáá»ááºáá»á¬ážá
ááœááºážáá¶ááŒááºáááºááŒááºážáááŒá¯áá®á áá»áœááºá¯ááºááá¯á·ááẠááá¬ážáááºá á¬ááœááºá á¬áááºážáá»á¬ážááᯠáá±áá»á¬áá±á«áẠááá¯ážáá¬ážáá«áááº-
-
MySQL 8 áá¯ááºááŒááºááá·áº ááŸááºá á¯áá»á¬áž ; -
MySQL á¡ááá·áºááŒáŸáá·áºáááºááŸá¯áááºážááœáŸáẠ; -
Percona á¡ááºááááºáááºážááœáŸáẠ; -
áá¯á¶áá°áá»á¬ážááŸáá·áº áá¬á áá¬áá»á¬ážááᯠá¡ááá·áºááŒáŸáá·áºáááºááŒááºážá¡ááœáẠMySQL áááºážááœáŸáẠ.
ááŒá®ážáá±á¬á· áá¯ááºáá±á¬ááºáá»ááºá¡á á®á¡á ááºáá áºáᯠáá±ážááœá²ááŒáá«á áá¯á·á
- áá±ááºááá®áá±á¬á·áá±á¬ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáááºááŸá¬ážááŒááºážááŒáá·áº ááœá²á·á ááºážááŸá¯ááá¯ááºáá»á¬ážááᯠááŒááºáá«á
- á¡áá¯á¶ážá¡áá±á¬ááºáá»á¬ážááŸáá·áº ááá¯ááºáá®ááŸá¯ááŸááááŸá á á áºáá±ážáá«á
- áááºáá±á·áá»áºááᯠááá·áºááœááºážááŒááºážááŒáá·áº áá»áœááºáá±áá¬áá±á·á
áºáá»á¬ážááᯠá¡ááºááááºáá¯ááºáá«á
percona-server-server
. - áá°áá®áá±á¬á¡áá¯ááºááŒáá·áº áá¬á áá¬ááᯠá¡ááºááááºáá¯ááºáá«á
á¡á á®á¡á á¥áºáá áºáá¯á á®áá²á· á¡áá»ááºáá áºáá»ááºá á®ááᯠááŒáá·áºááŒá®áž áá¬ááœá±ááŸá¬ážááœá¬ážááá¯ááºáá² ááŒáá·áºáá¡á±á¬ááºá
á¡áá±ážááŒá®áž! Galera ááá¯á¡ááŒá±áá¶áá¬ážáá±á¬ MySQL á¡á á¯á¡áá±ážááᯠá¡ááá·áºááŒáŸáá·áºáááºááŒááºážáá¯ááºáááºážá ááºááœáẠáá±á¬ááºážáá«ážááœááºáá±á¬áºááŒáá¬ážááŒááºážáááŸááá±á¬ áááºážáááá¯ááºááá¯ááºá¡áá±ážá áááºá¡áá»ááºáá»á¬ážááŸááááºá á€ááá á¹á ááœáẠáááºááẠá€ááœáŸááºááŒá¬ážáá»ááºááᯠááá¯á¶ážááá·áºáá«á
á¡ááá¯ááºáž 1- ááŒááºáááºááŸá¯áá»á¬ážááᯠá á áºáá±ážáá±áááºá
MySQL ááᯠáá¬ážááŸááºáž 8 ááœáẠáááºááŸá¬ážáá²á·áááºá query_cache
. á¡ááŸááºáá±á¬á· áá°áá²á
ááá¯á·á¡ááŒáẠconfig ááœáẠáá±ááºááá®áá±á¬ ááœáŸááºááŒá¬ážáá»ááºáá»á¬áž áá«ááŸááááºá innodb_file_format
. MySQL 5.7 ááœáẠInnoDB áá±á¬áºáááºááᯠááœá±ážáá»ááºááá¯ááºáá»áŸáẠ8th áá¬ážááŸááºážááẠá¡áá¯ááºáá¯ááºáá±ááŒá®ááŒá
áºáááºá
áá»áœááºá¯ááºááá¯á·áááááºááŸá¬ á¡á±á¬ááºáá«ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáááºááŸá¬ážááŒááºážááŒá áºáááº-
-
query_cache_type
,query_cache_limit
Оquery_cache_size
; -
innodb_file_format
Оinnodb_file_format_max
.
á
á
áºáá±ážáááºá áá»áœááºá¯ááºááá¯á·ááẠPercona Server á Docker áá¯á¶ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá áá¬áᬠconfig ááᯠáááºážááœáŸááºááœáẠáá¬ážááŸááá«áááºá mysql_config_test
áááºážáá±á¬ááºááœáẠáá±áá¬ááŸáá·áº ááŸááºáááºážáá»á¬ážá¡ááœáẠáááºážááœáŸááºáá»á¬áž áááºáá®ážáá«áááºá Percona-server configuration á
ááºážáááºááŸá¯ á¥ááá¬-
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 ááŸááºáááºážáá»á¬ážááœááºááŒá áºá á± ááá¯á·ááá¯áẠááŸááºáááºážáá»á¬ážáá«ááŸááá±á¬ áááºážááœáŸááºáá»á¬ážááœááºááŒá áºá á± - áááºá configs áá±á«áºáá°áááºá - ááŒá¿áá¬ááŸááá±á¬ ááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠáá±á¬áºááŒááá·áº ááá¯ááºáá áºáᯠáá±á«áºáá¬áá«áááºá
á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á· áááŸááá²á·áááº-
2020-04-03T12:44:19.670831Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2020-04-03T12:44:19.671678Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2020-04-03T12:44:19.671682Z 0 [Warning] [MY-013244] [Server] --collation-server: 'utf8_general_ci' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead.
ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá¶áá«ááºáá»á¬ážááᯠááŸá¬ááœá±ááŒá®áž áá±ááºááá®áá±á¬á·áá±á¬ ááœáŸááºááŒá¬ážáá»ááºááᯠá¡á
á¬ážááá¯ážááẠááá¯á¡ááºáá±áá±ážáááºá expire-logs-days
.
á¡ááá¯ááºáž 2- áá¯ááºáá±á¬ááºáá±áá±á¬ áááºáááºááŸá¯áá»á¬ážááᯠá á áºáá±ážááŒááºážá
á¡ááºááááºá á¬ááœááºá á¬áááºážááœáẠáá±áá¬áá±á·á áºááᯠá á áºáá±ážáááºá¡ááœáẠá¡áá¯á¶ážáááºááŸá¯ á áá¯áá«ááŸááááºá áááºážááá¯á·áá¡áá¯á¶ážááŒá¯ááŸá¯ááẠá á®áá¶ááá·áºááœá²áá°á¡á¬áž áááºááŸááá±áá¬ááœá²á·á ááºážáá¯á¶á ááá¯ááºáááºáá®ááŸá¯ááᯠá á áºáá±ážááẠáá°áá®áá±ážáááºá
ááá¹áááẠmysqlcheck utility ááŒáá·áºá ááŒáá«á áá¯á·á ááá¯ážááá¯ážááŸááºážááŸááºáž ááŒá±ážáá«
mysqlcheck -u root -p --all-databases --check-upgrade
ááŒá¿áá¬áááœá±á·áá«áá utility ááẠáá¯áẠ0 ááŒáá·áº ááœááºáá«áááº-
ááá¯á·á¡ááŒáẠMySQL á áá±ááºáá®áá¬ážááŸááºážáá»á¬ážááœáẠá¡áá¯á¶ážáááºááŸá¯áá
áºáá¯ááᯠáááá¯ááºáááºá percona-mysql-shell
) áááºážááẠááá¹áááẠmysql áááá¯ááºážááá·áºá¡ááœáẠá¡á
á¬ážááá¯ážááŒá®áž client áá
áºáá¯á SQL áá¯ááºáááºážááŒááºáá°ááŸáá·áº MySQL á
á®áá¶ááá·áºááœá²áá±ážáááááá¬áá»á¬ážá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠáá±á«ááºážá
ááºáá¬ážáááºá ááœááºážáá¶ááŒááºážáááŒá¯áá® áá¬áá¬á¡á¬áž á
á
áºáá±ážáááºá áááºážááŸáá
áºááá·áº á¡á±á¬ááºáá« command áá»á¬ážááᯠáááºáá¯ááºáá±á¬ááºááá¯ááºáááº-
mysqlsh -- util check-for-server-upgrade { --user=root --host=1.1.1.1 --port=3306 } --config-path=/etc/mysql/my.cnf
á€áááºááŸá¬ áá»áœááºá¯ááºááá¯á·áááŸááá¬ážáá±á¬ ááŸááºáá»ááºáá»á¬ážááŒá áºáááº-
áá±áá¯áá»á¡á¬ážááŒáá·áºá áá¯ááºááŒá±á¬ááºážááŒááºážááá¯ááºáᬠááááá±ážáá»ááºáá»á¬ážáᬠá¡áá±ážááŒá®ážáá«áááºá (á¡á±á¬ááºááœááºááŒááºá·áá«). á¡áá¯á¶ážá
á¯á¶áá¯ááºáá±á¬ááºááŸá¯ááááº-
á¡ááºááááºááᯠááŒá¿áá¬áááŸááá² á¡áá¯á¶ážááŒá¯ááá¯ááºáááºáᯠáá»áœááºá¯ááºááá¯á· áá¯á¶ážááŒááºáá²á·áááºá
áá¯ááºáá¶áá«ááºáá»á¬ážááŸáá·áº ááŒá¿áá¬áá»á¬ážááᯠááœáŸááºááŒáá±á¬ á¡áááºáá±á¬áºááŒáá« ááááá±ážáá»ááºáá»á¬ážá¡ááŒá±á¬ááºáž ááŸááºáá»ááºá áááŒá¬áá±ážáá®á¡áá»áááºá¡áá MySQL ááœáẠUTF-8 ááŒá
áºáááºá utf8
áááŒá¬ááẠcoding ááᯠáŠážáááºááœá¬ážáá«áááá·áºáááºá utf8mb4
á ááá¬ážáá»á¬ážááŸá áá±á¬áºáá¶áá±á¬ááºážáá»á¬áž ááŒá
áºáá¬áááá·áºáááºá utf8mb3
. áá±á¬ááºááẠáá¯ááºáá¶áá«áẠutf8mb3
áááºááŸá¬ážáááºááŒá
áºáá±á¬áºáááºáž á€áá¯ááºáá±ááŸá¯ááœáẠááá¯ááºáá«á ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠá¡ááºááááºáá¯ááºááŒá®ážáá±á¬áẠáá¯ááºáá±á¬ááºáá±ááá·áº DBMS áááºáááºááŸá¯ááœáẠááŸáááŒá®ážáá¬áž áá¯ááºáá¶áá«ááºáá»á¬ážááᯠááŒááºááẠáá¯á¶ážááŒááºáá²á·áááºá
á¡ááá¯ááºáž 3- áá¬áᬠá¡ááºááááºáá»á¬áž
áá®ááᯠá áááºáá»áá²á· á¡á á®á¡á á¥áºáá áºáᯠááŸááá²á·á¡áá« áá¬ááœá± ááŸá¬ážááœá¬ážááá¯ááºááá²?á á ááœá²ááœá²ááŸá¯ááœá± á¡ááŒá²ááŒá áºáá±á«áºáá±áááºááá¯áá¬ááᯠá¡ááŒáá·áºá¡á áá¬ážáááºááá±á¬áá±á«ááºááŒá®áž MySQL áá±á¬á·ááºáá² á¡á á¯á¡áá±ážááŸá¬ ááááá¯á¶áž á ááºážáááºááŸá¯ ááŒá¯áá¯ááºáá²á·áá«áááºá
áá±á¬áºááŒáá²á·ááá·áºá¡ááá¯ááºážá
topology ááẠá€áá²á·ááá¯á· ááŒá áºáááº-
á¡ááºááááºááẠáá¯á¶á
á¶áá°áá»á¬ážááŒáá·áº á
áááºááá«áááºá mysql áá¯á¶áá° dc á, mysql master dc á О mysql replica dc 1
á mysql master dc 1 áá¬áá¬ááŒáá·áº á¡áá¯á¶ážáááºáá«á ááá¯ááá¯áá¯á¶ááŒááºá
áááºáá»áá
á±áááºá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááẠvirtual machines áá»á¬ážááᯠáááºááá¯ááºááŒá®áž áááºážááá¯á·ááᯠáá»áŸááºáá
áºááŒááºááá¯ááºáá°áá¬á á¡ááºááááºááẠá¡áááá·áºáá±ážáá»ááºááŒáá·áº áá¯á¶áá°ááœá¬ážááŒááºážááᯠááááºááá·áºáá® áá»ááºáá»ááºážáááºá STOP SLAVE
. áá»ááºáá±á¬á¡ááºááááºáá»á¬ážááẠá€áá²á·ááá¯á·ááŒá
áºáá±áááº-
- configs ááœáẠááœá±ážáá»ááºá
áᬠ3 áá¯ááᯠáá±á«ááºážááá·áºááŒááºážááŒáá·áº áá¯á¶áá°áá
áºáá¯á
á®ááᯠááŒááºáááºá
áááºáááº-
skip-networking
,skip-slave-start
,skip-log-bin
. á¡ááŸááºááŸá¬ áá±áá¬áá±á·á áºááᯠá¡ááºááááºáá¯ááºááŒááºážááẠá áá áºááá¬ážáá»á¬ážááá¯á· á¡ááºááááºáá»á¬ážááŒáá·áº binary ááŸááºáááºážáá»á¬ážááᯠáá¯ááºáá±ážáááºá á€áááºážááœáŸááºáá»ááºáá»á¬ážááẠáá±áá¬áá±á·á áºá¡ááœááºáž á¡ááá®áá±ážááŸááºážáá±áá¬ááᯠá¡ááŒá±á¬ááºážá¡áá²áááŸáá á±áá²á á áá áºááá¬ážáá»á¬ážááᯠá¡ááá·áºááŒáŸáá·áºáááºááŒááºážááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠbinary ááŸááºáááºážáá»á¬ážááœáẠááá·áºááœááºážáááºááá¯ááºááŒá±á¬ááºáž á¡á¬ááá¶áá«áááºá áááºážááẠáá¯á¶áá°ááœá¬ážááŒááºážááᯠááŒááºáááºáá¯ááºáá±á¬ááºááá·áºá¡áá« ááŒá¿áá¬áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááá¯ááºáááºááŒá áºáááºá - á¡áá¯ááºááᯠááá·áºááœááºážááŒááºážá
percona-server-server
. MySQL áá¬ážááŸááºáž 8 ááœáẠáááááŒá¯ááẠá¡áá±ážááŒá®ážáá«áááºá ááá¯áẠááẠcommand ááᯠrun áááºááá¯á¡ááºáááºámysqlupgrade
server update ááŒá®ážáá±á¬ááºá - á¡á±á¬ááºááŒááºá áœá¬á áááºááŒá®ážáá±á¬ááºá áá»áœááºá¯ááºááá¯á·ááẠáááá á¬ááá¯ááºááœáẠááá·áºááœááºážáá¬ážáá±á¬ ááá·áºáááºáá»ááºáá»á¬ážááá«áá² áá¬áá¬ááᯠááŒááºáááºá áááºáá«áááºá
- áá¯á¶áá°áá°ážáá»ááŒááºáž á¡á±á¬ááºááŒááºá
áœá¬ áá¯ááºáá±á¬ááºááŒá±á¬ááºáž áá±áá»á¬á
á±áááº- á
á
áºáá±ážáá«á
SHOW SLAVE STATUS
á¡ááá®áá±ážááŸááºážáá±áá¬áá±á·á áºááŸá áá±á¬ááºáá¬áá»á¬ážáá«ááŸááá±á¬ ááá¬ážáá»á¬ážááᯠá¡ááºááááºáá¯ááºáá¬ážááŒá±á¬ááºáž ááŒáá·áºáá«á
á¡á¬ážáá¯á¶ážá áá±á¬áºáá±á¬áºááá¯ážááŸááºážáá¯á¶áá±á«áºáá«áááº- dev á¡ááºááááºá¡á±á¬ááºááŒááºáá«ááŒá®á á¡áá¯áá±á áá¯ááºáá¯ááºááŸá¯á¡ááœáẠáá áẠá¡ááºááááºááᯠáá¯á¶ááŒá¯á¶á áœá¬ á¡áá»áááºááá¬ážááœá²ááá¯ááºáá«áááºá
áááºážáááºážááŸá¯ áááŸááá« - áá»áœááºá¯ááºááá¯á· áá¯ááºáá¯ááºááᯠá¡ááºááááºáá¯ááºáá¬ážáá«áááºá
ááá¯á·áá±á¬áºáááºáž á¡á±á¬ááºááŒááºáá±á¬ 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 ááẠáá±áá¬ááá¯ááºáá»á¬ážááᯠá¡ááºááááºáá¯ááºáᬠáááºážááá¯á·á¡á¬áž áááºááŸáááá¯ááŸá±á¬ááºááŸá¯áá¯á¶á
á¶ááá¯á· ááœáŸá²ááŒá±á¬ááºážáá±ážáááºááŒá
áºáááºá
áááºážááᯠutility ááŒáá·áºáááºáž á
á
áºáá±ážááá¯ááºáááºá 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_SYS_TABLESPACES
á¡áááºá áááºážááá¯á·ááẠááá¬ážáá»á¬ážááᯠáá¬ážááŸááºáž 5.1 ááœáẠáááºáá®ážáá²á·áááºá á¡ááºááááºáá¯ááºááá·áºá¡áá« ááŒá¿áá¬áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážáááºá áááºááẠá¡áá¯á¶ážááŒá¯ááá¯ááºáááºá
á¡áááºááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠdev ááœáẠááá¯ááá¯á·áá±á¬ááŒá¿áá¬áá»á¬áž áááŸááá²á·ááááºážá áá±áá¬áá±á·á áºááᯠáá¯ááºáá¯ááºááŸá¯á០á¡áá«á¡á¬ážáá»á±á¬áºá áœá¬ áá°ážáá°ááẠ- ááá¯á·ááŒá±á¬áá·áºá ááá¬ážáá»á¬ážááᯠááŒááºáááºáááºáá®ážáá¬ážáááºá.
áá¶ááá±á¬ááºážá
áœá¬ááŒáá·áºá á¡ááŸááºááááºá¡áá¯ááºáá¯ááºáá±á¬ ááŒá®ážáá¬ážáá±á¬áá±áá¬áá±á·á
áºáá
áºáá¯ááœááºá áááºááẠuniversal áá
áºáá¯á¡á¬áž áá¯ááºáá°áá¯á¶áá»áŸáá áá¯ááºáá±á¬ááºááá¯ááºáááºááá¯ááºáá±á OPTIMIZE
. percona-toolkit ááẠá€áá±áá¬ááœáẠáá°áá®áá±ážáá«áááº- pt-online-schema-change utility ááẠonline OPTIMIZE áá¯ááºáá±á¬ááºáá»ááºá¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážááŒá
áºáááºá
á¡ááºááááºáá¯ááºáá¬ážáá±á¬ á¡á á®á¡á ááºááẠá€áá²á·ááá¯á·ááŒá áºáááº-
- ááá¬ážá¡á¬ážáá¯á¶ážááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬ááºáá¯ááºáá«á
- áá±áá¬áá±á·á áºáá»á¬ážááᯠá¡ááºááááºáá¯ááºáá«á
áááºážááá¯á á áºáá±ážáááºááŸáá·áº á¡ááºááááºá¡áá»áááºááᯠááááŸáááẠáá áºáá»áááºáááºážááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶á á¶áá°áá»á¬ážáá²á០áá áºáá¯ááᯠááááºááá¯ááºááŒá®áž ááá¬ážá¡á¬ážáá¯á¶ážá¡ááœáẠá¡á±á¬ááºáá« command ááᯠáá¯ááºáá±á¬ááºáá«áááºá
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
utility ááẠáááºáááá¬ážá០á¡áá»ááºá¡áááºáá»á¬ážááᯠáá°ážáá°ááá·áº áá¬áá®ááá¬ážá¡áá áºááᯠáááºáá®ážáá±ážáá±á¬ááŒá±á¬áá·áº ááá¬ážáá»á¬ážááᯠááŸááºáá»á¬ážáá±á¬áá±á¬á·áááºááŒááºážáááŸááá² á¡ááºááááºáá¯ááºáá«áááºá ááá¬ážááŸá áºáá¯áá¯á¶áž áá°áá®áá±áá»áááºááœáẠáá°áááá¬ážááᯠáá±á¬á·ááºáá»áá¬ážááŒá®áž á¡áá áºááŸáá·áº á¡á á¬ážááá¯ážáá«áááºá áá»áœááºá¯ááºááá¯á·áá¡ááŒá±á¡áá±ááœááºá ááá¬ážáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá¡ááºááááºáá¯ááºááẠáá áºáááºááá·áº á¡áá»áááºáá°ááááºáᯠá ááºážáááºááŸá¯áá áºáá¯á ááŒááá²á·áá±á¬áºáááºáž áá±áá¬ááᯠáá°ážáá°ááŒááºážááẠdisks ááœáẠload áá»á¬ážááœááºážááŒááºážááŒá±á¬áá·áºááŒá áºáááºá
áááºážááá¯ááŸá±á¬ááºááŸá¬ážáááºá áá¯ááºáá¯ááºáá±ážááœááºáá»áœááºá¯ááºááá¯á·ááẠcommand ááœáẠargument ááá¯ááá·áºááœááºážáá¬ážáááºá --sleep
10 áááºááá¯ážááŒáá·áº - á€ááá·áºáááºáá»ááºááẠáá±áá¬áá
áºáá¯ááºááᯠááá¬ážá¡áá
áºáá
áºáá¯ááá¯á· ááœáŸá²ááŒá±á¬ááºážááŒá®ážáá±á¬áẠá
á±á¬áá·áºááá¯ááºážáá»áááºááᯠáá»áááºááŸááá±ážáááºá á€áááºážááŒáá·áº á¡ááŸááºáááẠáá¯ááºáá±á¬ááºáá±ááá·áº á¡ááá®áá±ážááŸááºážááẠáá¯á¶á·ááŒááºáá»áááºá¡ááœááºáž áá±á¬ááºážááá¯áá«á áááºááᯠáá»áŸá±á¬á·áá»ááá¯ááºáááºá
ááá¯ááá¯áá±á¬ááºážááœááºá¡á±á¬ááºáá¯ááºáá±á¬ááºááŒá®ážáá±á¬ááºá á¡ááºááááºá¡á±á¬ááºááŒááºáá²á·áááºá
áá«áá±ááá·áº áá¯á¶ážáá¯á¶ážáá±á¬á· ááá¯ááºáá°áž!
á¡ááºááááºáá¯ááºááŒá®ážáá±á¬áẠáá¬áá®áááºá¡ááœááºážááœááºá áááá¯ááºážááá·áº ááŒá¿áá¬áá áºáᯠáá±á¬ááºáá¬áááºá áá±áá¬áá±á·á áºááẠá¡ááœááºáá°ážááŒá¬ážá áœá¬ á¡áá¯ááºáá¯ááºáááº- á¡áá«á¡á¬ážáá»á±á¬áºá áœá¬ áááºážááá¯á· á áááºáá²á·áááºá áá»áááºáááºááŸá¯ááᯠááŒááºáááºáááºááŸááºáááºá. á€á¡áá¬ááẠá á±á¬áá·áºááŒáá·áºááŒááºážááœáẠáá¯á¶ááá¹áá¬ááºááŒá áºáááº-
MySQL server threads á¡áá»áá¯á·ááŸá¬ error áá
áºáá¯ááŸáá·áºáá
áºáᯠá¡áá«á¡á¬ážáá»á±á¬áºá
áœá¬ áá»ááºá
á®ážááœá¬ážáá±á¬ááŒá±á¬áá·áº áá»ááºááŸá¬ááŒááºááœáẠsawtooth ááááºááᯠááŒááá¬ážáááºá á¡ááá®áá±ážááŸááºážááœáẠá¡ááŸá¬ážá¡ááœááºážáá»á¬áž áá±á«áºáá¬áááº-
[PDOException] SQLSTATE[HY000] [2002] Connection refused
ááŸááºáááºážáá»á¬ážááᯠá¡ááŒááºá á áºáá±ážááŒááºážááẠmysqld daemon ááẠáááºáááºááŸá¯á áá áºá០ááá¯á¡ááºáá±á¬á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááááŸáááá¯ááºááŒá±á¬ááºáž áááºááŸá¬ážá á±áááºá á¡ááŸá¬ážáá»á¬ážááᯠááœá²áá¯ááºáá±á ááºá áá»áœááºá¯ááºááá¯á·ááẠá áá áºááœáẠááŸá¬ááœá±ááœá±á·ááŸááá²á·áááºá "ááááá²á·" á¡áááºá¡áááºáá°áá«áááá¯ááºáá»á¬áž:
# 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 ááẠáááºážááá¯á·áá¡ááœááºáá±á¬ááºážááœááºáá±á¬áá¯ááºáá¯ááºáá»á¬ážá¡ááœáẠáá»á±ážáá°ážáááºááŒá±á¬ááºáž ááŒá±á¬ááŒá¬ážááá¯áá«áááºá
PS
áá»áœááºá¯ááºááá¯á·áááá±á¬á·ááºááœááºáááºážáááºáá«
- «
áá±áá¬áá±á·á áºáá»á¬ážááŸáá·áº Kubernetes (ááŒááºáááºáá¯á¶ážáááºááŒááºážááŸáá·áº áá®áá®ááá¯á¡á á®áááºáá¶á á¬) "; - «
Kubernetes á¡ááŒá¶ááŒá¯áá»ááºáá»á¬ážááŸáá·áº ááŸáá·áºááœááºáá»á¬áž- ááŒá®ážáá¬ážáá±á¬áá±áá¬áá±á·á áºáá»á¬ážá¡ááœáẠbootstrap ááᯠá¡ááŸáááºááŒáŸáá·áºááŒááºážá "; - «
áá»áœááºá¯ááºááá¯á·á SRE áá±á·á ááºááá០áááºááœá±á·áá»áá±á¬ áá¯á¶ááŒáẠ6 áᯠ"; - «
K8s ááŸá Redis á¡á±á¬áºááá±áá¬ááŸáá·áº áá¬ááºáááºážáá áºáá¯ááºááŸáá·áº á€áá±áá¬áá±á·á áºá០áá±áá¬áá»á¬ážááᯠááœá²ááŒááºážá áááºááŒá¬ááŒááºážá¡ááœáẠá¡áá¯á¶ážáááºááŸá¯á¡áá±ážá á¬áž áá¯á¶ážáááºáá»áẠ"; - «
MongoDB á Kubernetes ááá¯á· áá»á±á¬ááœá±á·á áœá¬ ááœáŸá±á·ááŒá±á¬ááºážááŒááºážá "á
source: www.habr.com