SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
© 2019 Percona1
How to Upgrade Like a Boss to MySQL
8.0
Upgrading successfully to latest version
Alkin Tezuysal
Senior Technical Manager
Percona Live, Amsterdam
Oct 2019
© 2019 Percona2
Who Am I? @ask_dba
Born to Sail, Forced to Work
• Open Source Database Evangelist
• Global Database Operations Expert
• Cloud Infrastructure Architect AWS
• Inspiring Technical and Strategic Leader
• Creative Team Builder
• Speaker, Mentor, and Coach
© 2019 Percona3
About Percona
Solutions for your success with MySQL, PostgreSQL, and MongoDB
Support, Managed Services, Consulting, Software, and Tools
Our Software is 100% Open Source
Support Broad Ecosystem – MySQL, MariaDB, Amazon RDS, MongoDB, PostgreSQL
In Business over 10 years
More than 3000 customers, including top Internet companies and enterprises
© 2019 Percona4
Most Recent Percona Software Updates
Sep 2019
Percona Server for MySQL 8.0.16-7
Percona Server for MongoDB 4.2.0.1
Percona XtraDB Cluster 5.7.25-31.39
Percona XtraBackup 8.0.7
Percona Monitoring and Management 2.0.1
Percona Toolkit 3.1.0
Percona Kubernetes Operators!
© 2019 Percona5
Agenda
Why even upgrade?
How we always did it in the past?
MySQL 8.0 is great!
How to upgrade?
Nice things about MySQL Shell
Latest news on MySQL 8.0
Conclusion Q&A
© 2019 Percona6
Why Even Upgrade?
Feature rich and secure version is always a right choice
© 2019 Percona7
Because MySQL 8 is Good J
•  SQL DML
•  Window Functions, Recursive/Non-Recursive CTEs, Derived Tables,…
•  SQL DDL
•  Instant ADD/RENAME Column,…
•  INDEXES
•  Invisible/Descending/Functional Indexes,…
•  FUNCTIONS
•  Regexp_%, UUID,…
•  JSON
•  JSON_%, Sorting, In-place
© 2019 Percona8
Because MySQL 8 is Better J
•  GIS
•  Spatial Reference Systems, ST functions, Geography Support
•  Character Sets and Collations
•  UTF-8, Unicode 9.0, …
•  Information Schema
•  Views over Data Dictionary, New Views, …
•  Performance Schema
•  Indexes, Error handling, Data Locks, Latency histograms
•  Show
•  Hidden columns, Index information
© 2019 Percona9
Because MySQL 8 is Great J
•  Optimizer
•  Histograms, Hints,
•  InnoDB
•  Redo Log, Encryption, …
•  Data Dictionary and Upgrade
•  Transactional DD, Meta Data in InnoDB, Auto Upgrade
•  Replication / Group Replication
•  Binlog Encryption, Atomic DDL Recovery / Savepoints, Switchovers, Auto-rejoin
•  Security, Shell, Router and many more features.
© 2019 Percona10
Fast Adoption to MySQL 8.X
Ref: PLEAMS19 MySQL State of the Dolphin Geir
Høydalsvik Keynote
© 2019 Percona11
Pros of Upgrading to New Version
•  Rich features (Business specific needs)
•  Technical advantages (QPS, Throughput, Administration)
•  Avoid multiple version upgrades
•  Bug fixes
•  Security and Compliance
•  Community and Vendor support
© 2019 Percona12
Cons of Upgrading to New Version
•  Risks of hitting unknown issues
•  Different behavior and results
•  Slower throughput due to
•  sql_mode, Optimizer, Charset, etc
•  Amount of time and material needed for upgrade project
•  Downtime that is scheduled to happen
•  Downgrade from MySQL 8.0 to MySQL 5.7 is not supported.
© 2019 Percona13
How We Always Upgraded?
The good old-fashioned way, maybe
© 2019 Percona14
Traditionally pre-V8
•  Major versions only (Ascending Order)
•  5.1 à 5.5
•  5.5 à 5.6
•  5.6 à 5.7
•  Set innodb_fast_shutdown=0
•  Stop existing MySQL server
•  Change binaries to new version
•  Adjust config (my.cnf) to new version
•  Start MySQL server
•  Run mysql_upgrade(Time Consuming)
•  Restart MySQL Server (Additional Downtime)
© 2019 Percona15
MySQL 8.0 Upgrade Process
Testing Slow Query Log pt-upgrade
MySQL
Shell
Technique Side by Side In-place
Cutover
Failover to new
topology
Migrate over time
© 2019 Percona16
Before You Even Start Testing
•  Review release notes
•  Changes in defaults
•  Features of new version
•  Removed syntax
•  Deprecated functions (GIS)
•  Data restrictions
•  New keywords
•  Changed behavior
© 2019 Percona17
Testing Phase
Setup a new testing environment
• Setup slaves as replication
• Keep it for a month on no-access server
• Try read testing batch testing
• Verify schema / connectivity compatibility
• Use ProxySQL (mirroring, traffic routing)
• Inspect slow query log
Build independent cluster
•  Query testing
•  Capture slow queries and digest
(pt-query-digest)
•  pt-upgrade
•  Application testing
•  Verify results
© 2019 Percona18
Run pt-upgrade to Compare Queries
What does it achieve?
•  Identify:
• Query execution time
• Query row counts
• Query checksum
How does it achieve?
•  Writer Handle – Master Write
•  Reader Handler (Read Only)
•  Master Reader Handle
•  Reporting Reader Handle
© 2019 Percona19
Steps to Verify via pt-upgrade (High Level)
1.  Setup two slaves with same hardware one of them MySQL 8
2.  Capture queries (long_query_time=0) for 24 hours
3.  Detach slaves and run pt-query-digest (pt-query-digest --output=slowlog
--sample=10 --no-report > slow.log)
4.  Run pt-upgrade with (--max-examples=1)
5.  Repeat (after with warm buffer pool)
6.  Review and analyze results
© 2019 Percona20
Steps to Verify via pt-upgrade RO (Detailed)
1.  $	pt-query-digest	--sample	25	--no-report	--output	slowlog	
<slow_log_file>	>		slow_log_25_samples.log	
2.  $pt-upgrade	h=Test1	h=Test2	--max-examples=1	
slow_log_25_samples.log	1>	pt-upgrade_results.out	2>		pt-
upgrade_results.err
© 2019 Percona21
Steps to Verify via pt-upgrade RW (Detailed)
1.  $	pt-query-digest	--sample	25	--no-report	--output	slowlog	
<slow_log_file>	>		slow_log_25_samples.log	
2.  $	pt-upgrade	h=Test1	h=Test2		--no-read-only	--max-
examples=1	slow_log_25_samples.log	1>	pt-
upgrade_results.out	2>		pt-upgrade_results.err
© 2019 Percona22
Summary pt-upgrade Testing
Capture queries for
1-2 hours during peak
traffic from the master
with
long_query_time=0,
log_slow_rate_limit=1.
Prepare a file for pt-
upgrade testing with
50 samples of each
query.
• Use pt-query-
digest to
prepare
samples.
Stop replication on
both servers at the
same position.
• The replication
will remain
stopped for the
duration of pt-
upgrade testing.
Run pt-upgrade
read_only test with --
save-results option.
• The first test to
warm up the
buffer pool.
The second test
to capture
actual results.
© 2019 Percona23
MySQL Shell in a Nutshell
Nice things about MySQL Shell
© 2019 Percona24
The new MySQL Shell
•  DBA friendly
•  Color mode
•  Auto Complete
•  Highlighted Syntax
•  History , pager/less
•  Multiple output formats
•  Development friendly
•  SQL
•  JavaScript
•  Batch
•  Document Store
•  InnoDB Cluster Admin
© 2019 Percona25
How Can MySQL Shell help?
(upgrade_checker)
•  Built-in function util.checkForServerUpgrade()
The MySQL server at localhost:33060, version 5.7.26-29 - Percona Server (GPL),
Release 29, Revision 11ad961, will now be checked for compatibility issues for
upgrade to MySQL 8.0.16…
1) Usage of old temporal type
No issues found
2) Usage of db objects with names conflicting with reserved keywords in 8.0
No issues found
3) Usage of utf8mb3 charset
No issues found
4) Table names in the mysql schema conflicting with new tables in 8.0
No issues found
5) Foreign key constraint names longer than 64 characters
No issues found
…
© 2019 Percona26
MySQL Shell Can Do Even More (mydba)
mysqlsh	--py	root@localhost	
	
	import	sys	
	sys.path.append('/home/fred/workspace/mysql-shell-mydba')	
	import	mydba	
		
MySQL		localhost:33060+	ssl		Py	>	mydba.getProcedures('airline')		
Total:	0	
MySQL localhost:33060+ ssl Py > mydba.getFragmentedTables()
+--------------------------------+------------+---------+------------+------------+------------+-------------------+
| Table | Engine | # Rows | Data Size | Idx Size | Total Size | Data Free |
+--------------------------------+------------+---------+------------+------------+------------+-------------------+
| information_schema.COLUMNS | InnoDB | None | 0.00G | 0.00G | 0.00G | 8.00MB (100%) |
| information_schema.EVENTS | InnoDB | None | 0.00G | 0.00G | 0.00G | 8.00MB (100%) |
| information_schema.OPTIMIZER_TRACE | InnoDB | None | 0.00G | 0.00G | 0.00G | 8.00MB (100%) |
+--------------------------------+------------+---------+------------+------------+------------+-------------------+
https://github.com/lefred/mysql-shell-mydba
© 2019 Percona27
MySQL Shell Can Do Even More (innotop)
	mysqlsh	--py	root@localhost	
	
	import	sys	
	sys.path.append('/home/fred/workspace/mysql-shell-innotop')	
	import	innotop	
	
	innotop.session_processlist.run()	
	
MySQL Shell | Percona Server (GPL), Release 29, Revision 11ad961 5.7.26-29 Tuesday 18 June 10:46:23
Cmd Thd Conn Pid State User Db Time Lock Time Query
Sleep 8002 7972 18925 None root@localhost airline None 96.07 ms None
	
https://github.com/lefred/mysql-shell-innotop
© 2019 Percona28
Upgrade Checker Identifies
•  Reserved Data Dictionary table names (catalogs)
•  Old Style Decimals, Varchar, Time/Datetime/Timestamp
•  CHECK TABLE {table_name} FOR UPGRADE
•  Mysqlcheck
•  Check-upgrade in 5.7
•  Use REPAIR TABLE & Dump/Restore
•  Partitioned tables using non-native partitioning was deprecated in 5.7
removed in 8.0
•  Switch to native partitioning or not
© 2019 Percona29
Upgrade Checker Does NOT Identify
•  Removed syntax
•  Deprecated functions (GIS)
•  Data restrictions
•  New keywords
•  Changed behavior
•  Change in defaults
© 2019 Percona30
MySQL Upgrade 5.7 to 8.0 (In-place)
•  5.7 to 8.0
•  Stop existing MySQL server
•  Change binaries to new version
•  Adjust config (my.cnf) to new version
•  Start MySQL server
•  Automatic upgrade
•  New mysqld options
•  --upgrade=AUTO (default)
•  --upgrade=NONE (errors if anything needs upgrade)
•  --upgrade=MINIMAL (to avoid DDL on some system tables)
•  --upgrade=FORCE
•  Eliminates issues with metadata using transactional data dictionary
© 2019 Percona31
MySQL Upgrade 5.7 to 8.0 (Replication &
Rolling Upgrade)
•  5.7 to 8.0
•  Stop existing MySQL Slave server
•  Change binaries to new version
•  Adjust config (my.cnf) to new version
•  Start MySQL server
•  Automatic upgrade
•  New mysqld options
•  --upgrade=AUTO (default)
•  --upgrade=NONE (errors if anything needs upgrade)
•  --upgrade=MINIMAL (to avoid DDL on some system tables)
•  --upgrade=FORCE
•  Eliminates issues with metadata using transactional data dictionary
•  Repeat above for minimum of 2 slaves and promote one as master
© 2019 Percona32
MySQL 8.0 Upgrade
	MySQL		localhost:33060+	ssl		SQL	>	show	global	variables	like	"innodb_fast_shutdown";	
+----------------------+-------+	
|	Variable_name								|	Value	|	
+----------------------+-------+	
|	innodb_fast_shutdown	|	1					|	
+----------------------+-------+	
1	row	in	set	(0.0037	sec)	
	
	MySQL		localhost:33060+	ssl		SQL	>	set	global	innodb_fast_shutdown=0;	
Query	OK,	0	rows	affected	(0.0007	sec)	
	
	
	MySQL		localhost:33060+	ssl		SQL	>	show	global	variables	like	"innodb_fast_shutdown";	
+----------------------+-------+	
|	Variable_name								|	Value	|	
+----------------------+-------+	
|	innodb_fast_shutdown	|	0					|	
+----------------------+-------+	
1	row	in	set	(0.0054	sec)
© 2019 Percona33
MySQL 8.0 Packages
© 2019 Percona34
Percona Server for MySQL 8.0
yum Installation - Repo
Install the Percona repository
You can install Percona yum repository by running the following command as a root user or with sudo:
$ sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
You should see some output such as the following:
Retrieving http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-latest.noarch.rpm
Preparing... ########################################### [100%]
1:percona-release ########################################### [100%]
Enable the repository:
$ sudo percona-release setup ps80
Install the packages
You can now install Percona Server for MySQL by running:
$ sudo yum install percona-server-server
© 2019 Percona35
Percona Server for MySQL 8.0
yum Installation - Yum
Installed:	
		percona-server-server.x86_64	0:8.0.15-6.1.el7																																																																														
	
Dependency	Installed:	
		percona-server-client.x86_64	0:8.0.15-6.1.el7													percona-server-shared.x86_64	0:8.0.15-6.1.el7													
percona-server-shared-compat.x86_64	0:8.0.15-6.1.el7													
	
Complete!
© 2019 Percona36
Percona Server for MySQL 8.0
yum Installation - Connectivity
MySQL localhost:33060+ ssl SQL > s
MySQL Shell version 8.0.16
Session type: X
Connection Id: 16
Default schema:
Current schema:
Current user: root@localhost
SSL: Cipher in use: ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2
Using delimiter: ;
Server version: 8.0.15-6 Percona Server (GPL), Release 6, Revision 63abd08
Protocol version: X protocol
Client library: 8.0.16
Connection: localhost via TCP/IP
TCP port: 33060
Server characterset: utf8mb4
Schema characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
Uptime: 2 min 26.0000 sec
© 2019 Percona37
Percona Server for MySQL 8.0
yum Installation - Errorlog
2019-06-18T14:11:42.790252Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15-6) starting as process 29198
2019-06-18T14:11:47.731578Z 0 [ERROR] [MY-013180] [Server] Function 'mysqlx' already exists.
2019-06-18T14:11:47.731590Z 0 [Warning] [MY-010736] [Server] Couldn't load plugin named 'mysqlx' with soname 'mysqlx.so'.
2019-06-18T14:11:47.738319Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001287 -
'validate password plugin' is deprecated and will be removed in a future release. Please use validate_password component instead
2019-06-18T14:11:49.700555Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2019-06-18T14:11:49.709724Z 0 [ERROR] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001146 -
Table 'mysql.component' doesn't exist
2019-06-18T14:11:49.709743Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-003543 -
The mysql.component table is missing or has an incorrect definition.
2019-06-18T14:11:49.719544Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.user].
2019-06-18T14:11:49.719552Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.db].
2019-06-18T14:11:49.719561Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.tables_priv].
2019-06-18T14:11:49.719568Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.columns_priv].
2019-06-18T14:11:49.719576Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.procs_priv].
2019-06-18T14:11:49.719587Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.proxies_priv].
2019-06-18T14:11:49.720019Z 0 [ERROR] [MY-013143] [Server] Column count of mysql.user is wrong. Expected 51, found 45. The table is probably corrupted
2019-06-18T14:11:49.720107Z 0 [Warning] [MY-010966] [Server] ACL table mysql.role_edges missing. Some operations may fail.
2019-06-18T14:11:49.720125Z 0 [Warning] [MY-010966] [Server] ACL table mysql.default_roles missing. Some operations may fail.
2019-06-18T14:11:49.720135Z 0 [Warning] [MY-010966] [Server] ACL table mysql.global_grants missing. Some operations may fail.
2019-06-18T14:11:49.720143Z 0 [Warning] [MY-010966] [Server] ACL table mysql.password_history missing. Some operations may fail.
2019-06-18T14:11:49.721700Z 0 [ERROR] [MY-010965] [Server] Missing system table mysql.global_grants; please run mysql_upgrade to create it.
2019-06-18T14:11:49.727806Z 0 [Warning] [MY-010727] [Server] System table 'func' is expected to be transactional.
2019-06-18T14:11:49.729669Z 0 [Warning] [MY-010405] [Repl] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
2019-06-18T14:11:49.729696Z 0 [ERROR] [MY-010422] [Repl] Error in checking mysql.slave_master_info repository info type of TABLE.
2019-06-18T14:11:49.729707Z 0 [ERROR] [MY-010415] [Repl] Error creating master info: Error checking repositories.
2019-06-18T14:11:49.729716Z 0 [ERROR] [MY-010426] [Repl] Slave: Failed to initialize the master info structure for channel ''; its record may still be present in 'mysql.slave_master_info' table, consider deleting it.
2019-06-18T14:11:49.729735Z 0 [ERROR] [MY-010529] [Repl] Failed to create or recover replication info repositories.
2019-06-18T14:11:49.732745Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.15-6' socket: '/var/lib/mysql/mysql.sock' port: 3306 Percona Server (GPL), Release 6, Revision 63abd08.
2019-06-18T14:11:49.750837Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/lib/mysql/mysqlx.sock' bind-address: '::' port: 33060
© 2019 Percona38
Run mysql_upgrade (8.0.15-6)
[root@localhost	~]#	screen	-r	download_airline	
	
Checking	server	version.	
Running	queries	to	upgrade	MySQL	server.	
Upgrading	system	table	data.	
Checking	system	database.	
mysql.default_roles																																OK	
mysql.engine_cost																																		OK	
…	
Found	outdated	sys	schema	version	1.5.1.	
Upgrading	the	sys	schema.	
Checking	databases.	
airline.ontime																																					OK	
sys.sys_config																																					OK	
Upgrade	process	completed	successfully.	
Checking	if	update	is	needed.
© 2019 Percona39
Best Practices
•  Upgrade slaves first
•  Beware of optimizer changes
•  Watch default values
•  Pay attention to reserve words
•  Inspect character sets, file types
•  Prepare tooling, backups and monitoring in advance
•  Plan your rollback scenarios
© 2019 Percona40
Latest News on MySQL 8.0.X
Minor versions aren’t minor anymore
© 2019 Percona41
MySQL 8.0.16
•  8.0.0 to 8.0.5 Several Bugs Fixed
•  8.0.11 Deprecates uft8mb3
•  8.0.12 Improves performance_schema defaults
•  8.0.13 Major deprecations InnoDB, Partitioning
•  8.0.14 Dual passwords, Lateral Derived Tables, Parallel Read of Index , GR Consistency
Levels
•  8.0.15 Bugs Fixed
•  InnoDB: After a checkpoint operation persisted modifications to data dictionary metadata, there was
potential for new metadata changes to be lost under certain circumstances. (Bug #29120297)
•  Group Replication was unable to function in the 8.0.14 release of MySQL Server if IPv6 support was
disabled at the operating system level, even if the replication group did not use any IPv6 addresses.
The issue is fixed by this release of MySQL Server, 8.0.15. (Bug #29249542, Bug #94004)
•  If MySQL was running on the host system and within Docker, it was not possible to update or remove
MySQL on the host system. (Bug #28244773, Bug #91405)8.0.0 to 8.0.11 several bug fixes
•  8.0.16 Account-management capabilities, deprecation of mysql_upgrade, Check
Constraints, GR Auto Re-Join
•  8.0.17 Clone Plugin, JSON Array Indexes and Schema
•  8.0.18 Hash Join, Explain Analyze
© 2019 Percona42
Percona Server for MySQL 8.0.16-7
•  Faster and more consistently run queries
•  Enhanced security with binary log (binlog) encryption and data-at-rest
encryption
•  MyRocks, TokuDB Storage Engines
•  InnoDB Full-Text Search Improvements
•  Extra Hash/Digest Functions
•  Improved diagnostics with instrumentation and troubleshooting features
© 2019 Percona43
Join in: Percona Community
●  Write for our community blog
percona.com/community-blog
●  Join in with our community forums
percona.com/forums
●  Contribute to our open source
projects
© 2019 Percona44
Rate My Session
TAP THE SESSION
RATE THE SESSION
© 2019 Percona45
We’re Hiring!
Percona’s open source database experts are
true superheroes, improving database
performance for customers across the globe.
Our staff live in nearly 30 different countries
around the world, and most work remotely
from home.
Discover what it means to have a Percona
career with the smartest people in the
database performance industries, solving the
most challenging problems our customers
come across.
© 2019 Percona46
References and Links
•  Automatic Upgrade and New Error Logging in MySQL 8.0
•  MySQL Shell - A DevOps-engineer day with MySQL’s development and
administration tool
•  Upgrading to MySQL 8.0? Here is what you need to know…
•  Changes in MySQL 8.0
•  The complete list of new features in MySQL 8.0
•  Reducing Risk When Upgrading MySQL
•  Changes in MySQL 8.0
•  MySQL 8.0.16: mysql_upgrade is going away
© 2019 Percona47
Credits
•  @lefred for answering my numerous questions
•  My team at Percona helping review this presentation
© 2019 Percona48
Thank You

Weitere ähnliche Inhalte

Was ist angesagt?

Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Mydbops
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)Jean-François Gagné
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialJean-François Gagné
 
My sql failover test using orchestrator
My sql failover test  using orchestratorMy sql failover test  using orchestrator
My sql failover test using orchestratorYoungHeon (Roy) Kim
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleColin Charles
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)Aurimas Mikalauskas
 
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdfProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdfJesmar Cannao'
 
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)Altinity Ltd
 
How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?Alkin Tezuysal
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorialFrederic Descamps
 
Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Mydbops
 
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0Frederic Descamps
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxNeoClova
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorJean-François Gagné
 
Intro ProxySQL
Intro ProxySQLIntro ProxySQL
Intro ProxySQLI Goo Lee
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationFrederic Descamps
 
ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)Mydbops
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability Mydbops
 

Was ist angesagt? (20)

Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera ) Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
Wars of MySQL Cluster ( InnoDB Cluster VS Galera )
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
 
The Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication TutorialThe Full MySQL and MariaDB Parallel Replication Tutorial
The Full MySQL and MariaDB Parallel Replication Tutorial
 
My sql failover test using orchestrator
My sql failover test  using orchestratorMy sql failover test  using orchestrator
My sql failover test using orchestrator
 
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScaleThe Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
The Proxy Wars - MySQL Router, ProxySQL, MariaDB MaxScale
 
MySQL Shell for DBAs
MySQL Shell for DBAsMySQL Shell for DBAs
MySQL Shell for DBAs
 
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
MySQL Performance Tuning. Part 1: MySQL Configuration (includes MySQL 5.7)
 
Introduction to Galera Cluster
Introduction to Galera ClusterIntroduction to Galera Cluster
Introduction to Galera Cluster
 
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdfProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
ProxySQL and the Tricks Up Its Sleeve - Percona Live 2022.pdf
 
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
New features in ProxySQL 2.0 (updated to 2.0.9) by Rene Cannao (ProxySQL)
 
How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?How to upgrade like a boss to my sql 8.0?
How to upgrade like a boss to my sql 8.0?
 
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorialMySQL InnoDB Cluster and Group Replication in a nutshell  hands-on tutorial
MySQL InnoDB Cluster and Group Replication in a nutshell hands-on tutorial
 
Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0
 
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
preFOSDEM MySQL Day - Best Practices to Upgrade to MySQL 8.0
 
MySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptxMySQL_MariaDB-성능개선-202201.pptx
MySQL_MariaDB-성능개선-202201.pptx
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
 
Intro ProxySQL
Intro ProxySQLIntro ProxySQL
Intro ProxySQL
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)ProxySQL High Availability (Clustering)
ProxySQL High Availability (Clustering)
 
Galera cluster for high availability
Galera cluster for high availability Galera cluster for high availability
Galera cluster for high availability
 

Ähnlich wie How to upgrade like a boss to MySQL 8.0 - PLE19

Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019Alkin Tezuysal
 
Automatic upgrade and new error logging in my sql 8.0
Automatic upgrade and new error logging in my sql 8.0Automatic upgrade and new error logging in my sql 8.0
Automatic upgrade and new error logging in my sql 8.0Ståle Deraas
 
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...Geir Høydalsvik
 
제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQLTommy Lee
 
Upgrading to my sql 8.0
Upgrading to my sql 8.0Upgrading to my sql 8.0
Upgrading to my sql 8.0Ståle Deraas
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology OverviewKeith Hollman
 
Mysql ecosystem in 2018
Mysql ecosystem in 2018Mysql ecosystem in 2018
Mysql ecosystem in 2018Alkin Tezuysal
 
MySQL Ecosystem in 2020
MySQL Ecosystem in 2020MySQL Ecosystem in 2020
MySQL Ecosystem in 2020Alkin Tezuysal
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Geir Høydalsvik
 
MySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt IntroMySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt IntroMark Swarbrick
 
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7Mark Swarbrick
 
MySQL 5.6 Replication Webinar
MySQL 5.6 Replication WebinarMySQL 5.6 Replication Webinar
MySQL 5.6 Replication WebinarMark Swarbrick
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015Mario Beck
 
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoOracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoMarketingArrowECS_CZ
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesTarique Saleem
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL SupportMysql User Camp
 
MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeArnab Ray
 
What's New in MySQL 5.7
What's New in MySQL 5.7What's New in MySQL 5.7
What's New in MySQL 5.7Olivier DASINI
 

Ähnlich wie How to upgrade like a boss to MySQL 8.0 - PLE19 (20)

Mysql ecosystem in 2019
Mysql ecosystem in 2019Mysql ecosystem in 2019
Mysql ecosystem in 2019
 
Automatic upgrade and new error logging in my sql 8.0
Automatic upgrade and new error logging in my sql 8.0Automatic upgrade and new error logging in my sql 8.0
Automatic upgrade and new error logging in my sql 8.0
 
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
 
제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL제3회난공불락 오픈소스 인프라세미나 - MySQL
제3회난공불락 오픈소스 인프라세미나 - MySQL
 
Upgrading to my sql 8.0
Upgrading to my sql 8.0Upgrading to my sql 8.0
Upgrading to my sql 8.0
 
MySQL Technology Overview
MySQL Technology OverviewMySQL Technology Overview
MySQL Technology Overview
 
Mysql ecosystem in 2018
Mysql ecosystem in 2018Mysql ecosystem in 2018
Mysql ecosystem in 2018
 
MySQL Ecosystem in 2020
MySQL Ecosystem in 2020MySQL Ecosystem in 2020
MySQL Ecosystem in 2020
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
 
MySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt IntroMySQL Tech Tour 2015 - Alt Intro
MySQL Tech Tour 2015 - Alt Intro
 
MySQL 5.7 what's new
MySQL 5.7 what's newMySQL 5.7 what's new
MySQL 5.7 what's new
 
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
Netherlands Tech Tour - 07 MySQL Whats upcoming in 5.7
 
MySQL 5.6 Replication Webinar
MySQL 5.6 Replication WebinarMySQL 5.6 Replication Webinar
MySQL 5.6 Replication Webinar
 
Novinky v Oracle Database 18c
Novinky v Oracle Database 18cNovinky v Oracle Database 18c
Novinky v Oracle Database 18c
 
MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015MySQL 5.7: What's New, Nov. 2015
MySQL 5.7: What's New, Nov. 2015
 
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší novéhoOracle Database 19c - poslední z rodiny 12.2 a co přináší nového
Oracle Database 19c - poslední z rodiny 12.2 a co přináší nového
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New Features
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 
MySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime TimeMySQL 8: Ready for Prime Time
MySQL 8: Ready for Prime Time
 
What's New in MySQL 5.7
What's New in MySQL 5.7What's New in MySQL 5.7
What's New in MySQL 5.7
 

Mehr von Alkin Tezuysal

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Alkin Tezuysal
 
FOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdf
FOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdfFOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdf
FOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdfAlkin Tezuysal
 
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfMySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfAlkin Tezuysal
 
How OLTP to OLAP Archival Demystified
How OLTP to OLAP Archival DemystifiedHow OLTP to OLAP Archival Demystified
How OLTP to OLAP Archival DemystifiedAlkin Tezuysal
 
MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...
MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...
MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...Alkin Tezuysal
 
My first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfMy first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfAlkin Tezuysal
 
Integrating best of breed open source tools to vitess orchestrator pleu21
Integrating best of breed open source tools to vitess  orchestrator   pleu21Integrating best of breed open source tools to vitess  orchestrator   pleu21
Integrating best of breed open source tools to vitess orchestrator pleu21Alkin Tezuysal
 
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
Vitess: Scalable Database Architecture -  Kubernetes Community Days Africa Ap...Vitess: Scalable Database Architecture -  Kubernetes Community Days Africa Ap...
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...Alkin Tezuysal
 
How to shard MariaDB like a pro - FOSDEM 2021
How to shard MariaDB like a pro  - FOSDEM 2021How to shard MariaDB like a pro  - FOSDEM 2021
How to shard MariaDB like a pro - FOSDEM 2021Alkin Tezuysal
 
Vitess - Data on Kubernetes
Vitess -  Data on Kubernetes  Vitess -  Data on Kubernetes
Vitess - Data on Kubernetes Alkin Tezuysal
 
Introduction to Vitess on Kubernetes for MySQL - Webinar
Introduction to Vitess on Kubernetes for MySQL -  WebinarIntroduction to Vitess on Kubernetes for MySQL -  Webinar
Introduction to Vitess on Kubernetes for MySQL - WebinarAlkin Tezuysal
 
When is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesWhen is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesAlkin Tezuysal
 
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebMysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebAlkin Tezuysal
 
Myrocks in the wild wild west! FOSDEM 2020
Myrocks in the wild wild west! FOSDEM 2020Myrocks in the wild wild west! FOSDEM 2020
Myrocks in the wild wild west! FOSDEM 2020Alkin Tezuysal
 
Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019Alkin Tezuysal
 
When is MyRocks good?
When is MyRocks good? When is MyRocks good?
When is MyRocks good? Alkin Tezuysal
 
PXC (Xtradb) Failure and Recovery
PXC (Xtradb) Failure and RecoveryPXC (Xtradb) Failure and Recovery
PXC (Xtradb) Failure and RecoveryAlkin Tezuysal
 
Securing your database servers from external attacks
Securing your database servers from external attacksSecuring your database servers from external attacks
Securing your database servers from external attacksAlkin Tezuysal
 

Mehr von Alkin Tezuysal (20)

Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
 
FOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdf
FOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdfFOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdf
FOSSASIA - MySQL Cookbook 4e Journey APR 2023.pdf
 
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdfMySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
MySQL Ecosystem in 2023 - FOSSASIA'23 - Alkin.pptx.pdf
 
How OLTP to OLAP Archival Demystified
How OLTP to OLAP Archival DemystifiedHow OLTP to OLAP Archival Demystified
How OLTP to OLAP Archival Demystified
 
MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...
MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...
MySQL Cookbook: Recipes for Developers, Alkin Tezuysal and Sveta Smirnova - P...
 
My first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdfMy first 90 days with ClickHouse.pdf
My first 90 days with ClickHouse.pdf
 
KubeCon_NA_2021
KubeCon_NA_2021KubeCon_NA_2021
KubeCon_NA_2021
 
Integrating best of breed open source tools to vitess orchestrator pleu21
Integrating best of breed open source tools to vitess  orchestrator   pleu21Integrating best of breed open source tools to vitess  orchestrator   pleu21
Integrating best of breed open source tools to vitess orchestrator pleu21
 
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
Vitess: Scalable Database Architecture -  Kubernetes Community Days Africa Ap...Vitess: Scalable Database Architecture -  Kubernetes Community Days Africa Ap...
Vitess: Scalable Database Architecture - Kubernetes Community Days Africa Ap...
 
How to shard MariaDB like a pro - FOSDEM 2021
How to shard MariaDB like a pro  - FOSDEM 2021How to shard MariaDB like a pro  - FOSDEM 2021
How to shard MariaDB like a pro - FOSDEM 2021
 
Vitess - Data on Kubernetes
Vitess -  Data on Kubernetes  Vitess -  Data on Kubernetes
Vitess - Data on Kubernetes
 
Introduction to Vitess on Kubernetes for MySQL - Webinar
Introduction to Vitess on Kubernetes for MySQL -  WebinarIntroduction to Vitess on Kubernetes for MySQL -  Webinar
Introduction to Vitess on Kubernetes for MySQL - Webinar
 
When is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar SeriesWhen is Myrocks good? 2020 Webinar Series
When is Myrocks good? 2020 Webinar Series
 
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 FebMysql 8 vs Mariadb 10.4 Webinar 2020 Feb
Mysql 8 vs Mariadb 10.4 Webinar 2020 Feb
 
Myrocks in the wild wild west! FOSDEM 2020
Myrocks in the wild wild west! FOSDEM 2020Myrocks in the wild wild west! FOSDEM 2020
Myrocks in the wild wild west! FOSDEM 2020
 
Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019Mysql 8 vs Mariadb 10.4 Highload++ 2019
Mysql 8 vs Mariadb 10.4 Highload++ 2019
 
When is MyRocks good?
When is MyRocks good? When is MyRocks good?
When is MyRocks good?
 
PXC (Xtradb) Failure and Recovery
PXC (Xtradb) Failure and RecoveryPXC (Xtradb) Failure and Recovery
PXC (Xtradb) Failure and Recovery
 
Securing your database servers from external attacks
Securing your database servers from external attacksSecuring your database servers from external attacks
Securing your database servers from external attacks
 

Kürzlich hochgeladen

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 

Kürzlich hochgeladen (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

How to upgrade like a boss to MySQL 8.0 - PLE19

  • 1. © 2019 Percona1 How to Upgrade Like a Boss to MySQL 8.0 Upgrading successfully to latest version Alkin Tezuysal Senior Technical Manager Percona Live, Amsterdam Oct 2019
  • 2. © 2019 Percona2 Who Am I? @ask_dba Born to Sail, Forced to Work • Open Source Database Evangelist • Global Database Operations Expert • Cloud Infrastructure Architect AWS • Inspiring Technical and Strategic Leader • Creative Team Builder • Speaker, Mentor, and Coach
  • 3. © 2019 Percona3 About Percona Solutions for your success with MySQL, PostgreSQL, and MongoDB Support, Managed Services, Consulting, Software, and Tools Our Software is 100% Open Source Support Broad Ecosystem – MySQL, MariaDB, Amazon RDS, MongoDB, PostgreSQL In Business over 10 years More than 3000 customers, including top Internet companies and enterprises
  • 4. © 2019 Percona4 Most Recent Percona Software Updates Sep 2019 Percona Server for MySQL 8.0.16-7 Percona Server for MongoDB 4.2.0.1 Percona XtraDB Cluster 5.7.25-31.39 Percona XtraBackup 8.0.7 Percona Monitoring and Management 2.0.1 Percona Toolkit 3.1.0 Percona Kubernetes Operators!
  • 5. © 2019 Percona5 Agenda Why even upgrade? How we always did it in the past? MySQL 8.0 is great! How to upgrade? Nice things about MySQL Shell Latest news on MySQL 8.0 Conclusion Q&A
  • 6. © 2019 Percona6 Why Even Upgrade? Feature rich and secure version is always a right choice
  • 7. © 2019 Percona7 Because MySQL 8 is Good J •  SQL DML •  Window Functions, Recursive/Non-Recursive CTEs, Derived Tables,… •  SQL DDL •  Instant ADD/RENAME Column,… •  INDEXES •  Invisible/Descending/Functional Indexes,… •  FUNCTIONS •  Regexp_%, UUID,… •  JSON •  JSON_%, Sorting, In-place
  • 8. © 2019 Percona8 Because MySQL 8 is Better J •  GIS •  Spatial Reference Systems, ST functions, Geography Support •  Character Sets and Collations •  UTF-8, Unicode 9.0, … •  Information Schema •  Views over Data Dictionary, New Views, … •  Performance Schema •  Indexes, Error handling, Data Locks, Latency histograms •  Show •  Hidden columns, Index information
  • 9. © 2019 Percona9 Because MySQL 8 is Great J •  Optimizer •  Histograms, Hints, •  InnoDB •  Redo Log, Encryption, … •  Data Dictionary and Upgrade •  Transactional DD, Meta Data in InnoDB, Auto Upgrade •  Replication / Group Replication •  Binlog Encryption, Atomic DDL Recovery / Savepoints, Switchovers, Auto-rejoin •  Security, Shell, Router and many more features.
  • 10. © 2019 Percona10 Fast Adoption to MySQL 8.X Ref: PLEAMS19 MySQL State of the Dolphin Geir Høydalsvik Keynote
  • 11. © 2019 Percona11 Pros of Upgrading to New Version •  Rich features (Business specific needs) •  Technical advantages (QPS, Throughput, Administration) •  Avoid multiple version upgrades •  Bug fixes •  Security and Compliance •  Community and Vendor support
  • 12. © 2019 Percona12 Cons of Upgrading to New Version •  Risks of hitting unknown issues •  Different behavior and results •  Slower throughput due to •  sql_mode, Optimizer, Charset, etc •  Amount of time and material needed for upgrade project •  Downtime that is scheduled to happen •  Downgrade from MySQL 8.0 to MySQL 5.7 is not supported.
  • 13. © 2019 Percona13 How We Always Upgraded? The good old-fashioned way, maybe
  • 14. © 2019 Percona14 Traditionally pre-V8 •  Major versions only (Ascending Order) •  5.1 à 5.5 •  5.5 à 5.6 •  5.6 à 5.7 •  Set innodb_fast_shutdown=0 •  Stop existing MySQL server •  Change binaries to new version •  Adjust config (my.cnf) to new version •  Start MySQL server •  Run mysql_upgrade(Time Consuming) •  Restart MySQL Server (Additional Downtime)
  • 15. © 2019 Percona15 MySQL 8.0 Upgrade Process Testing Slow Query Log pt-upgrade MySQL Shell Technique Side by Side In-place Cutover Failover to new topology Migrate over time
  • 16. © 2019 Percona16 Before You Even Start Testing •  Review release notes •  Changes in defaults •  Features of new version •  Removed syntax •  Deprecated functions (GIS) •  Data restrictions •  New keywords •  Changed behavior
  • 17. © 2019 Percona17 Testing Phase Setup a new testing environment • Setup slaves as replication • Keep it for a month on no-access server • Try read testing batch testing • Verify schema / connectivity compatibility • Use ProxySQL (mirroring, traffic routing) • Inspect slow query log Build independent cluster •  Query testing •  Capture slow queries and digest (pt-query-digest) •  pt-upgrade •  Application testing •  Verify results
  • 18. © 2019 Percona18 Run pt-upgrade to Compare Queries What does it achieve? •  Identify: • Query execution time • Query row counts • Query checksum How does it achieve? •  Writer Handle – Master Write •  Reader Handler (Read Only) •  Master Reader Handle •  Reporting Reader Handle
  • 19. © 2019 Percona19 Steps to Verify via pt-upgrade (High Level) 1.  Setup two slaves with same hardware one of them MySQL 8 2.  Capture queries (long_query_time=0) for 24 hours 3.  Detach slaves and run pt-query-digest (pt-query-digest --output=slowlog --sample=10 --no-report > slow.log) 4.  Run pt-upgrade with (--max-examples=1) 5.  Repeat (after with warm buffer pool) 6.  Review and analyze results
  • 20. © 2019 Percona20 Steps to Verify via pt-upgrade RO (Detailed) 1.  $ pt-query-digest --sample 25 --no-report --output slowlog <slow_log_file> > slow_log_25_samples.log 2.  $pt-upgrade h=Test1 h=Test2 --max-examples=1 slow_log_25_samples.log 1> pt-upgrade_results.out 2> pt- upgrade_results.err
  • 21. © 2019 Percona21 Steps to Verify via pt-upgrade RW (Detailed) 1.  $ pt-query-digest --sample 25 --no-report --output slowlog <slow_log_file> > slow_log_25_samples.log 2.  $ pt-upgrade h=Test1 h=Test2 --no-read-only --max- examples=1 slow_log_25_samples.log 1> pt- upgrade_results.out 2> pt-upgrade_results.err
  • 22. © 2019 Percona22 Summary pt-upgrade Testing Capture queries for 1-2 hours during peak traffic from the master with long_query_time=0, log_slow_rate_limit=1. Prepare a file for pt- upgrade testing with 50 samples of each query. • Use pt-query- digest to prepare samples. Stop replication on both servers at the same position. • The replication will remain stopped for the duration of pt- upgrade testing. Run pt-upgrade read_only test with -- save-results option. • The first test to warm up the buffer pool. The second test to capture actual results.
  • 23. © 2019 Percona23 MySQL Shell in a Nutshell Nice things about MySQL Shell
  • 24. © 2019 Percona24 The new MySQL Shell •  DBA friendly •  Color mode •  Auto Complete •  Highlighted Syntax •  History , pager/less •  Multiple output formats •  Development friendly •  SQL •  JavaScript •  Batch •  Document Store •  InnoDB Cluster Admin
  • 25. © 2019 Percona25 How Can MySQL Shell help? (upgrade_checker) •  Built-in function util.checkForServerUpgrade() The MySQL server at localhost:33060, version 5.7.26-29 - Percona Server (GPL), Release 29, Revision 11ad961, will now be checked for compatibility issues for upgrade to MySQL 8.0.16… 1) Usage of old temporal type No issues found 2) Usage of db objects with names conflicting with reserved keywords in 8.0 No issues found 3) Usage of utf8mb3 charset No issues found 4) Table names in the mysql schema conflicting with new tables in 8.0 No issues found 5) Foreign key constraint names longer than 64 characters No issues found …
  • 26. © 2019 Percona26 MySQL Shell Can Do Even More (mydba) mysqlsh --py root@localhost import sys sys.path.append('/home/fred/workspace/mysql-shell-mydba') import mydba MySQL localhost:33060+ ssl Py > mydba.getProcedures('airline') Total: 0 MySQL localhost:33060+ ssl Py > mydba.getFragmentedTables() +--------------------------------+------------+---------+------------+------------+------------+-------------------+ | Table | Engine | # Rows | Data Size | Idx Size | Total Size | Data Free | +--------------------------------+------------+---------+------------+------------+------------+-------------------+ | information_schema.COLUMNS | InnoDB | None | 0.00G | 0.00G | 0.00G | 8.00MB (100%) | | information_schema.EVENTS | InnoDB | None | 0.00G | 0.00G | 0.00G | 8.00MB (100%) | | information_schema.OPTIMIZER_TRACE | InnoDB | None | 0.00G | 0.00G | 0.00G | 8.00MB (100%) | +--------------------------------+------------+---------+------------+------------+------------+-------------------+ https://github.com/lefred/mysql-shell-mydba
  • 27. © 2019 Percona27 MySQL Shell Can Do Even More (innotop) mysqlsh --py root@localhost import sys sys.path.append('/home/fred/workspace/mysql-shell-innotop') import innotop innotop.session_processlist.run() MySQL Shell | Percona Server (GPL), Release 29, Revision 11ad961 5.7.26-29 Tuesday 18 June 10:46:23 Cmd Thd Conn Pid State User Db Time Lock Time Query Sleep 8002 7972 18925 None root@localhost airline None 96.07 ms None https://github.com/lefred/mysql-shell-innotop
  • 28. © 2019 Percona28 Upgrade Checker Identifies •  Reserved Data Dictionary table names (catalogs) •  Old Style Decimals, Varchar, Time/Datetime/Timestamp •  CHECK TABLE {table_name} FOR UPGRADE •  Mysqlcheck •  Check-upgrade in 5.7 •  Use REPAIR TABLE & Dump/Restore •  Partitioned tables using non-native partitioning was deprecated in 5.7 removed in 8.0 •  Switch to native partitioning or not
  • 29. © 2019 Percona29 Upgrade Checker Does NOT Identify •  Removed syntax •  Deprecated functions (GIS) •  Data restrictions •  New keywords •  Changed behavior •  Change in defaults
  • 30. © 2019 Percona30 MySQL Upgrade 5.7 to 8.0 (In-place) •  5.7 to 8.0 •  Stop existing MySQL server •  Change binaries to new version •  Adjust config (my.cnf) to new version •  Start MySQL server •  Automatic upgrade •  New mysqld options •  --upgrade=AUTO (default) •  --upgrade=NONE (errors if anything needs upgrade) •  --upgrade=MINIMAL (to avoid DDL on some system tables) •  --upgrade=FORCE •  Eliminates issues with metadata using transactional data dictionary
  • 31. © 2019 Percona31 MySQL Upgrade 5.7 to 8.0 (Replication & Rolling Upgrade) •  5.7 to 8.0 •  Stop existing MySQL Slave server •  Change binaries to new version •  Adjust config (my.cnf) to new version •  Start MySQL server •  Automatic upgrade •  New mysqld options •  --upgrade=AUTO (default) •  --upgrade=NONE (errors if anything needs upgrade) •  --upgrade=MINIMAL (to avoid DDL on some system tables) •  --upgrade=FORCE •  Eliminates issues with metadata using transactional data dictionary •  Repeat above for minimum of 2 slaves and promote one as master
  • 32. © 2019 Percona32 MySQL 8.0 Upgrade MySQL localhost:33060+ ssl SQL > show global variables like "innodb_fast_shutdown"; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | innodb_fast_shutdown | 1 | +----------------------+-------+ 1 row in set (0.0037 sec) MySQL localhost:33060+ ssl SQL > set global innodb_fast_shutdown=0; Query OK, 0 rows affected (0.0007 sec) MySQL localhost:33060+ ssl SQL > show global variables like "innodb_fast_shutdown"; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | innodb_fast_shutdown | 0 | +----------------------+-------+ 1 row in set (0.0054 sec)
  • 33. © 2019 Percona33 MySQL 8.0 Packages
  • 34. © 2019 Percona34 Percona Server for MySQL 8.0 yum Installation - Repo Install the Percona repository You can install Percona yum repository by running the following command as a root user or with sudo: $ sudo yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm You should see some output such as the following: Retrieving http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-latest.noarch.rpm Preparing... ########################################### [100%] 1:percona-release ########################################### [100%] Enable the repository: $ sudo percona-release setup ps80 Install the packages You can now install Percona Server for MySQL by running: $ sudo yum install percona-server-server
  • 35. © 2019 Percona35 Percona Server for MySQL 8.0 yum Installation - Yum Installed: percona-server-server.x86_64 0:8.0.15-6.1.el7 Dependency Installed: percona-server-client.x86_64 0:8.0.15-6.1.el7 percona-server-shared.x86_64 0:8.0.15-6.1.el7 percona-server-shared-compat.x86_64 0:8.0.15-6.1.el7 Complete!
  • 36. © 2019 Percona36 Percona Server for MySQL 8.0 yum Installation - Connectivity MySQL localhost:33060+ ssl SQL > s MySQL Shell version 8.0.16 Session type: X Connection Id: 16 Default schema: Current schema: Current user: root@localhost SSL: Cipher in use: ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 Using delimiter: ; Server version: 8.0.15-6 Percona Server (GPL), Release 6, Revision 63abd08 Protocol version: X protocol Client library: 8.0.16 Connection: localhost via TCP/IP TCP port: 33060 Server characterset: utf8mb4 Schema characterset: utf8mb4 Client characterset: utf8mb4 Conn. characterset: utf8mb4 Uptime: 2 min 26.0000 sec
  • 37. © 2019 Percona37 Percona Server for MySQL 8.0 yum Installation - Errorlog 2019-06-18T14:11:42.790252Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15-6) starting as process 29198 2019-06-18T14:11:47.731578Z 0 [ERROR] [MY-013180] [Server] Function 'mysqlx' already exists. 2019-06-18T14:11:47.731590Z 0 [Warning] [MY-010736] [Server] Couldn't load plugin named 'mysqlx' with soname 'mysqlx.so'. 2019-06-18T14:11:47.738319Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001287 - 'validate password plugin' is deprecated and will be removed in a future release. Please use validate_password component instead 2019-06-18T14:11:49.700555Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2019-06-18T14:11:49.709724Z 0 [ERROR] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-001146 - Table 'mysql.component' doesn't exist 2019-06-18T14:11:49.709743Z 0 [Warning] [MY-013129] [Server] A message intended for a client cannot be sent there as no client-session is attached. Therefore, we're sending the information to the error-log instead: MY-003543 - The mysql.component table is missing or has an incorrect definition. 2019-06-18T14:11:49.719544Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.user]. 2019-06-18T14:11:49.719552Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.db]. 2019-06-18T14:11:49.719561Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.tables_priv]. 2019-06-18T14:11:49.719568Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.columns_priv]. 2019-06-18T14:11:49.719576Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.procs_priv]. 2019-06-18T14:11:49.719587Z 0 [Warning] [MY-010929] [Server] Storage engine 'MyISAM' does not support system tables. [mysql.proxies_priv]. 2019-06-18T14:11:49.720019Z 0 [ERROR] [MY-013143] [Server] Column count of mysql.user is wrong. Expected 51, found 45. The table is probably corrupted 2019-06-18T14:11:49.720107Z 0 [Warning] [MY-010966] [Server] ACL table mysql.role_edges missing. Some operations may fail. 2019-06-18T14:11:49.720125Z 0 [Warning] [MY-010966] [Server] ACL table mysql.default_roles missing. Some operations may fail. 2019-06-18T14:11:49.720135Z 0 [Warning] [MY-010966] [Server] ACL table mysql.global_grants missing. Some operations may fail. 2019-06-18T14:11:49.720143Z 0 [Warning] [MY-010966] [Server] ACL table mysql.password_history missing. Some operations may fail. 2019-06-18T14:11:49.721700Z 0 [ERROR] [MY-010965] [Server] Missing system table mysql.global_grants; please run mysql_upgrade to create it. 2019-06-18T14:11:49.727806Z 0 [Warning] [MY-010727] [Server] System table 'func' is expected to be transactional. 2019-06-18T14:11:49.729669Z 0 [Warning] [MY-010405] [Repl] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened. 2019-06-18T14:11:49.729696Z 0 [ERROR] [MY-010422] [Repl] Error in checking mysql.slave_master_info repository info type of TABLE. 2019-06-18T14:11:49.729707Z 0 [ERROR] [MY-010415] [Repl] Error creating master info: Error checking repositories. 2019-06-18T14:11:49.729716Z 0 [ERROR] [MY-010426] [Repl] Slave: Failed to initialize the master info structure for channel ''; its record may still be present in 'mysql.slave_master_info' table, consider deleting it. 2019-06-18T14:11:49.729735Z 0 [ERROR] [MY-010529] [Repl] Failed to create or recover replication info repositories. 2019-06-18T14:11:49.732745Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.15-6' socket: '/var/lib/mysql/mysql.sock' port: 3306 Percona Server (GPL), Release 6, Revision 63abd08. 2019-06-18T14:11:49.750837Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/lib/mysql/mysqlx.sock' bind-address: '::' port: 33060
  • 38. © 2019 Percona38 Run mysql_upgrade (8.0.15-6) [root@localhost ~]# screen -r download_airline Checking server version. Running queries to upgrade MySQL server. Upgrading system table data. Checking system database. mysql.default_roles OK mysql.engine_cost OK … Found outdated sys schema version 1.5.1. Upgrading the sys schema. Checking databases. airline.ontime OK sys.sys_config OK Upgrade process completed successfully. Checking if update is needed.
  • 39. © 2019 Percona39 Best Practices •  Upgrade slaves first •  Beware of optimizer changes •  Watch default values •  Pay attention to reserve words •  Inspect character sets, file types •  Prepare tooling, backups and monitoring in advance •  Plan your rollback scenarios
  • 40. © 2019 Percona40 Latest News on MySQL 8.0.X Minor versions aren’t minor anymore
  • 41. © 2019 Percona41 MySQL 8.0.16 •  8.0.0 to 8.0.5 Several Bugs Fixed •  8.0.11 Deprecates uft8mb3 •  8.0.12 Improves performance_schema defaults •  8.0.13 Major deprecations InnoDB, Partitioning •  8.0.14 Dual passwords, Lateral Derived Tables, Parallel Read of Index , GR Consistency Levels •  8.0.15 Bugs Fixed •  InnoDB: After a checkpoint operation persisted modifications to data dictionary metadata, there was potential for new metadata changes to be lost under certain circumstances. (Bug #29120297) •  Group Replication was unable to function in the 8.0.14 release of MySQL Server if IPv6 support was disabled at the operating system level, even if the replication group did not use any IPv6 addresses. The issue is fixed by this release of MySQL Server, 8.0.15. (Bug #29249542, Bug #94004) •  If MySQL was running on the host system and within Docker, it was not possible to update or remove MySQL on the host system. (Bug #28244773, Bug #91405)8.0.0 to 8.0.11 several bug fixes •  8.0.16 Account-management capabilities, deprecation of mysql_upgrade, Check Constraints, GR Auto Re-Join •  8.0.17 Clone Plugin, JSON Array Indexes and Schema •  8.0.18 Hash Join, Explain Analyze
  • 42. © 2019 Percona42 Percona Server for MySQL 8.0.16-7 •  Faster and more consistently run queries •  Enhanced security with binary log (binlog) encryption and data-at-rest encryption •  MyRocks, TokuDB Storage Engines •  InnoDB Full-Text Search Improvements •  Extra Hash/Digest Functions •  Improved diagnostics with instrumentation and troubleshooting features
  • 43. © 2019 Percona43 Join in: Percona Community ●  Write for our community blog percona.com/community-blog ●  Join in with our community forums percona.com/forums ●  Contribute to our open source projects
  • 44. © 2019 Percona44 Rate My Session TAP THE SESSION RATE THE SESSION
  • 45. © 2019 Percona45 We’re Hiring! Percona’s open source database experts are true superheroes, improving database performance for customers across the globe. Our staff live in nearly 30 different countries around the world, and most work remotely from home. Discover what it means to have a Percona career with the smartest people in the database performance industries, solving the most challenging problems our customers come across.
  • 46. © 2019 Percona46 References and Links •  Automatic Upgrade and New Error Logging in MySQL 8.0 •  MySQL Shell - A DevOps-engineer day with MySQL’s development and administration tool •  Upgrading to MySQL 8.0? Here is what you need to know… •  Changes in MySQL 8.0 •  The complete list of new features in MySQL 8.0 •  Reducing Risk When Upgrading MySQL •  Changes in MySQL 8.0 •  MySQL 8.0.16: mysql_upgrade is going away
  • 47. © 2019 Percona47 Credits •  @lefred for answering my numerous questions •  My team at Percona helping review this presentation