2021.09.21

MariaDB

MariaDB Enterprise Server 10.3.31-13 GA版(リリース日:2021年9月14日)

セキュリティの脆弱性の修正
 CVE / CVSSベーススコア
 CVE-2021-2372 / 4.4
 CVE-2021-2389 / 5.9
バックポートされた機能
このリリースのMariaDB Enterprise Serverには、MariaDB Enterprise Server 10.6からバックポートされた
機能が含まれています。
● 準同期レプリケーションの一貫性の強化
 ・rpl_semi_sync_slave_enabled=ONの場合、準同期レプリケーションを使用すると、
  HA(プライマリ/レプリカ)トポロジのプライマリサーバーの一貫性が保証されます。
 ・このリリース以前は、準同期レプリケーションを使用している時、トランザクションをレプリカに
  送信する前にプライマリがクラッシュした場合、再起動時にプライマリはレプリカとして再参加すると
  不完全なInnoDBトランザクションを回復できました。
 ・このリリースでは、準同期レプリケーションを使用し、かつrpl_semi_sync_slave_enabled=ONの時、
  不完全なトランザクションはレプリカでロールバックされ、新しいプライマリ(以前のレプリカ)と
  新しいレプリカ(以前のプライマリ)の同期が維持されます。
主な変更点
● スクリプトwsrep_sst_mariabackupは、設定ファイルを処理する時に、サーバー関連の全ての
 設定グループをチェックします。
 ・このリリース以前は、設定ファイルの処理時に[mysqld]設定グループのみがチェックされました。
● MariaDB Enterprise Backupは、--stream=mbstreamが付属のmbstreamユーティリティを使用して
 バックアップをストリーミングすることを想定しています。
 ・このリリース以前は、xbstreamユーティリティの名前がmbstreamに変更されていたとしても、
  MariaDB Enterprise Backupは--stream=xbstreamを想定していました。
● InnoDBは、デフォルトでアドバイザリファイルロックを取得しなくなりました。
● information_schema.KEYWORDSテーブルが追加され、SQLキーワードの詳細を確認するために
 使用できます。
● information_schema.SQL_FUNCTIONSテーブルが追加され、組み込み関数の詳細を確認するために
 使用できます。
● file_key_management暗号化プラグインを使用して保存データ暗号化を使用する時、
 InnoDBはキーローテーションチェックを自動的に無効にします。
 ・file_key_management暗号化プラグインはキーローテーションをサポートしていないため、
  キーローテーションチェックは必要ありません。
 ・以前のリリースでは、file_key_management暗号化プラグインを使用した不要な
  キーローテーションチェックは、innodb_encryption_rotate_key_age=0を設定することで
  明示的に無効にされない限り、パフォーマンスを低下させる可能性がありました。
● Galeraが25.3.34に更新されました。
● ARM64は現在複数のプラットフォームでサポートされています。
修正された問題
<データ損失が発生する可能性があるもの>
● ALTER TABLE ... ADD COLUMNステートメントがALGORITHM=INSTANTで実行された場合、
 操作によってDATE列のデフォルト値が切り捨てられても、警告は発生しません。
<クラッシュまたはハングを引き起こす可能性があるもの>
● マージ可能な派生テーブル/ view / CTE DTを介してWHERE条件を、アイテムリストに定数引数を持つ
 SET関数が含まれるグループ化ビュー/ derived table / CTE Vにプッシュすると、サーバーがクラッシュする
 可能性があります。
● 対応するクエリがビュー、CTE、または派生テーブルでウィンドウ関数を実行すると、ストアドプロシージャ
 またはプリペアドステートメントの2回目の実行時にサーバーがクラッシュします。
● ハンギング再帰CTEを使用してプリペアドステートメントを実行すると、サーバーがクラッシュする
 可能性があります。
● プリペアドステートメントまたはストアドプロシージャでCTEを使用してクエリを実行している間に、
 サーバーがクラッシュします。
● 間接的に2回使用される再帰CTEを使用してクエリを実行している間に、サーバーがクラッシュします。
● RECURSIVEが欠落している組み込み再帰CTEの処理中に、無限再帰が原因でサーバーがクラッシュします。
● 高負荷下でのInnoDBデッドロックチェッカーでサーバーがクラッシュします。
● 仮想生成された列にプレフィックスインデックスがあると、サーバーがクラッシュします。
● 仮想生成された列を使用すると、サーバーがクラッシュする可能性があります。
● YEAR列が切り捨てられると、DELETEの実行中にサーバーがクラッシュします。
● ホスト名を解決できない場合、SET ROLEの実行中にサーバーがクラッシュします。
● サブクエリがORDER BY句の外部列を参照すると、サーバーがクラッシュします。
● (tableX.colX=tableY.colYのような)異なるテーブルの列を比較する32を超える等式条件で
 クエリを実行している時に、クエリオプティマイザでスタックオーバーランが発生するため、
 サーバーがクラッシュします。
● ウィンドウ関数がIN(SELECT ..)サブクエリの左の式である場合、サーバーがクラッシュします。
● slave_parallel_mode=optimisticで、OPTIMIZE TABLE、REPAIR TABLE、またはANALYZE TABLEが
 実行された時に、GTIDレプリケーションを使用するレプリカサーバーでデッドロックが発生する可能性が
 あります。
● InnoDBテーブルでALTER TABLE .. ADD FULLTEXT INDEXが失敗すると、サーバーがクラッシュします。
● フルテキストインデックスを使用してInnoDBテーブルでTRUNCATE TABLEを実行している時に、
 サーバーがクラッシュします。
● インデックスが付けられた仮想生成列を持つInnoDBテーブルでALTER TABLEを実行している時に、
 サーバーがクラッシュします。
● innodb_read_onlyが有効になっていると、CHECK TABLEの実行中にサーバーが
 クラッシュします。
● テーブル値コンストラクターを含む派生テーブルを使用してクエリを解析すると
 クラッシュします。
● 先にLOCK TABLEを使用してテーブルをロックした後、ALTER TABLEの実行中に接続が
 切断されると、サーバーがクラッシュします。
● system_versioning_asofシステム変数のグローバル値が、別のグローバルシステム変数の値を
 読み取るストアド関数を使用して設定されると、サーバーがクラッシュします。
<予期しない動作を引き起こす可能性があるもの>
● テーブルを削除した後にCREATE OR REPLACE TABLEが失敗した場合、DROP TABLE操作は
 バイナリログに書き込まれません。
● SHOW GRANTSステートメントは、DEFAULT ROLEのロール名を適切に引用しません。
● innochecksumユーティリティは、解放されたページのエラーを報告します。
● 再帰CTEのWHERE句で不明な列が参照されていると、クエリはER_BAD_FIELD_ERRORで
 失敗するのではなく、成功することがあります。
● 関数内でのCTEの再利用は、ER_NO_SUCH_TABLEエラーコードで失敗します。
● MariaDB Enterprise Cluster (Galera) SSTスクリプトのいくつかの修正。
● MariaDB Enterprise Clusterでは、wsrep_sst_method=mariabackupの場合、
 MariaDB Enterprise BackupはEnvironment systemd設定パラメータによって
 設定されたサーバーオプションを継承しません。
● MariaDB Enterprise Clusterでは、wsrep_sst_method=rsyncが設定され、
 log-binまたはlog-bin-index、あるいはその両方がカスタムパスに設定されている場合、
 rsync SSTはバイナリログインデックスをコピーしません。
 この問題の結果として、Joinerノードは次のエラーをMariaDBエラーログに書き込みます。
   tail: cannot open 'mysql-bin.index' for reading: No such file or directory
● MariaDB Enterprise Clusterでは、wsrep_sst_method=rsyncが設定されていると、
 古いSSTプロセスのrsyncではなく、新しいSSTプロセスのrsyncが強制終了される場合が
 あります。
● MariaDB Enterprise Clusterでは、wsrep_debugが有効になっていない場合、WSREPスレッドが
 外部キーに関する警告をMariaDBエラーログに書き込む可能性がありました。
 ・以前のリリースでは、次の警告がログに書き込まれる可能性がありました。
   InnoDB: WSREP: referenced FK check fail: Lock wait index `PRIMARY` table
   `schema`.`child_table`"`` :org-jira:`MDEV-26062`
 ・このリリース以降、WSREPスレッドはwsrep_debugが有効になっている場合にのみ外部キーに関する
  警告をMariaDBエラーログに書き込みます。
● CREATE INDEXステートメントは、間違った最大列長をチェックする場合があります。
● Spiderストレージエンジンは、複数列のインデックスが使用される場合に、">="を">"として
 処理する場合があります。
● max_password_errorsシステム変数は、ed25519認証プラグインでは正しく機能しません。
● "Condition pushdown into derived table"最適化は、プッシュされる式が、格納された関数呼び出し、
 @session変数参照、または他の同様の構造を持つ式から計算される派生テーブル列を参照している場合に、
 適用できません。
● ORDER BY .. LIMIT句と"Range checked for each record"最適化を使用するクエリは、
 誤った結果を生成する可能性がありました。
● 中止されたOPTIMIZE TABLEステートメントは、バイナリログに記録され、
 レプリカサーバーに複製されます。
● EXPLAINは、実際に実行されたプランとは異なる実行プランを示します。
● (SELECT .. LIMIT ) ORDER BY ..の形式を使用してビュー、派生テーブル、または
 CTEから選択すると間違った結果になります。
● システムバージョン管理されたテーブルの場合、SHOW INDEXステートメントは、
 システムに表示されないrow_end列をプライマリキーの一部として表示します。
● SYSTEM_TIMEでパーティション化されたシステムバージョン管理されたテーブルの場合、
 パーティションのオーバーフローがSELECTの正しくない結果につながります。
● EXPLAINが、実際に実行されたものとは異なる実行プランを示します。
● Spiderテーブルの場合、CASE WHEN .. THENを使用するSELECTステートメントは、
 構文エラーを引き起こす可能性があります。
● Spiderテーブルの場合、WHERE句でJSON_EXTRACT()関数を使用するSELECTステートメントは、
 構文エラーを引き起こす可能性があります。
● Spiderテーブルの場合、remove_str(TRIM()など)を使用してネイティブ関数を呼び出す
 UPDATEステートメントは、ER_WRONG_PARAMCOUNT_TO_NATIVE_FCTエラーコードで
 失敗します。
● Spiderテーブルの場合、サーバー側のプリペアドステートメント(PREPAREによって作成され、
 EXECUTEによって実行される)は、符号なし整数リテラルを誤って符号付き整数に変換します。
● Spiderテーブルの場合、JSON_REPLACE()関数を使用するステートメントは、
 ER_SP_DOES_NOT_EXISTエラーコードで失敗します。
インターフェースの変更
● KEYWORDSインフォメーションスキーマテーブルが追加されました
● SQL_FUNCTIONSインフォメーションスキーマテーブルが追加されました
● system_versioning_asofシステム変数のデフォルト値がDEFAULTから""(空)に変更されました
プラットフォーム
エンタープライズライフサイクルに合わせて、MariaDB Enterprise Server 10.3.31-13は以下に対して
提供されています。
・CentOS 7 (x86_64)
・CentOS 8 (x86_64 / ARM64)
・Debian 9 (x86_64 / ARM64)
・Debian 10 (x86_64 / ARM64)
・Red Hat Enterprise Linux 7 (x86_64)
・Red Hat Enterprise 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)
・Microsoft Windows (x86_64)

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

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

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

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