2022.06.20

MariaDB

MariaDB Enterprise Server 10.3.35-16 GA版(リリース日:2022年6月13日)

修正されたセキュリティ脆弱性
CVE / CVSSベーススコア
CVE-2022-27458 / 7.5
CVE-2022-27456 / 7.5
CVE-2022-27452 / 7.5
CVE-2022-27449 / 7.5
CVE-2022-27448 / 7.5
CVE-2022-27447 / 7.5
CVE-2022-27445 / 7.5
CVE-2022-27387 / 7.5
CVE-2022-27386 / 7.5
CVE-2022-27384 / 7.5
CVE-2022-27383 / 7.5
CVE-2022-27381 / 7.5
CVE-2022-27380 / 7.5
CVE-2022-27379 / 7.5
CVE-2022-27378 / 7.5
CVE-2022-27377 / 7.5
CVE-2022-27376 / 7.5
CVE-2022-21427 / 4.9

バックポートされた機能
MariaDB Enterprise Serverは、エンタープライズライフサイクルを通じて予測可能な開発と運用のエクスペリエンスを可能にします。これらの新機能は、MariaDB Community Serverで成熟した後にバックポートされました。

  • mysqldumpオプション –as-ofは、システムバージョン管理されたテーブルから特定のタイムスタンプの時点でデータを読み取ります。

注目すべき変更点

  • Spiderストレージエンジンは、エンジンはそれ自体がデータを保存できず、リモートサーバーに一時テーブルを作成できないため、一時テーブルの作成の施行を拒否します。
  • ステータス変数 Innodb_encryption_key_rotation_list_length、Innodb_num_index_pages_written、Innodb_num_non_index_pages_writtenは使用されておらず、削除されました。
  • このリリース以降、wsrep_sst_methodがrsyncまたはmariabackupに設定されている場合、sst_max_binlogs SSTオプションを設定ファイルの[sst]オプショングループで指定できます。 このパラメータは、SST中にジョイナーノードに送信されるバイナリログファイルの数を指定します。
    ○デフォルト値は0です。
    ・binlogが存在する場合、それが転送されます。
    ・binlogが存在しない場合、binlogは転送されません。
  • Galeraが25.3.37に更新されました。

修正された問題
<データ損失が発生する可能性があるもの>

  • パーサーが文字列をバイナリ文字セットからマルチバイト文字セット(utf32など)に変換すると、無効な文字列が生成される可能性がありました。
  • LOAD DATA INFILEステートメントを介して行が中間一時テーブルに挿入され、次にその行が一時テーブルから永続テーブルにコピーされる場合、binlog_format=MIXEDが設定されていると、行はバイナリログに書き込まれません。これにより、操作がレプリカサーバーに適切に複製されなくなります。
  • innodb_disallow_writes=ONが設定されている場合、 mysqladmin shutdownがハングする可能性があります。
    ・このリリース以降、innodb_disallow_writesシステム変数は削除されています。
  • レプリカサーバーのI/Oスレッドがプライマリサーバーから不完全なイベントグループを受信した時、レプリカサーバーはリレーログへのイベントの書き込みを続行し、エラーを発生させません。
  • Semisync-replicaサーバーのリカバリは、準備されたトランザクションのロールバックに失敗します。

<ハングまたはクラッシュを引き起こす可能性があるもの>

  • Galeraを搭載したMariaDB Enterprise Clusterでは、wsrep_sst_methodがrsyncまたはmariabackupに設定されている場合、一部の設定では、ドナーノードが正しいバイナリログをジョイナーノードに転送しません。
  • UNIONを使用したSELECTステートメントのグローバルORDER BY句でウィンドウ関数が使用される場合、ステートメントは拒否されるべきですが、サーバーはステートメントを実行し、セグメンテーション障害でクラッシュします。
  • ストアドプロシージャがビューをクエリしてforループを使用する時、同じセッションでストアドプロシージャが2回呼び出されると、サーバーがセグメンテーション障害でクラッシュする可能性があります。
  • innochecksumが暗号化されたテーブルスペースファイルで–page-type-summaryまたは-Sオプションを使用して実行されると、innochecksumは–page-type-dumpまたは-Dオプションも指定されていない限り、セグメンテーション障害でクラッシュします。
  • 無効なCREATE SEQUENCE … RESTARTステートメントがCREATE PROCEDUREまたはCREATE FUNCTIONステートメント内で使用される場合、サーバーはステートメントの解析中にクラッシュする可能性があります。
  • IF()およびDATE_FORMAT()関数を使用して定義された仮想生成列がテーブルに含まれている場合、テーブルに行を挿入すると、サーバーがセグメンテーション障害でクラッシュする可能性があります。
  • 更新不可能なビューがALGORITHM=TEMPTABLEで定義される場合、ビューからデータを選択すると、サーバーがセグメンテーション障害でクラッシュする可能性があります。
  • 10進タイプのUNIONがORDER BY句で実行されると、サーバーがセグメンテーション障害でクラッシュする可能性があります。
  • ストアドプロシージャがクエリを実行してマージ可能な派生テーブルが生成される時、同じセッションでストアドプロシージャが2回呼び出されると、サーバーがセグメンテーション障害でクラッシュする可能性があります。
    ・ビューをクエリすると、マージ可能な派生テーブルが作成される可能性があります。
    ・外部参照でサブクエリを使用すると、マージ可能な派生テーブルが作成される可能性があります。
  • ANALYZE FORMAT=JSONがサブクエリを含むクエリで実行されると、サーバーがクラッシュする可能性があります。
  • OVER (PARTITION BY ..)または(ORDER BY ..)句を持つウィンドウ関数を使用したクエリが実行されると、サーバーがセグメンテーション障害でクラッシュする可能性があります。
    ・クエリでWITH ROLLUPも使用されている場合、このクラッシュが発生する可能性が高くなります。
    ・クエリのOVER (PARTITION BY ..)またはOVER (ORDER BY ..)句が集約関数を使用している場合、このクラッシュが発生する可能性が高くなります。
  • 外部結合式とオプティマイザが低コストであると判断した非相関サブクエリがクエリに含まれている時に、オプティマイザが内部結合式を削除できると判断した場合、クエリを実行するとサーバーがクラッシュする可能性があります。
  • MariaDB Enterprise Clusterでは、インクリメンタル状態転送(IST)中にジョイナーノードのバイナリログが削除される可能性がありました。これにより、ノードはバイナリログを読み取ることができないため、ノードは起動できません。
    ・この問題は、wsrep_sst_methodをrsyncに設定すると発生することが確認されていますが、他のSST/ISTメソッドでも発生する可能性があります。
  • ビューをクエリするプロシージャが2回呼び出されると、サーバーがクラッシュする可能性があります。
  • 構文が正しくないステートメント、`CREATE PROCEDUREまたはCREATE FUNCTIONの内部のCREATE SEQUENCE .. RESTARTの解析でクラッシュする可能性があります。
  • date_format()およびif()を使用して生成された仮想列を持つテーブルでのINSERT後にサーバーがクラッシュします。
  • 大きなInnoDBテーブルのALTER TABLEがハングする可能性があります。

<予期しない動作を引き起こす可能性があるもの>

  • OPTIMIZE TABLEがシーケンスで実行されると、binlog_formatがROWまたはMIXEDに設定されている場合でも、サーバーはER_BINLOG_UNSAFE_STATEMENT警告を生成します。
    ・警告は、MariaDB Error Logに次のように表示されます。
    [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. Statement is unsafe because it uses a system function that may return a different value on the slave Statement: OPTIMIZE TABLE SEQUENCE_NAME
  • UPDATEまたはDELETEステートメントがOR句を使用すると、サーバーはER_UPDATE_WITHOUT_KEY_IN_SAFE_MODEエラーを発生させます。
    ・エラーは、次のようにクライアントに表示されます。
    You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
  • UPDATEステートメントがIN()句内でサブクエリを使用する時、オプティマイザーは、範囲スキャン(タイプ:range)の方が効率的である場合に、フルテーブルスキャン(タイプ:ALL)の実行を誤って選択する可能性があります。
  • テーブルに同じ値の複数のENUM列が含まれている場合、マルチバイト文字セットが使用されると、値が破損する可能性があります。
  • DECIMAL列がinformation_schema.PROCESSLISTから読み取られると、サーバーが誤ってER_BAD_DATA警告を発生させる可能性があります。
    ・警告は、SHOW WARNINGSを実行した後、クライアントに次のように表示されます。
    Encountered illegal value ” when converting to DECIMAL
  • sql_mode=ORACLEの場合、パーサーは関数がPACKAGE_NAME.FUNCTION_NAME()を使用して呼び出されることを可能にしますが、関数がDATABASE_NAME.PACKAGE_NAME.FUNCTION_NAME()を使用して呼び出されると、パーサーはER_PARSE_ERRORエラーを発生させます。
  • ビューが単一のUPDATEステートメントで一時テーブルの複数の行を更新するために使用されると、サーバーは誤ってER_WARN_VIEW_WITHOUT_KEY警告を発生させます。
    ・警告は、SHOW WARNINGSを実行した後、クライアントに次のように表示されます。
    View being updated does not have complete key of underlying table in it
  • –rawおよび–stop-neverとともにmariadb-binlogを使用する場合、プライマリサーバーの現在アクティブなログファイルからのイベントは、–result-fileで指定されたそれぞれのログファイルに書き込まれません。
  • プリペアドステートメントがEXPLAINを実行するために使用されると、2回目の実行で別のクエリプランを返す可能性があります。
  • slave_compressed_protocolが半同期レプリケーションで有効になっている場合、パケットヘッダーの番号付けがプライマリサーバーとレプリカサーバーの間で同期しなくなる可能性がありますが、その不整合がMariaDB Enterprise Serverのリリースビルドに悪影響を与えることはありません。
  • サーバーとMariaDB Enterprise Backupは、一部のシナリオでテーブルスペースIDに関する不要な警告を発生させる可能性があります。
    ・警告は次のように表示されます。
    InnoDB: Allocated tablespace ID TABLESPACE_ID for DATABASE_NAME/TABLE_NAME, old maximum was 0
    ・この警告は、MariaDB Enterprise Backupを使用してバックアップを準備する時に、標準出力(stdout)に書き込まれます。
    ・この警告は、InnoDBが起動時にクラッシュリカバリを実行する時に、MariaDB Error Logに書き込まれます。
  • MariaDB Enterprise Clusterでは、innodb_log_group_home_dirがdatadirとは異なるディレクトリを指定すると、ジョイナーノードはSSTを完了できません。
  • DATA DIRECTORY句を使用するパーティション化されていないテーブルがパーティション化されたテーブルに変換されると、DATA DIRECTORY句は黙って無視され、パーティション化されたテーブルはデフォルトディレクトリに移動されます。
  • このリリース以降、サーバーはWARN_OPTION_IGNORED警告を発生させます。
  • テーブルに非表示の列が含まれている場合、mariadb-dumpはバックアップファイルに正しいCREATE TABLEステートメントを生成しません。
  • IF(COUNT() ..)を使用してSpiderテーブルがクエリされると、サーバーはER_BAD_FIELD_ERRORエラーを発生させる可能性があります。
  • MariaDB Enterprise Clusterでは、バイナリログが有効になっている場合、ドナーノードで状態スナップショット転送(SST)が失敗する可能性があります。
  • MariaDB Enterprise Clusterでは、wsrep_node_addressにIPv6アドレスが含まれていて、wsrep_sst_receive_addressがデフォルト値のAUTOに設定されている場合、状態スナップショット転送(SST)が失敗する可能性があります。
  • 一時テーブルでは、システムバージョン管理されたテーブルがmariadb-dumpを介してレプリカ上に作成されると、元のテーブルが以前に変更されていた場合、レプリケーションが中断する可能性があります。
  • mariabackupは、マルチソースレプリケーションプライマリを検出しません。
  • Master_SSL_Crlは、SHOW SLAVE STATUS出力にMaster_SSL_CA値を表示します。
  • MariaDB Auditプラグインは、CONNECTイベントの破損したログエントリを生成します。
  • mariadb-dumpは、SQL/PLパッケージに対してsql_modeが正しく設定されているダンプを作成しません。
  • INSERT .. ON DUPLICATE KEY UPDATEのbinlogデータがありません。
  • 完全バックアップ後に新しいスキーマが作成された場合、mariabackupの準備は増分バックアップで失敗します。
  • オプティマイザは、UPDATE中に全てのパーティションを使用し、パーティションフィルターを無視します。
  • INSERT .. ON DUPLICATE KEY UPDATEが実行され、binlog_formatがMIXEDに設定されている場合、ステートメントが行ベースの形式でバイナリログに書き込まれていても、サーバーはER_BINLOG_UNSAFE_STATEMENT警告を生成します。
    ・警告は、MariaDB Error Logに次のように表示されます。
    [Warning] Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT. INSERT… ON DUPLICATE KEY UPDATE on a table with more than one UNIQUE KEY is unsafe Statement: INSERT INTO TABLE_NAME VALUES (..) ON DUPLICATE KEY UPDATE KEY_NAME = KEY_VALUE
  • INSERT .. ON DUPLICATE KEY UPDATEが実行され、binlog_row_imageがFULLに設定されている場合、サーバーは変更されていない列をバイナリログに書き込みません。
  • 設定されたサーバーIDがクラッシュしたデータディレクトリのサーバーIDと一致しない場合、クラッシュリカバリは失敗します。

<インストールとアップグレード>

  • Galeraスナップショット転送は、一部のメジャーバージョン間でのアップグレードに失敗します。
  • Windowsでは、MSIインストーラーはクライアント共有ライブラリをインストールしません。
  • アップグレード後、mysql.pluginテーブルにはSemi-sync Replicationのエントリがありますが、この以前のプラグイン機能は現在組み込まれています。

インターフェースの変更

  • innodb_disallow_writesシステム変数が削除されました
  • Innodb_encryption_key_rotation_list_lengthステータス変数が削除されました
  • Innodb_num_index_pages_writtenステータス変数が削除されました
  • Innodb_num_non_index_pages_writtenステータス変数が削除されました
  • mariabackup –sst-max-binlogsコマンドラインオプションが追加されました
  • mysqldump –as-ofコマンドラインオプションが追加されました

プラットフォーム
エンタープライズライフサイクルに合わせて、MariaDB Enterprise Server 10.3.35-16は以下のプラットフォーム用に提供されています:

  • CentOS 7 (x86_64)
  • Debian 9 (x86_64 / ARM64)
  • Debian 10 (x86_64 / ARM64)
  • Microsoft Windows (x86_64)
  • Red Hat Enterprise Linux 7 (x86_64)
  • Red Hat Enterprise Linux 8 (x86_64 / ARM64)
  • Rocky Linux 8 (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)

MariaDB Enterprise Serverの一部のコンポーネントは、全てのプラットフォームをサポートしていない場合があります。
注意:これはDebian 9用の最終リリースです。

MariaDB Enterprise Server 10.3.35-16のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/release-notes/mariadb-enterprise-server-10-3/10-3-35-16/


MariaDBプロダクト・サポート・サービス

MariaDB
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。