Slide 1

Slide 1 text

MySQLのリリースモデルの変更点と最新アップデート ⽣駒 眞知⼦/Machiko IKOMA MySQL Principal Solution Engineer MySQL Global Business Unit

Slide 2

Slide 2 text

MySQLとは? 世界でもっとも普及している、オープンソースデータベース LAMPスタックの"M" • Linux + Apache + MySQL + PHP/Perl/Python • Webアプリケーションを開発する時のデファクトスタンダード マルチプラットフォーム対応 • Windows, Linux, macOS ⾼性能、軽量、⾼信頼 • 特に同時多発的に⾏われる更新処理の対応が得意 導⼊や運⽤が簡単 • ダウンロードからデータベース起動まで15分以内 • 管理不要なシンプルさ 3 「⼩さく始めて⼤きく育てる」 Copyright © 2024, Oracle and/or its affiliates

Slide 3

Slide 3 text

MySQLの道のり 4 Copyright © 2024, Oracle and/or its affiliates 1995 2000 2005 2010 2015 2020 MySQL AB(MySQL社)創業 最初のバージョンを公開 独⾃のオープンソース・ ライセンスからGPLに 商⽤版サブスクリプション ”MySQL Network” 発表 オラクルがMySQLの トランザクション・エンジン InnoDBの開発企業 Innobase OYを買収 サン・マイクロシステムズが MySQL ABを$1B (約11億円)で買収 オラクルがサン・マイクロシステムズを $7.4B (約81億円)で買収することを発表 欧州委員会の承認を経て 2010年1⽉27⽇に買収完了 MySQL部⾨も MySQL Global Business Unit として統合 MySQL社の ⽇本法⼈ MySQL株式会社 設⽴ MySQLのクラウド・ サービスの第1世代を リリース ⾼速クエリ処理 エンジンを搭載した MySQL HeatWave リリース MySQLのクラウド・ サービスの第2世代となる MySQL Database Serviceをリリース v3.23 v4.0 v5.1 v5.0 v5.5 v5.6 v5.7 v8.0 v8.2 v8.1 v8.4 v8.3

Slide 4

Slide 4 text

MySQLの道のり 5 Copyright © 2024, Oracle and/or its affiliates 1995 2000 2005 2010 2015 2020 MySQL AB(MySQL社)創業 最初のバージョンを公開 独⾃のオープンソース・ ライセンスからGPLに 商⽤版サブスクリプション ”MySQL Network” 発表 オラクルがMySQLの トランザクション・エンジン InnoDBの開発企業 Innobase OYを買収 サン・マイクロシステムズが MySQL ABを$1B (約11億円)で買収 オラクルがサン・マイクロシステムズを $7.4B (約81億円)で買収することを発表 欧州委員会の承認を経て 2010年1⽉27⽇に買収完了 MySQL部⾨も MySQL Global Business Unit として統合 MySQL社の ⽇本法⼈ MySQL株式会社 設⽴ MySQLのクラウド・ サービスの第1世代を リリース ⾼速クエリ処理 エンジンを搭載した MySQL HeatWave リリース MySQLのクラウド・ サービスの第2世代となる MySQL Database Serviceをリリース v3.23 v4.0 v5.1 v5.0 v5.5 v5.6 v5.7 v8.0 v8.2 v8.1 v8.4 v8.3

Slide 5

Slide 5 text

柔軟なMySQLの利⽤⽅法 MySQLサーバーは全て共通のソースコードのためハイブリッド構成も可能 コミュニティ版MySQL • レプリケーションや透過的暗号化 など運⽤に重要な機能を実装 • GPLv2 *OpenSSLに関する追加条項あり 商⽤版MySQL • サポートサービスや⾼度な セキュリティ機能を提供 • SE/EE/CGEが選択可能 HeatWave MySQL Database Service • MySQLチームが100%開発・ 提供するクラウド・サービス • ⾼速データ分析エンジン& 機械学習エンジンを組み込み MySQL Operator for k8s • MySQLの⾼可⽤性構成を Kubernetes上に構築&運⽤管理 • 商⽤版MySQL EEがベース 6 Copyright © 2024, Oracle and/or its affiliates いずれの利⽤⽅法でもMySQL開発チームと連携した 専⾨部隊によるサポートサービスをご利⽤いただけます MySQLを⾃社で運⽤管理 MySQLのマネージドサービス クラウドネイティブなMySQL 15倍 Redshift より⾼速 18倍 Snowflake より⾼速 35倍 BigQuery より⾼速 TPC-H 500TB MySQL HeatWave Lakehouseとのクエリ処理性能⽐較

Slide 6

Slide 6 text

1 4 7 10 Copyright © 2024, Oracle and/or its affiliates 7 MySQLに関連する数字です。何の数字でしょうか︖

Slide 7

Slide 7 text

1 4 7 10 Copyright © 2024, Oracle and/or its affiliates 8 ⽉ ⽉ ⽉ ⽉ ヒント1

Slide 8

Slide 8 text

Copyright © 2024, Oracle and/or its affiliates 9 ヒント2︓今⽇の発表タイトル MySQLのリリースモデルの変更点と最新アップデート

Slide 9

Slide 9 text

Copyright © 2024, Oracle and/or its affiliates 10 解答 MySQLの新しいジョンがリリースされる⽉

Slide 10

Slide 10 text

• オラクル社が計画しているCPU(Critical Patch Updates)の提供タイミングに合わせて MySQLの新しいバージョンリリースが計画されている • Critical Patch Updates, Security Alerts and Bulletins https://www.oracle.com/jp/topics/technologies/security/alerts.html https://www.oracle.com/security-alerts/ オラクル社が提供する製品は、原則としてセキュリティが確保されております。しかし、極稀に重⼤な セキュリティ上の脆弱性が発⾒されることがあります。オラクル社はこの脆弱性の修復のため迅速な ⾏動をとり、最終的に、脆弱性の簡潔な説明、それによるリスク、回避策とパッチの提供時期を 盛り込んだセキュリティ情報を発⾏します。 補⾜ Copyright © 2024, Oracle and/or its affiliates 11

Slide 11

Slide 11 text

• オラクル社が計画しているCPU(Critical Patch Updates)の提供タイミングに合わせて MySQLの新しいバージョンリリースが計画されている • Critical Patch Updates Critical Patch Updates provide security patches for supported Oracle on-premises products. They are available to customers with valid support contracts. Starting in April 2022, Critical Patch Updates are released on the third Tuesday of January, April, July, and October (They were previously published on the Tuesday closest to the 17th day of January, April, July, and October). The next four dates are: • 16 July 2024 • 15 October 2024 • 21 January 2025 • 15 April 2025 補⾜ Copyright © 2024, Oracle and/or its affiliates 12

Slide 12

Slide 12 text

リリースは基本的に3ヶ⽉毎 OracleのCPUと同じ 該当⽉の20⽇前後 臨時のリリースあり Bug Fix series バグ修正とセキュリティ・パッチ 新機能の追加無し 機能の⾮互換も無し 共通のソースコード コミュニティ/商⽤/クラウド パッケージ化時に振り分け ロックインの不安なし ライフタイム・サポート GA後8年間のパッチ提供 以降は問い合わせ対応継続 MySQLのリリースに関する基本 Copyright © 2024, Oracle and/or its affiliates 13 1 4 7 10 1 8 8.0

Slide 13

Slide 13 text

8.4.2 LTS 8.0.39 Copyright © 2024, Oracle and/or its affiliates 14 現在の最新バージョン

Slide 14

Slide 14 text

MySQLのバージョン表記 Copyright © 2024, Oracle and/or its affiliates 8 .0.39 メジャーバージョン マイナーバージョン リリースシリーズ内の バージョン リリースシリーズ 15

Slide 15

Slide 15 text

Copyright © 2024, Oracle and/or its affiliates イノベーション・リリースと LTS(Long-Term Support)リリース 16

Slide 16

Slide 16 text

イノベーション・リリース バグ修正と新機能追加を⾏うリリース MySQL 8.1, 8.2, 8.3 … • リリース⽅針 バグ修正 セキュリティ・パッチ 新機能追加 機能やパラメータの⾮推奨化および削除 • リリースサイクル 3ヶ⽉毎 次バージョンのリリースでEOL Copyright © 2024, Oracle and/or its affiliates LTS(Long-Term Support)リリース バグ修正のみを⾏うリリース MySQL 8.4 • リリース⽅針 バグ修正 セキュリティ・パッチ バージョン間の互換性重視 • リリースサイクル リリース後8年間サポート 複数のLTSリリースをサポート予定 17 本番運⽤想定のテスト済み 本番運⽤想定のテスト済み

Slide 17

Slide 17 text

GAから最⻑8年間 バグ修正、パッチ、アップデートを提供 Oracle Lifetime Support for MySQL Copyright © 2024, Oracle and/or its affiliates 18 サポート概要 Premier (1-5年) Extended (6-8年) Sustaining (9年以降) 24時間365⽇サポート ✅ ✅ ✅ 無制限インシデント ✅ ✅ ✅ ナレッジベース ✅ ✅ ✅ メンテナンス・リリース、バグ修正、パッチ、 アップデートの提供 ✅ ✅ 既存のもののみ

Slide 18

Slide 18 text

2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 MySQL Releases and Support Timelines MySQL 5.6 MySQL 5.7 MySQL 8.0 MySQL 8.1 MySQL 8.2 MySQL 8.3 MySQL 8.4 Copyright © 2024, Oracle and/or its affiliates 19 MySQL 9.0 Bug Fix series LTS series Latest Innovation Release Innovation Release Premier Support Extended Support Sustaining Support

Slide 19

Slide 19 text

8.4.0 LTS 8.0.37 Copyright © 2024, Oracle and/or its affiliates 20 2024年4⽉のリリース時

Slide 20

Slide 20 text

9.0.0 IR 8.4.1 LTS 8.0.38 Copyright © 2024, Oracle and/or its affiliates 21 2024年7⽉のリリース時

Slide 21

Slide 21 text

9.0.1 IR 8.4.2 LTS 8.0.39 Copyright © 2024, Oracle and/or its affiliates 22 2024年7⽉のリリース時 ※こういうこともあります。。。

Slide 22

Slide 22 text

9.2.0 IR 8.4.3 LTS 8.0.40 Copyright © 2024, Oracle and/or its affiliates 23 2024年10⽉のリリース時 ※バージョン番号はリリースされるまで確定ではありませんが、想定されるバージョン番号で説明しています。

Slide 23

Slide 23 text

• MySQL 8.4.0が2024年4⽉30⽇にリリースされた • MySQL 8.4系は今後バグ修正とセキュリティパッチのみ提供される (LTS) • 基本的に3ヶ⽉ごとに新しいマイナーバージョンがリリースされる • MySQL 8.0系は、MySQL 8.0.34以降はバグ修正とセキュリティパッチのみ提供される • MySQL 8.0.34は2023年7⽉18⽇にリリースされた • 基本的に3ヶ⽉ごとに新しいマイナーバージョンがリリースされる • 本⽇時点の最新バージョンはMySQL 8.0.37 • MySQL 8.0のサポート終了は2025年4⽉にPremier Supportが終了し、 2026年4⽉にExtended Supportが終了する予定 現時点でサポートされているイノベーション・リリース以外のリリースについて Copyright © 2024, Oracle and/or its affiliates 24

Slide 24

Slide 24 text

MySQL HeatWave Database Service のサポート期間も明⽂化されました Copyright © 2024, Oracle and/or its affiliates 25 出典︓ https://docs.oracle.com/en-us/iaas/mysql-database/doc/mysql-server-versions.html

Slide 25

Slide 25 text

アップグレード 例 インプレース CLONE Replication DumpInstance/ LoadDump LTS -> LTS LTS 8.4 -> LTS 9.7 ✅ ❌ ✅ ✅ LTS 8.4 -> LTS 10.7 ❌ ❌ ❌ ❌ LTS 8.4.0 -> LTS 8.4.11 ✅ ✅ ✅ ✅ Innovation -> Innovation Innovation 8.1 -> 8.2 ✅ ❌ ✅ ✅ Innovation 8.1 -> 8.3 ✅ ❌ ✅ ✅ Innovation -> LTS Innovation 8.1 -> LTS 8.4 ✅ ❌ ✅ ✅ Copyright © 2024, Oracle and/or its affiliates 26

Slide 26

Slide 26 text

ダウングレード 例 インプレース CLONE Replication DumpInstance/ LoadDump LTS -> LTS LTS 9.7 -> LTS 8.4 ❌ ❌ 🔺 🔺 LTS 10.7 -> LTS 8.4 ❌ ❌ ❌ ❌ LTS 8.4.11 -> LTS 8.4.0 ✅ ✅ ✅ ✅ LTS -> Innovation LTS 9.7 -> Innovation 9.6 ❌ ❌ 🔺 🔺 LTS 9.7 -> Innovation 9.5 ❌ ❌ 🔺 🔺 🔺 ロールバック⽤途のみでのサポートに限られる Copyright © 2024, Oracle and/or its affiliates 27

Slide 27

Slide 27 text

• Connector/J, C++, NET, ODBC, Python: MySQLサーバーのバージョン番号の最新に追随 例) MySQL 8.0.38, 8.4.1と9.0.0がリリース → これらのConnectorsのバージョン番号は9.0.0になる サポート中の全てのMySQLサーバーへ接続可能 • MySQL Workbench: 8.0でリリース終了→ MySQL Shell for VS Codeが後継 (MySQL Workbench 8.0 は サポート中の全てのMySQLサーバーへ接続可能) • MySQL Enterprise Monitor: 2025年1⽉でEOL → 「Oracle Enterprise Manager for MySQL」と「OCI Database Management Service 」が後継 コネクタ、周辺ツールについて Copyright © 2024, Oracle and/or its affiliates 28

Slide 28

Slide 28 text

MySQL Workbench (EOL) • MySQLサーバーを管理、起動停⽌ • ER図を⽤いたデータベース設計 • ER図からMySQLサーバー上にテーブルや インデックスを作成するフォワード・エンジニアリング • MySQLサーバー上のオブジェクトからER図を 作成するリバース・エンジニアリング • SQLエディタでのSQL開発 • 各種RDBMSからのマイグレーション • PostgreSQL, MS SQL Server, MS Access, SQLite, SQL Anywhere, Sybase ASE MySQL Shell for VS Code (previewリリース) • MySQLサーバーやHeatWaveインスタンスへの 接続を管理 • Oracle Cloud Infrastructure (OCI) の HeatWaveや関連するサービスの管理 • データベースに接続した上でDB Editorでの作業 • DB Notebook インターフェース • MySQL Shell GUI Console https://www.mysql.com/jp/why- mysql/presentations/dbts2024-appdev/ MySQLのGUIクライアント Copyright © 2024, Oracle and/or its affiliates 29

Slide 29

Slide 29 text

• MySQLの Innovation と Long-Term Support (LTS) バージョンのご紹介 https://blogs.oracle.com/mysql-jp/post/introducing-mysql-innovation-and-longterm- support-lts-versions-jp • MySQL 8.4 LTS リリースノート https://dev.mysql.com/doc/relnotes/mysql/8.4/en/news-8-4-0.html • MySQL 8.4 LTSで追加、削除、⾮推奨となったシステム変数およびステータス変数 https://dev.mysql.com/doc/refman/8.4/en/added-deprecated-removed.html • MySQL 8.4 LTSと8.0での機能差 https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html • バージョン間のアップグレードおよびダウングレード https://dev.mysql.com/doc/refman/8.4/en/upgrade-paths.html https://dev.mysql.com/doc/refman/8.4/en/downgrading.html • MySQL Parameters (⽇本MySQLユーザ会代表 とみた まさひろ⽒ 作成のツール) https://mysql-params.tmtms.net/mysqld/?vers=8.0.37,8.4&diff=true MySQL 8.4 LTS関連情報 Copyright © 2024, Oracle and/or its affiliates 30

Slide 30

Slide 30 text

Copyright © 2024, Oracle and/or its affiliates MySQL Shell︓MySQLのバージョンアップに役⽴つ機能を搭載 31

Slide 31

Slide 31 text

• MySQLの「新しい」クライアント・プログラム • 2017年にGA (新しい︖🤔) • SQL以外にもJavaScriptとPythonをサポート • 開発や運⽤を効率化する各種DevOpsユーティリティ • [Tab]キーでコード補完 地味に便利 • MySQLサーバーへの接続⽅法いろいろ • ユーザー名とパスワードのログイン情報を記憶させることも可能 • Linux: .mylogin.cnf に暗号化して格納 • macOS, Windows: OSの鍵管理システムを利⽤ MySQL Shellって何︖ Copyright © 2024, Oracle and/or its affiliates 32 $ mysqlsh -u user -h host -P port -D schema $ mysqlsh --user=user --host=host --port=port --schema=schema $ mysqlsh user@host:port/schema $ mysqlsh --uri user@host:port/schema $ mysqlsh mysqlx://user@host:port/schema MySQL Shellを起動後に接続も可能 MySQL SQL > ¥js Switching to JavaScript mode... MySQL JS > ¥py Switching to Python mode... MySQL Py > ¥sql Switching to SQL mode... Commands end with ; MySQL SQL > MySQL Shell 8.1.0 Copyright (c) 2016, 2023, Oracle and/or its affili Oracle is a registered trademark of Oracle Corpora Other names may be trademarks of their respective Type '¥help' or '¥?' for help; '¥quit' to exit. MySQL JS > ¥c user@host:port/schema

Slide 32

Slide 32 text

5. バージョンアップ アップグレード・チェッカー・ユーティリティ 6. どこで作業しているかの確認 プロンプトのカスタマイズ 7. レプリケーションの構築 • グループ・レプリケーションの構築 MySQL InnoDB Cluster • ⾮同期レプリケーションの構築 MySQL InnoDB ReplicaSet • 災害対策構成の構築 MySQL InnoDB ClusterSet MySQL Shellの主な機能 Copyright © 2024, Oracle and/or its affiliates 33 1. テスト環境の作成 「サンドボックス」MySQLサーバーの構築と起動 2. アプリ開発でJSONの利⽤ MySQLドキュメントストア (NoSQL APIとドキュメント・データベース) 3. バックアップ/リカバリやデータ移動 ダンプ&ロードユーティリティ コピーユーティリティ パラレルインポートユーティリティ JSONインポートユーティリティ テーブルエクスポートユーティリティ 4. パフォーマンス関連情報の取得 診断ユーティリティ (Diagnostics Utilities)

Slide 33

Slide 33 text

5. バージョンアップ アップグレード・チェッカー・ユーティリティ 6. どこで作業しているかの確認 プロンプトのカスタマイズ 7. レプリケーションの構築 • グループ・レプリケーションの構築 MySQL InnoDB Cluster • ⾮同期レプリケーションの構築 MySQL InnoDB ReplicaSet • 災害対策構成の構築 MySQL InnoDB ClusterSet MySQL Shellの主な機能 Copyright © 2024, Oracle and/or its affiliates 34 1. テスト環境の作成 「サンドボックス」MySQLサーバーの構築と起動 2. アプリ開発でJSONの利⽤ MySQLドキュメントストア (NoSQL APIとドキュメント・データベース) 3. バックアップ/リカバリやデータ移動 ダンプ&ロードユーティリティ コピーユーティリティ パラレルインポートユーティリティ JSONインポートユーティリティ テーブルエクスポートユーティリティ 4. パフォーマンス関連情報の取得 診断ユーティリティ (Diagnostics Utilities)

Slide 34

Slide 34 text

バージョンアップ、そのまえに MySQLのバージョンアップ前に互換性のチェック • 5.7から8.0, 8.1へのメジャーバージョンアップ • 5.7, 8.0内でのマイナーバージョンアップ • 5.7より前のバージョンには⾮対応 • GA版のMySQLサーバーのみ対応 • バージョンアップ先を指定してチェック可能 チェック対象のMySQLサーバーに接続 • 接続時のユーザーは以下の権限必須 RELOAD, PROCESS, SELECT • コマンドラインまたはMySQL Shell内でコマンド実⾏ 1) 5.6.4以前のTIME型、DATETIME型、TIMESTAMP型の利⽤ 2) ルーチンなどのオブジェクトでのMySQL 8.0⽂法チェック 3) オブジェクト名でのMySQL 8.0の予約語の利⽤ 4) 古いキャラクタセット utf8mb3 または utf8 の利⽤ 5) テーブル名でのMySQL 8.0のデータディクショナリのテーブル名の利⽤ 6) ネイティブのパーティショニングをサポートしていないストレージエンジンで のパーティショニングの利⽤ 7) 64⽂字以上の外部キー名の利⽤ 8) 廃⽌されたSQLモード MAXDB の利⽤ 9) 廃⽌されたSQLモードの利⽤ 10) ENUM型またはSET型での64⽂字以上の項⽬の利⽤ 11) 共通表領域に置かれたテーブルでのパーティショニングの利⽤ 12) 表領域ファイルのファイルパスの循環参照 13) 廃⽌された関数の利⽤ 14) 廃⽌された`GROUP BY ASC/DESC`構⽂の利⽤ 15) 廃⽌されたエラーログをシステムログに書き出すオプションの利⽤ 16) 廃⽌されたシステム変数の利⽤ 17) デフォルト値が新しい値に変わるシステム変数の利⽤ 18) 年⽉⽇にゼロが含まれていないか 19) ファイルの削除や破損によるスキーマの不整合 20) 8.0でInnoDBを利⽤するテーブルでの他のエンジン利⽤ 21) `check table x for upgrade`コマンドで発⽣したエラー 22) 認証プラグインのアップグレードに関する注意事項 23) 初期値を持てないカラム対応 24) 5.7で⽤いられていた不適切なテーブル名/スキーマ名 25) 5.7での孤⽴したルーチン 26) 廃⽌された、オブジェクト名での$サインの使⽤ 27) 5.7以上では動かない⼤きすぎるインデックス 28) 廃⽌された、ルーチンでの'.'⽂法 アップグレード・チェッカー・ユーティリティ Copyright © 2024, Oracle and/or its affiliates 35

Slide 35

Slide 35 text

コマンドラインから実⾏: mysqlsh root:@localhost:3306 -e "util.checkForServerUpgrade();" MySQL ShellのJavaScriptまたはPythonモードから実⾏ mysql-js> util.checkForServerUpgrade("root@localhost:3306"); MySQL ShellからMySQLサーバーに接続済みの場合は引数無しで実⾏ mysql-py> util.check_for_server_upgrade(); 出⼒: Error - 修正しない場合はバージョンアップが失敗する (例: 古い⽇付型利⽤など) Warning -修正しない場合はバージョンアップ後に意図しないエラーが発⽣する可能性あり (例: 予約語との競合) Notice – 情報提供のみ 出⼒の最後にそれぞれの件数をサマリーとして表⽰ アップグレード・チェッカー・ユーティリティ Copyright © 2024, Oracle and/or its affiliates 36

Slide 36

Slide 36 text

Copyright © 2024, Oracle and/or its affiliates 37 MySQL Shell 8.1から MySQL サーバー 5.7.42 に対してチェックした結果 MySQL Shell でのアップグレードチェック (1/4) MySQL JS > shell.connect('root@localhost:4321') Creating a session to 'root@localhost:4321' Please provide the password for 'root@localhost:4321': ********** Save password for 'root@localhost:4321'? [Y]es/[N]o/Ne[v]er (default No): Y Fetching schema names for auto-completion... Press ^C to stop. Your MySQL connection id is 6 Server version: 5.7.42-log MySQL Community Server (GPL) No default schema selected; type ¥use to set one. MySQL localhost:4321 ssl JS > util.checkForServerUpgrade() The MySQL server at localhost:4321, version 5.7.42-log - MySQL Community Server (GPL), will now be checked for compatibility issues for upgrade to MySQL 8.1.0... 1) Usage of old temporal type No issues found ...... 中略 ...... アップグレード対象のMySQLに接続 (クラシックプロトコルでよい) util.checkForServerUpdate() を実⾏ チェック項⽬について 順次検証結果をレポート ※MySQL Shell 8.1は既にサポート終了しているバージョンであるため、現時点ではMySQL 8.4をご使⽤ください

Slide 37

Slide 37 text

Copyright © 2024, Oracle and/or its affiliates 38 MySQL Shell 8.1から MySQL サーバー 5.7.42 に対してチェックした結果(続) MySQL Shell でのアップグレードチェック (2/4) 9) Usage of obsolete sql_mode flags Notice: The following DB objects have obsolete options persisted for sql_mode, which will be cleared during upgrade to 8.0. More information: https://dev.mysql.com/doc/refman/8.0/en/mysql-nutshell.html#mysql-nutshell-removals global system variable sql_mode - defined using obsolete NO_AUTO_CREATE_USER option ...... 中略 ...... 15) Removed system variables for error logging to the system log configuration To run this check requires full path to MySQL server configuration file to be specified at 'configPath' key of options dictionary More information: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-13.html#mysqld-8-0-13-logging ...... 中略 ...... ※MySQL Shell 8.1は既にサポート終了しているバージョンであるため、現時点ではMySQL 8.4をご使⽤ください

Slide 38

Slide 38 text

Copyright © 2024, Oracle and/or its affiliates 39 MySQL Shell 8.1から MySQL サーバー 5.7.42 に対してチェックした結果(続) MySQL Shell でのアップグレードチェック (3/4) 22) New default authentication plugin considerations Warning: The new default authentication plugin 'caching_sha2_password' offers more secure password hashing than previously used 'mysql_native_password’ (and consequent improved client connection authentication). However, it also has compatibility implications that may affect existing MySQL installations. If your MySQL installation must serve pre-8.0 clients and you encounter compatibility issues after upgrading, the simplest way to address those issues is to reconfigure the server to revert to the previous default authentication plugin (mysql_native_password). For example, use these lines in the server option file: [mysqld] default_authentication_plugin=mysql_native_password However, the setting should be viewed as temporary, not as a long term or permanent solution, because it causes new accounts created with the setting in effect to forego the improved authentication security. If you are using replication please take time to understand how the authentication plugin changes may impact you. More information: https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password- compatibility-issues https://dev.mysql.com/doc/refman/8.0/en/upgrading-from-previous-series.html#upgrade-caching-sha2-password- replication ※MySQL Shell 8.1は既にサポート終了しているバージョンであるため、現時点ではMySQL 8.4をご使⽤ください

Slide 39

Slide 39 text

Copyright © 2024, Oracle and/or its affiliates 40 MySQL Shell 8.1から MySQL サーバー 5.7.42 に対してチェックした結果(続) MySQL Shell でのアップグレードチェック (4/4) ...... 中略 ...... Errors: 0 Warnings: 1 Notices: 1 NOTE: No fatal errors were found that would prevent an upgrade, but some potential issues were detected. Please ensure that the reported issues are not significant before upgrading. MySQL localhost:4321 ssl JS > Error、Warning、Noticeの件数を 最後にサマリーとして表⽰ ※MySQL Shell 8.1は既にサポート終了しているバージョンであるため、現時点ではMySQL 8.4をご使⽤ください

Slide 40

Slide 40 text

Copyright © 2024, Oracle and/or its affiliates MySQL&MySQL HeatWaveの最新情報 41

Slide 41

Slide 41 text

MySQL for Developers License Copyright © 2024, Oracle and/or its affiliates 42 Full access to MySQL Enterprise Edition • Enterprise Server • Backup • Router • Shell • Connectors • JavaScript Learn, Develop, Prototype 学習、開発⽤途であれば、MySQL Enterprise EditionをOTNからダウンロードして無償で使⽤可能に︕︕ ※OTN︓Oracle Technology Network Download Now https://www.oracle.com/mysql/technologies/mysql-enterprise-edition-downloads.html

Slide 42

Slide 42 text

MySQL Shell for VS Code ※現時点ではプレビューリリース Copyright © 2024, Oracle and/or its affiliates 43 Database Notebook Interface • Write, Execute, Edit MySQL Shell GUI Console • Full Power of MySQL Shell Full MySQL HeatWave Integration • Manage MySQL HeatWave Instances ドキュメント︓MySQL Shell GUI / MySQL Shell for VS Code https://dev.mysql.com/doc/mysql-shell-gui/en/

Slide 43

Slide 43 text

・OpenTelemetry (OTel) プロジェクトは、オープンソースの可観測性フレームワークであり、 共通の「可観測性」標準を提供します。 利⽤者は可観測性データ (トレース、メトリック、ログ) をエクスポートするために アプリケーションをインストルメント化できるため、デバッグとテストの粒度が向上します。 OpenTelemetry TRACE ( MySQL Enterprise Edition) https://dev.mysql.com/doc/refman/8.1/en/telemetry.html サーバーコンポーネントのインストール クライアントプラグインのインストール ・コマンドライン --telemetry_client ・[mysql] telemetry-client = ON | OFF mysql> install component ‘file://component_telemetry’; MySQL 8.1 Copyright © 2024, Oracle and/or its affiliates 44

Slide 44

Slide 44 text

Monitoring, Diagnostics & Predictive Insights Database Management Service Copyright © 2024, Oracle and/or its affiliates 45 • オラクルクラウド上で提供されているデータベースの監視サービスから MySQL HeatWave Database Serviceも監視可能に︕ • 単⼀の監視ツールからクラウド上のMySQLもオンプレミス環境の MySQLも監視可能に(なる予定)︕ • Support for On-premises deployment MySQL would be GA in July 2024 • パフォーマンス情報や負荷状況を可視化 • 変化するワークロードの需要予測 • ML-driven SQL insights

Slide 45

Slide 45 text

・group_replication_set_as_primary()による切替は処理中の全てのDML操作を含むトランザクション終了まで 待機する。 Group Replication https://dev.mysql.com/doc/refman/8.1/en/group-replication-functions-for-new-primary.html#function_group-replication-set-as-primary ・パフォーマンススキーマに新しい列[MEMBER_FAILURE_SUSPICIONS_COUNT]を追加 *各グループメンバーがローカルノードによって疑わしいとみなされた回数を⽰す ・Read LockもしくはWrite Lockを取得する操作⼀覧 Read Lock Write Lock SHOW STATUS LIKE 'Uptime' START GROUP_REPLICATION SELECT * FROM performance_schema.global_status WHERE VARIABLE_NAME='Uptime' STOP GROUP_REPLICATION group_replication_force_members group_replication_message_cache_size group_replication_get_write_concurrency() group_replication_set_communication_protocol() Automatic rejoin group_replication_single_primary_modeへの変更時 MySQL 8.1 Copyright © 2024, Oracle and/or its affiliates 46

Slide 46

Slide 46 text

MySQL InnoDB Real Only Replica Instance MySQL InnoDB ClusterにReadReplicaを実装 ・⾮同期Replication ・デフォルトではPrimaryに接続 *PrimaryのFailOverに⾃動対応 ・Secondaryへの接続も指定可能 [options] : replicationSources [primary secondary 接続先インスタンスのリスト] ・接続済みのインスタンスでは cluster.setInstanceOption() cluster.rejoinInstance() MySQL Shell 8.1 mysqlsh>.addReplicaInstance(instance, [options]) MySQL Shell 8.1 Copyright © 2024, Oracle and/or its affiliates 47

Slide 47

Slide 47 text

MySQL InnoDB Real Only Replica Instance MySQL Routerによる振り分け制御 option : “read_only_targets” • all: 全てのリードレプリカとセカンダリが対象 • read_replicas: リードレプリカのみ • secondaries: セカンダリインスタンスのみ MySQL Shell 8.1 mysqlsh> .setRoutingOption([router], option, value)) *ターゲットが存在しないもしくは上記以外の値が設定された場 合、デフォルトのsecondariesの制御となる MySQL Shell 8.1 Copyright © 2024, Oracle and/or its affiliates 48

Slide 48

Slide 48 text

MySQL InnoDB ClusterSetとの組み合わせ例 MySQL Shell 8.1 Copyright © 2024, Oracle and/or its affiliates 49

Slide 49

Slide 49 text

MySQL Shell 8.1 (util新機能) mysqlsh> util.copyInstance(connectionData[, options]) mysqlsh> util.copySchemas(schemaList, connectionData[, options]) mysqlsh> util.copyTables(schemaName, tablesList, connectionData[, options]) コピーユーティリティは中間ストレージを使わずに、MySQLインスタンス間でDDLとデータをコピー ・dumpInstance() とloadDump()を1つの操作に統合 *ほとんどのオプションをそのまま利⽤可能 ・MySQL HeatWave Database Serviceへのコピーも可能 *デフォルトでMySQL HeatWave Database Serviceへの互換性チェックが有効 *ソースがMySQL Version 5.7の場合は⾃動的にcheckForServerUpgradeを実⾏ https://dev.mysql.com/doc/mysql-shell/8.1/en/mysql-shell-utils-copy.html MySQL Shell 8.1 Copyright © 2024, Oracle and/or its affiliates 50

Slide 50

Slide 50 text

• MySQLネイティブ認証のプラグイン化 • ネイティブ認証は8.0.34で⾮推奨 • サーバー起動時に無効にしておくことが可能に • MySQL 8.4 LTSでも削除はされず ただしデフォルトではOFF • INFORMATION_SCHEMA.PROCESSLISTテーブルが ⾮推奨に • Performance Schemaのprocesslist テーブルの利⽤を推奨 • STR_TO_DATE()関数の引数に 不正な⽇付が指定された場合にエラーで返すように • 韓国情報通信技術協会のGS認定への対応 • [Enterprise Edition] スマートカードやセキュリティ キー、⽣体認証⽤デバイスなど利⽤する FIDOおよびFIDO2に準拠したWebAuthnに対応 MySQL 8.2での機能追加や変更点 MySQL 8.2 Copyright © 2024, Oracle and/or its affiliates 51

Slide 51

Slide 51 text

MySQL Routerにて読み込み/書き込みの処理を振り分け a Transparent read/write splitting MySQL Router 8.2 Copyright © 2024, Oracle and/or its affiliates 52 アプリケーションで振り分け先を指定 MySQL Routerが振り分け

Slide 52

Slide 52 text

GTIDへのユーザー定義のタグ 特定のトランザクションをグループ化 GTID = source_id:tag:transaction_id EXPLAIN⽂の出⼒フォーマット拡張 アクセスパスに基づく出⼒形式をサポート explain_json_format_version = 2 --character-set-client- handshakeの削除 MySQL 4.0までの挙動にあわせる設定 MySQL 8.3での機能追加や変更点 MySQL 8.3 Copyright © 2024, Oracle and/or its affiliates 53

Slide 53

Slide 53 text

• デフォルトで安全、安定、堅牢 • MySQL オンプレミスとクラウド・サービス間の整合性 • 利⽤可能なリソースに応じてプロダクション設定を使⽤ • デフォルトの設定値が⼩さ過ぎる問題に対処 MySQL 8.4 LTSでのパラメーター設定のコンセプト Copyright © 2024, Oracle and/or its affiliates 54

Slide 54

Slide 54 text

https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html InnoDB関連のデフォルト設定の変更点 InnoDB System Variable Name New Default Value (MySQL 8.4) Previous Default Value (MySQL 8.0) innodb_buffer_pool_in_core_file OFF if MADV_DONTDUMP is supported, otherwise ON ON innodb_buffer_pool_instances If innodb_buffer_pool_size <= 1 GiB, then innodb_buffer_pool_instances=1 If innodb_buffer_pool_size > 1 GiB, then this is the minimum value from the following two calculated hints in the range of 1-64: •Buffer pool hint: Calculated as 1/2 of (innodb_buffer_pool_size / innodb_buffer_pool_chunk_size) •CPU hint: Calculated as 1/4 of the number of available logical processors 8 (or 1 if innodb_buffer_pool_size < 1 GiB) innodb_change_buffering none all innodb_dedicated_server If ON, the value of innodb_flush_method is no longer changed as in MySQL 8.0, but the calculation of innodb_redo_log_capacity is changed from memory-based to CPU-based. For more information, see Section 17.8.12, “Enabling Automatic Configuration for a Dedicated MySQL Server”. OFF innodb_adaptive_hash_index OFF ON innodb_doublewrite_files 2 innodb_buffer_pool_instances * 2 innodb_doublewrite_pages 128 innodb_write_io_threads, which meant a default of 4 innodb_flush_method on Linux O_DIRECT if supported, otherwise fsync fsync innodb_io_capacity 10000 200 innodb_io_capacity_max 2 * innodb_io_capacity 2 * innodb_io_capacity, with a minimum default value of 2000 innodb_log_buffer_size 67108864 (64 MiB) 16777216 (16 MiB) innodb_numa_interleave ON OFF innodb_page_cleaners innodb_buffer_pool_instances 4 MySQL 8.4 Copyright © 2024, Oracle and/or its affiliates 55

Slide 55

Slide 55 text

https://dev.mysql.com/doc/refman/8.4/en/mysql-nutshell.html InnoDB関連のデフォルト設定の変更点 (続き) InnoDB System Variable Name New Default Value (MySQL 8.4) Previous Default Value (MySQL 8.0) innodb_parallel_read_threads available logical processors / 8, with a minimum default value of 4 4 innodb_purge_threads 1 if available logical processors is <= 16, otherwise 4 4 innodb_read_io_threads available logical processors / 2, with a minimum default value of 4 4 innodb_use_fdatasync ON OFF temptable_max_ram 3% of total memory, with a default value within a range of 1-4 GiB 1073741824 (1 GiB) temptable_max_mmap 0, which means OFF 1073741824 (1 GiB) temptable_use_mmap OFF ON MySQL 8.4 Copyright © 2024, Oracle and/or its affiliates 56

Slide 56

Slide 56 text

MySQL 8.4 LTSで削除されたシステム変数および起動オプション Copyright © 2024, Oracle and/or its affiliates 57 memcachedプラグイン関連 8.3にて削除 • daemon_memcached_enable_binlog • daemon_memcached_engine_lib_name • daemon_memcached_engine_lib_path • daemon_memcached_option • daemon_memcached_r_batch_size • daemon_memcached_w_batch_size レプリケーション関連 • expire_logs_days (8.2) • group_replication_ip_whitelist (8.3) • log_bin_use_v1_row_events (8.3) • master_info_repository (8.3) • --master-info-file (8.3) • relay_log_info_file / --relay-log-info-file (8.3) • relay_log_info_repository (8.3) • slave_rows_search_algorithms (8.3) • transaction_write_set_extraction (8.4) • binlog_transaction_dependency_tracking (8.4) MySQLサーバー全般 • explicit_defaults_for_timestamp / --explicit-defaults-for-timestamp (8.4) • --no-dd-upgrade (8.4) • --language / -L (8.4) • avoid_temporal_upgrade / --avoid-temporal-upgrade (8.4) • show_old_temporals / --show-old-temporals (8.4) • --skip-innodb and --innodb[=value] (8.3) • --skip-host-cache , 8.3) • --character-set-client-handshake (8.3) • --old-style-user-limits (8.3) • default_authentication_plugin / --default-authentication-plugin (8.4) • old / --old (8.4) • new / --new (8.4) • --ssl / --skip-ssl (8.4) • --admin-ssl / --skip-admin-ssl (8.4)

Slide 57

Slide 57 text

• MySQLネイティブ認証プラグインがデフォルトでは無効(※) • 時間のかかるロールバック処理の進捗を確認可能に • エラーログにNoteレベルで出⼒ • まずER_IB_LONG_ROLLBACK_FULLとトランザクショ ン情報が出⼒されER_IB_LONG_ROLLBACKが続く • クローンプラグインの対象バージョンの制限の緩和 • 8.4.0から8.4.14や8.0.51から8.0.37など 異なるポイントリリース間でのクローンが可能 • mysqldumpの--output-as-versionオプション • レプリケーション関連の下位互換のため8.2.0未満か 以上かの形式を指定して実⾏可能に • 権限の追加 • GRANT … FLUSH_PRIVILEGES • RELOAD権限の利⽤機会の削減 • OPTIMIZE_LOCAL_TABLE • OPTIMIZE LOCAL TABLE⽂とOPTIMIZE NO_WRITE_TO_BINLOG TABLE⽂の実⾏に使⽤ • レプリケーション関連のデフォルト値の変更 • source_retry_count = 10 (WL#15702 in 8.1) • binlog_transaction_dependency_track ing = WRITESET (WL#15861 in 8.3) • group_replication_exit_state_action = OFFLINE_MODE (WL#15713 in 8.4) • group_replication_consistency = BEFORE_ON_PRIMARY_FAILOVER (WL#15712 in 8.4) MySQL 8.4でのその他の機能追加や変更点 MySQL 8.4 Copyright © 2024, Oracle and/or its affiliates 58 ※参考情報︓ MySQL8.4での mysql_native_password 認証プラグインの扱い https://blog.s-style.co.jp/2024/05/11793/ MySQL 8.4-LTSがやってきた&native_passwordに注意 https://sakaik.hateblo.jp/entry/20240430/mysql_8_4_0_lts_is_coming

Slide 58

Slide 58 text

MySQL HeatWave Generative AI Copyright © 2024, Oracle and/or its affiliates 59

Slide 59

Slide 59 text

MySQL HeatWave Database Service Queries Results ソーシャル、eコマース、ゲーム、ヘルスケア、フィンテック等のアプリ、データ分析と機械学習のツール MySQL HeatWave Analytics Autopilot OLTP AutoML リアルタイム分析、機械学習、 OLTP、レイクハウスを MySQLだけで実現 Lakehouse Copyright © 2024, Oracle and/or its affiliates 60 OLTPだけでなく、DWH、機械学習、レイクハウスにも最適化されたMySQLマネージドサービス

Slide 60

Slide 60 text

MySQL HeatWave Database Service のアーキテクチャ Copyright © 2024, Oracle and/or its affiliates 61 • MySQLに対してSQLを実⾏するだけで⾃動的に⾼速化される (HeatWaveの制限事項に該当する場合は、フロントにあるMDSで処理される) • データの更新はフロントにあるMDSで処理され、更新データは随時HeatWaveノードに反映される ※HeatWaveの制限事項 https://dev.mysql.com/doc/heatwave/en/heatwave-limitations.html

Slide 61

Slide 61 text

MySQL HeatWaveで国内最⼤級の電⼦書籍配信サービス「コミックシーモア」でのデータ利活⽤を強化 利⽤サービス・製品 • MySQL HeatWave Database Service お客様のコメント 顧客事例︓NTTソルマーレ 様 Copyright © 2024, Oracle and/or its affiliates 62 「『MySQL HeatWave』の導⼊によりサービス基盤とデータ分析 基盤のリアルタイムなデータ同期が実現できました。さらにこれまで 通常のMySQLで1.5時間程度かかっていたバッチ処理が2秒程度 で完了するなど性能の良さも実感しています。 処理を待つ思考停 ⽌の時間が短縮化され、業務効率化にもつながっています。 MySQLに対応したツールは『MySQL HeatWave』でもそのまま 活⽤でき、ユーザーの利便性を維持しながら様々な分析データを 更なるサービス向上に役⽴てることができています。 『MySQL HeatWave』を利⽤した新たなデータ分析基盤を活⽤し、 今後も更に幅広いお客様に楽しんでいただける書籍配信サービス を提供していきます。」 エヌ・ティ・ティ・ソルマーレ株式会社 電⼦書籍事業部 サービス開発グループ ⽊下 ⽒ システム構成イメージ MySQL HeatWaveによる データ分析基盤 コミックシーモアの サービス基盤 レプリケーション リアルタイム同期

Slide 62

Slide 62 text

Vector Data Type Support Standard SQL interface to create tables with vector columns Vector data storage • HeatWave: In-memory columnar format • InnoDB: BLOB mysql> CREATE TABLE wikipedia ( id INT, title VARCHAR(1024) page_data TEXT page_list TEXT, page_url TEXT, page_embedding VECTOR(1024) ENGINE_ATTRIBUTE='{"model":"cohere"}') ENGINE=lakehouse, SECONDARY_ENGINE=rapid; Example distance functions • L1/MANHATAN • L2/EUCLIDIAN • L1^2/MANHATAN_SQUARED • L2^2/EUCLIDIAN_SQUARED • COSINE • DOT • HAMMING データをベクトル化して保存し、ベクトル同⼠の近接性や類似性をベースに検索 Copyright © 2024, Oracle and/or its affiliates 63

Slide 63

Slide 63 text

Exact Nearest Neighbor Search using SQL SELECT digit, imagename FROM mnist ORDER BY VECTOR_DISTANCE(embedding, @query_embedding) LIMIT 3; VECTOR_DISTANCE TOP-K Table: mnist N rows O(N) digit imagename VECTOR_DISTANCE 1 digit1_001.png 0.012 1 digit1_002.png 0.013 … Representative Query Plan ベクトル類似度関数を使った検索 Copyright © 2024, Oracle and/or its affiliates 64

Slide 64

Slide 64 text

Vector Store can be used by SQL queries, or for RAG Augmented prompt LLM Retrieval Agent Top suggested dishes from top recommended restaurants Recommender System Vector Store ⨝ ⨝ Restaurant suggestion SQL with analytics and vector operations MySQL Tables Results using a variety of business and user data Query Results ベクトルストアをRAGに活用 Copyright © 2024, Oracle and/or its affiliates 65

Slide 65

Slide 65 text

Generative AI in HeatWave による新しいユースケース Retrieval Augmented Generation (RAG) • 企業内の⽂書からインサイトを⽣成 • PDF取扱説明書からブログを⽣成 • ログの要約 • パブリックなデータ及び企業内の データを検索 • ベクトルストアの⾮構造化データを 検索 ⾃然⾔語による対話 • ⾮構造化データとの⾃然⾔語による対話 • ⾃然⾔語によるコンテンツ検索と応答 コンテンツの⽣成と要約 + Copyright © 2024, Oracle and/or its affiliates 66

Slide 66

Slide 66 text

Copyright © 2024, Oracle and/or its affiliates 67 The world's most popular open source database 世界で最も普及しているオープンソース データベース

Slide 67

Slide 67 text

No content