修正されたセキュリティ脆弱性
CVE | CVSS基本スコア |
CVE-2022-47015 | MariaDB CVEにはCVSS基本スコアがありません。このCVEは、MariaDBエンジニアリングポリシーで定義された基準を使用して"medium"と評価されています。 |
アップグレード手順
MariaDB Enterprise Server 10.6.12-8には、以前にMariaDB Enterprise Server 10.6.12-7を展開したユーザーにのみ適用される特別なアップグレード手順があります。
UNDOログテーブルスペースを切り捨てるためには、次の手順が必要です:
- 通常のアップグレード手順を使用して、ES 10.6.12-7から10.6.12-8にアップグレードします。
- サーバーがES 10.6.12-8で起動された後、innodb_fast_shutdown=0を設定します。
SET GLOBAL innodb_fast_shutdown=0; - サーバーをシャットダウンします:
$ sudo systemctl stop mariadb - innodb_undo_tablespacesを現在の値とは異なる値に変更します:
[mariadb]
innodb_undo_tablespaces=4 - サーバーを起動します:
$ sudo systemctl start mariadb
注目すべき変更点
- オプティマイザーは、ハッシュ(BNL-H)結合の出力カーディナリティを推定する時に列ヒストグラムデータを使用できるようになりました。
- このリリース以降、optimizer_switchシステム変数には、この機能を有効にできるhash_join_cardinalityと呼ばれる新しいフラグが追加されました。
- 有効にすると、オプティマイザーは控えめな推定を提供する式を使用します。
- 特定のセッションでこの機能を有効にするためには、SETステートメントを使用してフラグを設定します:
SET optimizer_switch='hash_join_cardinality=on';
ストレージエンジンの変更
- このリリースには、MariaDB ColumnStoreエンジンのバージョン 23.02.3が組み込まれています。
修正された問題
ハングまたはクラッシュを引き起こす可能性があるもの
- InnoDBがBツリーページを分割またはマージすると、競合状態によりサーバーがハングする可能性があります。
- プリペアドステートメントを使用してUNIONを含むビューをクエリすると、サーバーがクラッシュする可能性があります。
- binlog_row_image=FULLが設定され、slave_Parallel_threadsが0より大きい場合、シーケンスを使用してデータがテーブルに挿入されると、レプリカサーバーがハングする可能性があります。
- 以前のリリースでは、レプリカサーバーはシーケンスへの完全な挿入をDDLステートメントとして処理し、これによりシーケンステーブルの排他ロックを取得しました。別の並列レプリケーションスレッドが同時にロックを待機している場合、2つのスレッドがデッドロックになる可能性があります。
- このリリース以降、レプリカサーバーはロックをより適切に管理し、このシナリオでのデッドロックを回避します。
- innodb_undo_log_truncate=ONを設定することによりInnoDBのUNDOログの切り捨てが有効になっている場合、一部のUNDOログテーブルスペースがinnodb_max_undo_log_sizeを超えると、サーバーがハングする可能性があります。
- 以前のリリースでは、InnoDBは切り捨て用のUNDOログテーブルスペースを選択し、関連する全てのロールバックセグメントに"truncation in progress"状態のマークを付けました。切り捨てが完了した時、InnoDBはロールバックセグメントを再度有効にすることができません。したがって、サーバーがシャットダウンされる前にさらに書き込みトランザクションがある場合、トランザクションはビジーループで使用可能なロールバックセグメントを待つ必要があります。InnoDBはロールバックセグメントを再度有効にしないため、トランザクションは無期限に待機します。
- このリリース以降、InnoDBのUndoログの切り捨てが有効になっている場合、InnoDBはロールバックセグメントの状態を適切に管理します。
予期しない動作を引き起こす可能性があるもの
- オプティマイザーは、Block Nested Hash(BNL-H)結合の等価条件の選択性を考慮しません。
- 以前のリリースでは、join_cache_levelを3以上(デフォルトは2)に設定して実行すると、この問題によって見積もりの誤りや不適切なクエリプランが発生する可能性があります
- ラテラル派生最適化を使用してクエリを実行すると、パラメータ値が変更されていなくても、受信行の組み合わせごとに派生テーブルが再入力されます。
- 特定のデータ分布では、オプティマイザーのヒストグラムコードによって誤った選択性が生成され、パフォーマンスの低下につながる可能性があります。
- slave_parallel_modeがoptimisticであり、slave_Parallel_threadsが0より大きい場合、シーケンスでInnoDBが使用される場合、ALTER SEQUENCEは順序不順のbinlogエラーで失敗する可能性があります。
- 以前のリリースでは、次のエラーが発生する可能性があります:
Last_Error: Error 'An attempt was made to binlog GTID 0-1-100 which would create an out-of-order sequence number with existing GTID 0-1-100 and gtid stric mode is enabled' on query. Default database: 'test'. Query: 'alter sequence s1 restart with 1' will be shown.
- 以前のリリースでは、次のエラーが発生する可能性があります:
- InnoDBは、UNDOログが不要になった場合でも、UNDOログを解放しません。
- 以前のリリースでは、innodb_undo_tablespacesが0に設定されている場合、UNDOログはInnoDBシステムテーブルスペース(デフォルトではibdata1)に保存されるため、この問題によりInnoDBシステムテーブルスペースが無制限に増大する可能性がありました。
- このリリース以降、InnoDBは、UNDOログが不要になった時に解放します。
- ES 10.6.12-7を以前実行していたサーバーの場合、アップグレードの完了後にUNDOログテーブルスペースを切り捨てるために特別な手順が必要です。
- InnoDB履歴リストの長さは、同じ負荷の場合、MariaDB Enterprise Server 10.5に比べてMariaDB Enterprise Server 10.6でより速く増加します。
インターフェースの変更
- hash_join_cardinality=offが、optimizer_switchシステム変数のデフォルト値に段階的に追加されました。
プラットフォーム
エンタープライズライフサイクルに合わせて、MariaDB Enterprise Server 10.6.12-8は次のプラットフォームに対して提供されます:
- CentOS 7 (x86_64)
- Debian 10 (x86_64, ARM64)
- Debian 11 (x86_64, ARM64)
- Red Hat Enterprise Linux 7 (x86_64)
- Red Hat Enterprise Linux 8 (x86_64, ARM64)
- Red Hat Enterprise Linux 9 (x86_64, ARM64)
- Rocky Linux 8 (x86_64, ARM64)
- Rocky Linux 9 (x86_64, ARM64)
- SUSE Linux Enterprise Server 12 (x86_64)
- SUSE Linux Enterprise Server 15 (x86_64, ARM64)
- Ubuntu 18.04 (x86_64, ARM64)
- Ubuntu 20.04 (x86_64, ARM64)
- Ubuntu 22.04 (x86_64, ARM64)
現在、このリリースではWindowsパッケージを利用できません。
MariaDB Enterprise Serverの一部のコンポーネントは、全てのプラットフォームをサポートしていない場合があります。
MariaDB Enterprise Server 10.6.12-8のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/server/release-notes/mariadb-enterprise-server-10-6/10-6-12-8/
MariaDBプロダクト・サポート・サービス
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。