Skip to main content

4 posts tagged with "mysql"

View All Tags

MySQL 8.4 changes and pre-upgrade checklist for engine upgrades

· 7 min read
Kate (김소희)
Service Manager
MySQL

The MySQL 8.0 series reached its official End of Life (EOL) at the end of April, and security updates and technical support are expected to end going forward. To strengthen service stability and security, KakaoCloud recommends upgrading the engine to MySQL LTS (Long Term Support) 8.4, and supports MySQL Engine Update work through the Maintenance service.

All instance groups currently using the MySQL 8.0 engine can upgrade their engine to version 8.4 by specifying the desired date and time directly. However, because this is a major version update, technical review such as backward compatibility and system variable changes must be performed before the actual work.

Therefore, in this post, we share the major changes and key checklist items that must be reviewed for stable service operation before updating from MySQL 8.0 to the 8.4 series.


Major changes in the MySQL 8.4 series

The 8.4 LTS version includes various default value changes and feature improvements for performance optimization and stronger security.

1. Default authentication plugin changed

The previously used mysql-native-password has been removed, and caching_sha2_password has been set as the default authentication plugin (password plugin).

note

If you need to keep another authentication method or require additional settings, adjust parameters by referring to the official authentication_policy documentation.

2. Parameter default value changes

The table below is excerpted and translated from the official MySQL documentation. In the 8.4 LTS version, default values for major parameters have been significantly changed to maximize system performance.

In particular, resource allocation methods such as InnoDB I/O capacity and log buffer size have been optimized for modern hardware specifications, so be sure to compare them with existing settings before upgrading. For detailed instructions on creating and managing parameter groups, see the separate documentation.

Performance and I/O related changes

ParameterMySQL 8.4MySQL 8.0
innodb_io_capacity10000200
innodb_io_capacity_max2x innodb_io_capacity    Same (minimum default 2000)
innodb_flush_method (Linux)O_DIRECT (fsync if unsupported)fsync
innodb_use_fdatasyncONOFF
innodb_read_io_threads1/2 of logical processors (minimum 4)4
innodb_parallel_read_threads1/8 of logical processors (minimum 4)4

Memory and buffer management

ParameterMySQL 8.4MySQL 8.0
innodb_buffer_pool_instancesinnodb_buffer_pool_size 1 GiB or less1
Over 1 GiB → Automatic calculation based on CPU/chunk (1~64)    
8 (1 if less than 1 GiB)
innodb_log_buffer_size64 MiB (67,108,864)16 MiB (16,777,216)
innodb_buffer_pool_in_core_fileOFF if MADV_DONTDUMP is supported; otherwise ONON
innodb_numa_interleaveONOFF

InnoDB behavior changes

ParameterMySQL 8.4MySQL 8.0
innodb_change_bufferingnone (not used)all
innodb_adaptive_hash_indexOFFON
innodb_page_cleanersSame as innodb_buffer_pool_instances    4
innodb_purge_threadsLogical processors ≤ 16 → 1
Over 16 → 4
4

Doublewrite and log handling

ParameterMySQL 8.4MySQL 8.0
innodb_doublewrite_files22x innodb_buffer_pool_instances
innodb_doublewrite_pages128      innodb_write_io_threads value (default 4)

Automation and server settings

ParameterMySQL 8.4MySQL 8.0
--innodb-dedicated-serverWhen enabled, no flush_method change
Redo log capacity calculation method changed from memory-based to CPU-based    
OFF

TempTable behavior changes

ParameterMySQL 8.4MySQL 8.0
temptable_max_ram3% of total memory (automatically adjusted within 1~4 GiB)    1 GiB (1,073,741,824)
temptable_max_mmap0 (not used)1 GiB
temptable_use_mmapOFFON

3. Automatic histogram update feature added

An automatic histogram update feature for query optimization has been added. In previous versions, histograms had to be updated manually through ANALYZE TABLE, but starting with MySQL 8.4, they are updated automatically depending on conditions.

For detailed application methods, see the ANALYZE TABLE documentation.

4. Replication SQL syntax changed

Replication-related terms have changed from MASTER/SLAVE to SOURCE/REPLICA, and major SQL syntax has changed as follows.

MySQL 8.4MySQL 8.0Function
SHOW BINARY LOG STATUSSHOW MASTER STATUSBinary log position that is the current server's start position (file name, position)
SHOW BINARY LOGSSHOW MASTER LOGSList of binary log files in the server
SHOW REPLICA STATUSSHOW SLAVE STATUSDetailed replication status (IO/SQL threads, delay, and more)
SHOW REPLICASSHOW SLAVE HOSTSList of replicas connected to the current server

Required checklist for a stable upgrade

To prevent server, authentication, and application-related failures that may occur during the upgrade process, be sure to check the following items in advance.

1. MySQL Shell Upgrade Checker

Before upgrading, it is important to use the MySQL Shell utility to carefully review resource compatibility. This tool automatically analyzes the following items and diagnoses stability.

  • Check server settings and schema structure
  • Check compatibility of running SQL queries
  • Detect removed features and conflicts with new reserved words

Through these checks, deprecated options and similar items can be identified in advance, effectively preventing server startup failures or unexpected feature errors that may occur immediately after the upgrade.

2. Check authentication plugin compatibility

When upgrading the MySQL version, the database's default authentication method may change, so authentication plugin compatibility in the current application environment must be checked. In older environments that do not support the latest plugins, login failures may occur immediately after the upgrade.

In particular, check whether the environment supports the latest plugins such as caching_sha2_password. If unsupported, login itself may fail, so you must check the authentication plugin for user accounts in advance and determine whether driver upgrades or plugin changes are needed.

3. Pre-check MySQL Connector (driver)

You must check compatibility between the MySQL connector used by the application and the server version in advance.
Language-specific drivers such as MySQL Connector/J are affected by server version in terms of authentication, protocol, and option compatibility. If old drivers are used, issues such as connection failures, TLS errors, or abnormal query behavior can occur, so driver compatibility must be checked in advance and replaced with the latest version if necessary.


So far, we have reviewed the need to upgrade to MySQL 8.4 LTS following the end of support for MySQL 8.0, the major changes, and the required checklist for a successful transition.

A major version upgrade is more than a simple engine replacement. It is an important opportunity to maximize modern hardware performance and strengthen the security system. However, because there are significant technical changes such as authentication method and driver compatibility, we recommend carefully reviewing them using the MySQL Shell Upgrade Checker and the pre-check guide introduced above.

KakaoCloud is working to provide the optimal environment and technical support so that customers' databases can operate stably without interruption. We hope this post helps you operate services safely. If you have any questions or need support, please contact us anytime through the Helpdesk.

Thank you.

Latest service updates for stronger operational reliability - Iceberg, PITR, SMS

· 4 min read
Mia (정혜원)
Technical Contents Manager
update

One of the most important values in cloud operations is stability. System stability is not only about preventing problems. Its reliability is determined by how quickly and flexibly problems can be recovered and resolved when they occur, and how well they can be prevented and prepared for in advance.

Through recent updates across several services, KakaoCloud has further strengthened this important value of Operational Reliability. We focused on improving users' operating experience around safe data recovery, efficient system maintenance, and fast failure notification systems.

In this post, we take a closer look at three notable improvements that can substantially improve operational reliability.


🧊 1. Iceberg format support for data integrity

One notable change in the recent update is that Data Catalog has officially started supporting the Apache Iceberg format. Apache Iceberg, developed by Netflix, is a powerful open-source table format designed for tracking change history in large-scale data (Time Travel) and restoring to specific points in time.

You can now select the Iceberg catalog type in KakaoCloud Data Catalog. With Iceberg added alongside the existing Hive Metastore-based Standard type, version management and point-in-time recovery have become much simpler even in large-scale data environments. Even if data loss or errors occur, you can easily restore to a previous state, and integration with major analytics engines such as Spark and Trino can be used immediately.

Through this update, KakaoCloud Data Catalog fully supports the integrity and resilience of large-scale data at a practical operational level, and is expected to further improve data reliability across analytics environments.

📝 Learn more about Apache Iceberg catalogs

⏪ 2. Stronger recovery reliability with point-in-time recovery (PITR)

Databases are one of the most important elements of cloud operational stability. Improving the reliability of recovery features in these database systems is truly important. In this MySQL update, the long-awaited Point-in-Time Recovery (PITR) feature has been added.

Based on automatic backups and Binary Logs, you can specify a desired point in time and restore a new instance group to the state at that time. Because you can now specify the recovery point down to the second, you can respond very flexibly to data loss caused by mistakes or errors.

💡 Please note! For service stability, point-in-time recovery currently supports a single availability configuration. If high availability (HA) configuration is required, we recommend adding instances after recovery is complete.

In addition, security groups can now be modified while instances are running, improving flexibility in network control. Account management procedures have also been improved so that password policies are applied in the same way when procedures are used. These detailed improvements to security and recovery features are important changes that substantially increase stability in real operating environments.

📝 Learn more about MySQL point-in-time recovery

📩 3. Notification speed is response speed

The outcome of responding to issues depends on how quickly operators recognize the system status. In this update, Maintenance introduced a new SMS notification feature in addition to existing email. When a maintenance task fails or an important event occurs, a notification is immediately sent to the registered mobile phone number. Now, even if you do not check email, you can recognize and respond to problem situations in real time.

💡 Please note! SMS notifications are sent only for events that require quick action, and project administrators must register valid contact information in advance.

📝 Learn more about Maintenance


These three updates were made in different services, but they all point in the same direction. Data can be restored safely without loss, security settings have become more flexible, and failures can be detected faster. This is the operational resilience KakaoCloud aims for. Stability improvements covering the entire operational process, from data to notifications, will continue.

KakaoCloud will continue improving technical completeness so that customers' operating environments become more stable and predictable. We appreciate your continued interest and support.

👉 Start KakaoCloud now

Building a CDC Pipeline with Kafka

· 4 min read
Analytics Use Cases

Hello. In this post, we introduce how to build a CDC (Change Data Capture) pipeline for real-time data synchronization using KakaoCloud services.

CDC (Change Data Capture) is a technology that detects changes in a database in real time and delivers them to other systems. By capturing changes such as INSERT, UPDATE, and DELETE that occur in a database and delivering them to other systems, real-time data synchronization and processing become possible. This technology is widely used for various purposes, including real-time data sharing between microservices, providing up-to-date data for real-time analytics, and improving the reliability and speed of data backups.

Importance of CDC for real-time synchronization

Let's use the order system of a large online shopping mall as an example. During a special sale for a popular product, Customer A completes the purchase of the last item in stock. In a system without CDC, there may be a delay before changes in the inventory database are reflected in other systems. Therefore, if another customer, Customer B, orders and completes payment for the same product during this delay, the order must later be canceled due to insufficient inventory. If this situation continues to occur in the system, it will negatively affect business reliability as well as customer satisfaction.

If CDC technology had been applied in advance, the database change would have been detected immediately after Customer A's purchase was completed and reflected in real time across all related systems, including inventory management, product display, and payment systems. In this process, the product could immediately be displayed as "sold out," preventing unnecessary additional orders from Customer B.

In this way, CDC contributes to improving both business operational efficiency and customer satisfaction by immediately reflecting database changes. For this reason, many companies are adopting CDC solutions to improve data management and system integration.

KakaoCloud provides various managed services for building CDC pipelines. By using these services, you can easily build a stable and cost-effective CDC pipeline. The following are the core services required to build a CDC pipeline.

  • MySQL: KakaoCloud provides an enterprise-grade managed MySQL service. Automatic backup, real-time monitoring, and security patches are performed automatically, and stable database operations are possible through high availability and automatic failure handling.

  • Advanced Managed Kafka: Advanced Managed Kafka is KakaoCloud's fully managed Apache Kafka service. It automatically configures and manages high-performance infrastructure for large-scale real-time data streaming, and cluster operation and monitoring are automated, enabling a stable message brokering service.

  • Hadoop Eco: Hadoop Eco is a data analytics ecosystem that makes it easy and fast to perform various tasks using large-scale data. It provides various open-source components in the Hadoop ecosystem as fully managed services, reducing the burden of building and operating complex big data environments.

Building a CDC Pipeline with Kafka

You can check the CDC pipeline configuration example described above in detail in a tutorial in KakaoCloud technical documentation.

The Building a CDC Pipeline with Kafka tutorial explains how to set up a CDC pipeline using MySQL, a managed database service, Advanced Managed Kafka for real-time data streaming, and Hadoop Eco for data analytics.

The following architecture shows the overall flow of the tutorial: Debezium detects data changes in MySQL, delivers them in real time through Kafka, and finally analyzes them in Druid and visualizes them with Superset.

Image KakaoCloud CDC pipeline architecture

KakaoCloud CDC pipelines can be used effectively in various business environments, such as real-time inventory management, user behavior analytics, and event-driven systems. The Building a CDC Pipeline with Kafka tutorial provides a useful guide for implementing these cases and applying them to real business environments.

Closing

In recent business environments, CDC pipelines have become an essential element for supporting real-time data synchronization and analytics. Please also remember that by using KakaoCloud managed services, you can easily and efficiently build stable and scalable CDC pipelines.

For more details and usage methods, see Building a CDC Pipeline with Kafka.

Thank you!

MySQL service released in the kr-central-2 region

· 2 min read
Sandy (차신영)
Technical Contents Manager
Notice

The following announcement for the MySQL service was written based on information available in September 2023. For the latest information about KakaoCloud MySQL, see MySQL.

Hello, KakaoCloud's MySQL service is now available in the kr-central-2 region.

KakaoCloud MySQL is a fully managed database service built on an open-source relational database management system (RDBMS).

This release of KakaoCloud MySQL includes support for automatic instance recovery, adding read-only instances (read replicas), and high availability.

Key features and supported items of the MySQL service are as follows.

  • High availability and Multi-AZ support: Ensures high availability and lets you create an instance group by selecting subnets through a Multi-AZ configuration.
  • Auto Failover: Supports not only manual failover but also automatic failover. When a system failure occurs, the database can automatically switch to another node to minimize service interruption.
  • MySQL 8.0.34 support: Lets you use the latest features and security updates of MySQL 8.0.34.
  • Support for m2a and r2a instance specifications: Lets you choose an instance that fits your workload and expect resource optimization and performance improvement.

For more information, see the MySQL page.

We will continue working to provide safer and more convenient cloud services.

Thank you.