2022.12.22

MariaDB

MariaDB Enterprise Server 10.4.27-18 GA版(リリース日:2022年12月21日)

注目すべき変更点

  • information_schema.INNODB_SYS_TABLESPACESビューには、InnoDB一時テーブルが格納されるテーブルスペースであるInnoDB一時テーブルスペースに関する詳細が表示されます。
    • このリリース以降、名前innodb_temporaryの問い合わせをすることで、InnoDB一時テーブルスペースに関する詳細を表示できます。
      SELECT * FROM information_schema.INNODB_SYS_TABLESPACES
      WHERE name LIKE 'innodb_temporary';
  • テーブルのデフォルトの照合がテーブルの文字セットのデフォルトの照合に設定されている場合、SHOW CREATE TABLEはCOLLATE句を表示します。
    • 以前のリリースでは、MariaDB Enterprise Serverは、テーブルのデフォルトの照合がテーブルの文字セットのデフォルトの照合に設定されている場合、COLLATE句を除外することでSHOW CREATE TABLE出力のサイズを縮小しました。

    修正された問題

    データ損失が発生する可能性があるもの

    • NOCOPYアルゴリズムを使用してALTER TABLE .. RENAME COLUMNでパーティション化されたテーブルで列の名前を変更すると、テーブルが破損する可能性があります。
    • InnoDBストレージエンジンがバッファ変更操作を実行すると、InnoDB Redoログがオーバーフローし、テーブルが破損する可能性があります。

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

    • クエリにIN/ALL/ANY述語が含まれ、サブクエリにIN/ALL/ANY述語を持つGROUP BY句が含まれ、左オペランドとして単一値サブクエリがある場合、サーバーがクラッシュする可能性があります。
    • InnoDBテーブルに外部キー制約が含まれていて、子テーブルの DATABASE_NAME/TABLE_NAME.ibdが330文字を超えている場合、親テーブルの名前が変更されると、サーバーがクラッシュする可能性があります。
    • INPLACEアルゴリズムを使用してDDLステートメントが実行され、innodb_adaptive_hash_index=ONが設定されている場合、サーバーがハングする可能性があります。
    • テーブルの名前を長い名前に変更すると、サーバーがクラッシュする可能性があります。
    • ALTER TABLEステートメントによってInnoDBが空間インデックスを使用してテーブルを再構築すると、サーバーがクラッシュする可能性があります。
    • InnoDB一時テーブルに空間インデックスが含まれている時に、一時テーブルがDROP TEMPORARY TABLEまたはクライアントの切断によって削除されると、サーバーがクラッシュする可能性があります。
    • PARTITION構文を使用してパーティション化されたテーブルにクエリを実行する時、WHERE句によってインデックスマージが発生すると、サーバーがクラッシュする可能性があります。
    • 1つ以上の再帰CTEを含むネストされたCTEのCTE依存関係を検出すると、サーバーがクラッシュするまで無限再帰が発生する可能性があります。
    • バンドルされているwsrep_notify.shスクリプトを使用するようにwsrep_notify_cmdシステム変数が設定されている場合、起動中にサーバーがハングすることがあります。
    • InnoDBのinformation_schemaビュー(INNODB_TRX、INNODB_LOCKS、INNODB_LOCK_WAITSなど)から選択する時、開いているXAトランザクションとの接続が同時に切断または強制終了されると、サーバーがクラッシュする可能性があります。
    • クエリに参加している列に対する、異なるが変換可能な文字セットを持つテーブルを含む一部のクエリでは、そのようなクエリを準備済みステートメントモードで、またはストアドルーチンの一部として繰り返し実行すると、サーバーがクラッシュする可能性があります。
    • SELECT .. UNION .. SELECTまたはEXPLAIN EXTENDEDステートメントを実行すると、サーバーがクラッシュする可能性があります。
    • optimizer_switch='condition_pushdown_for_derived=on'が設定され、サブクエリを含むビューがクエリされると、サーバーがクラッシュします。
    • ALTER TABLE .. ADD PERIOD IF NOT EXISTSを使用して空の名前のアプリケーション期間がテーブルに追加されると、サーバーがクラッシュする可能性があります。
      • 以前のリリースでは、次のようなステートメントによってサーバーがクラッシュする可能性がありました:
        ALTER TABLE t
        ADD PERIOD IF NOT EXISTS FOR `` (s,e);
    • SpiderストレージエンジンのODBC外部データラッパーをMariaDB Connector/ODBC 3.1.10以降で使用すると、サーバーがクラッシュする可能性があります。
    • ES 10.3からES 10.4へのアップグレードにMariaDB Enterprise Cluster(Galeraを使用)のローリングアップグレード手順を使用すると、ES 10.4へのアップグレード後にジョイナーノードがクラッシュする可能性があります。
      • 以前のリリースでは、ジョイナーノードのMariaDBエラーログに、クラッシュに関する次のエラーが含まれる場合がありました:
        [Note] WSREP: ####### Assign initial position for certification: 5c410a36-23a8-11ed-a44c-f6f37823dd10:3, protocol version: -1
        [ERROR] WSREP: Corrupt buffer header: addr: 0x7f722bd5b530, seqno: 7019267256999739392, size: 825111097, ctx: 0x559652a28678, flags: 14391. store: 46, type: 49
        [ERROR] mysqld got signal 6 ;

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

    • レプリケーションフィルターが存在する場合、プライマリ(マスター)に存在しないユーザーから権限を取り消すと、レプリカ(スレーブ)でのレプリケーションが中断されます。
    • レプリカノードでreplica_wild_ignore_table='mysql.%'が設定されている場合、レプリカノードは複製されたSET DEFAULT ROLEステートメントをスキップしません。
    • Spiderテーブルにプレフィックスインデックスがある場合、クエリの結果が正しくない可能性があります。
    • InnoDBは、追加の容量が必要ない場合、テーブルスペースファイルを拡張できます。
    • InnoDBテーブルが再構築され、オンライン再構築中にBLOBが更新されると、メモリリークが発生する可能性があります。
    • 準備済みステートメントを使用してビューをクエリすると、クエリはER_NEED_REPREPAREエラーコードで失敗します。
      • 以前のリリースでは、次のエラーが発生していました:
        ERROR 1615 (HY000): Prepared statement needs to be re-prepared
    • InnoDBテーブルに、インデックスが作成された仮想生成列が含まれている場合、InnoDBはセカンダリインデックスレコードのパージに失敗します。
    • InnoDBアダプティブハッシュインデックスを使用する場合、ACID違反の可能性があるため、非ロック読み取りで間違った結果が返される可能性があります。
    • 一時テーブルでSHOW COLUMNSを使用すると、空の結果セットが返されます。
    • シーケンスがテーブルのデフォルト値として使用されている場合、INSERT ... SELECTステートメントによって挿入された行に間違った値が割り当てられる可能性があります。
    • 列にUNIQUEインデックスとFULLTEXTインデックスの両方がある場合、MATCH(..) AGAINST(..) を使用した全文検索は正しく機能しません。
    • --sslオプションを有効にしてサーバーを起動しているが、TLS証明書とキーが設定されていない場合、サーバーはハンドシェイクでTLSサポートを通知しますが、実際にはそれを使用することはできません。
    • MariaDB Enterprise Clusterでは、wsrep_sst_method='mariabackup'が設定されている場合、ジョイナーノードはinnodb_buffer_pool_filenameシステム変数のカスタム値を無視し、SST は代わりにバッファプールファイルをデフォルトの場所にコピーします。
    • ALL演算子内のサブクエリでTIMESTAMP列がフィルター処理されると、結果が正しくない場合があります。
    • wsrep_node_incoming_addressシステム変数にポート番号が含まれていない場合、wsrep_incoming_addressesステータス変数はポート番号として0を示します。
    • optimizer_switch='rowid_filter=on'が有効になっている時、ROWIDフィルタに要素が含まれていない場合、パフォーマンスが影響を受けます。

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

    • mariadb-upgradeが実行されると、テーブルの再構築に関する誤ったエラーがログに記録されます。
      • 以前のリリースでは、ツール自体で問題が既に軽減されていても、次のメッセージがログに記録されました:
        error: Table rebuild required. Please do "ALTER TABLE `TABLE_NAME` FORCE" or dump/reload to fix it!"
    • DebianパッケージからMyRocksをインストールすると、rocksdb.cnf設定ファイルが/etc/mysql/conf.d/ではなく、/etc/mysql/mariadb.conf.d/にインストールされます。

      プラットフォーム

      エンタープライズライフサイクルに合わせて、MariaDB Enterprise Server 10.4.27-18は次のプラットフォームに対して提供されます:

      • CentOS 7 (x86_64)
      • Debian 10 (x86_64, ARM64)
      • Microsoft Windows (x86_64) (MariaDB Enterprise Clusterを除く)
      • Red Hat Enterprise Linux 7 (x86_64)
      • Red Hat Enterprise Linux 8 (x86_64, ARM64)
      • Rocky Linux 8 (x86_64, ARM64 Red Hat Enterprise Linux 8パッケージ)
      • 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の一部のコンポーネントは、全てのプラットフォームをサポートしていない場合があります。


      MariaDB Enterprise Server 10.4.27-18のリリースノート(MariaDB社ウェブサイト):
      https://mariadb.com/docs/server/release-notes/mariadb-enterprise-server-10-4/10-4-27-18/


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

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