2023.09.25

MariaDB

MariaDB MaxScale 23.08.1 GA版(リリース日:2023年9月21日)

修正されたセキュリティ脆弱性

CVE:CVE-2023-27371
詳細:libmicrohttpdがバージョン 0.9.76に更新されました

MaxGUIの機能強化

MaxGUIは、MaxScaleのREST APIを使用して管理タスクを実行できるグラフィカルユーティリティです。

このリリースでは次のような機能強化が行われています:

  • エンティティ関係図(ERD)がワークスペースで作成できます。
  • 応答時間分布の可視化(REST APIのresponse_time_distribution)
  • テーブル、プロシージャ、トリガー、ビュー、または、ストアド関数をクリックすると、クエリエディタに追加の詳細(スキーマオブジェクトの洞察)が表示されます。詳細にはインデックスと外部キーが含まれます。

nosqlprotocolの組み込みキャッシング

nosqlprotocolについて、効率を向上させるために内部キャッシュのサポートが追加されました。

  • このリリース以降、nosqlprotocol.internal_cacheはNoSQLプロトコル要求から作成されたキーを使用し、NoSQLプロトコル応答を保存します。
  • 内部キャッシュは、次のネストされた設定構文を使用して設定できます:
    [My-NoSQL-Listener]
    ...
    nosqlprotocol.internal_cache=cache
    nosqlprotocol.cache.max_size=10M
    nosqlprotocol.cache.soft_ttl=30s
    nosqlprotocol.cache.hard_ttl=40s
    ...

S3からのLOAD DATA INFILE

LDIフィルターを使用すると、AWS S3、Google Cloud StorageなどのS3 API互換のオブジェクトストレージ、または、MinIOなどのローカル実行ストレージからのデータの読み込みが可能になります。

  • S3://またはgs://で始まるファイルパスは、S3オブジェクトファイルとして解釈されます。
  • 例えば、フィルターのセットアップ後、次のSQLステートメントは、ファイル my-data.csvをバケット my-bucketからテーブル t1にロードします:
    LOAD DATA INFILE 'S3://my-bucket/my-data.csv' INTO TABLE t1
    FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

注目すべき変更

共通の構成ブロック

複数のセクションに共通する構成ブロックを定義し、名前によってそれらのセクションに構成ブロックを含めることができます。

  • これは、複数のモニターがサーバーのリストを除いて同じように構成されている場合に便利です。
  • 例:
    [Monitor-Common]
    type=include
    module=mariadbmon
    user=the_user
    password=the_password
    handle_events=false
    monitor_interval=2000ms
    backend_connect_timeout = 3s
    backend_connect_attempts = 5

    [Monitor1]
    type=monitor
    @include=Monitor-Common
    servers=Server1, Server2

    [Monitor2]
    type=monitor
    @include=Monitor-Common
    servers=Server3, Server3

スイッチオーバーの改善

MariaDBモニター(mariadbmon)を使用すると、スイッチオーバー中に、MariaDBモニターは、backend_read_timeoutの制限を無視して、長いタイムアウトが原因でマスターへの新しい接続を開始します。

  • これにより、SET GLOBAL read_only=1などの長時間実行ステートメントを実行する時のタイムアウトの可能性が減少します。
  • スーパーユーザーおよび読み取り専用管理者ユーザーをキックアウトすると、モニターはFLUSH TABLES WITH READ LOCKによる書き込みを防止します。

手動強制スイッチオーバー

手動強制スイッチオーバーは、MaxCtrl switchover-forceコマンドを使用して開始できます。

  • switchover-forceは、ほとんどのエラーを無視して、実行中のプライマリをレプリカと交換します。
  • このコマンドは、自動スイッチオーバーが発生する可能性がない場合に役立ちます。例えば、プライマリサーバーがpingには応答するが、他のコマンドを実行しない場合は、手動強制スイッチオーバーが必要になる場合があります。
  • switchover-forceを使用すると、古いプライマリでレプリケーションが分岐する可能性があるため、switchover-forceは注意して使用する必要があります。

より安全なトランザクションのリプレイ

readwritesplitルーターでtransaction_replayが有効になっている場合、デフォルトのトランザクションリプレイ動作が変更されました。

  • transaction_replay_safe_commitは、サーバーにコミットされようとしていたトランザクションを再実行するかどうかを制御します。
  • 新しいデフォルトの動作では、接続が失われた時にサーバーにコミットされているところだったトランザクションは再実行されません。

部分的な結果とリプレイ

readwritesplitルーターでは、トランザクション内のクエリが中断され、結果の一部がクライアントに配信された場合、クエリは再実行され、既にクライアントに配信された結果の一部は破棄されます。

fast_universal Causal Reads

readwritesplitルーターを使用すると、causal_reads=universalとcausal_reads=fastの動作は、causal_reads=fast_universalと組み合わせることができます。

  • fast_universalは、universalと同じメカニズムを使用してGTIDの位置を取得します。
  • fast_universalは、クエリをルーティングする時にfastのように動作します。

schemawriterのキャッシュの無効化

schemawriterルーターを使用すると、maxctrlを使用してデータベースマップキャッシュを手動でクリアできます。

  • 構文:
    maxctrl call command schemarouter clear
  • これにより、マップの更新に時間がかかる負荷の高いシステムのキャッシュのクリアをスケジュールすることができます。

schemawriterの古いキャッシュの使用状況

schemawriterルーターを使用すると、データベースマップ内の古いエントリをmax_staleness秒まで使用できます。

  • これにより、シャードの更新がクライアントアプリケーションに与える影響が軽減されます。

PAM認証のサンドボックス化

PAM認証は、suidサンドボックスサブプロセスで実行できます。

  • この動作は、pam_modeがsuidの場合にPAM Authenticatorで有効になります。

サービスパスワード変更

サービスパスワードが変更されると、MaxScaleは記憶しており、新しいパスワードが機能しない場合は以前のパスワードを使用します。

  • これにより、バックエンドのパスワードとMaxScaleのパスワードを同時に変更する必要がなくなるため、パスワードの変更が容易になります。

正規表現の一致の制限

MaxScaleで使用されるPCRE2ライブラリは、ヒープメモリを1GBに制限し、一致を500000に制限するようになりました。この変更により、正規表現でネストされた再帰が使用される場合の致命的なバックトラッキングが防止されます。

REST API JWTの発行者

admin_jwt_issuerは、MaxScale REST APIによって生成されたJWTのissフィールドの値を設定し、クライアントがトークンの発行者を確認できるようにします。

  • このリリースより前は、発行者は全てのトークンに対してmaxscaleでした。

ロギングの改善

log_infoによるロギングでは、ロギングされたSQLステートメントに存在する余分な改行を含むログエントリが生成されなくなりました。

  • このリリースより前は、SQLステートメントはそのままログに記録されていました。SQLステートメントに余分な改行が含まれている場合、ログエントリにもそれらの改行が含まれます。
  • このリリース以降、ログ行に余分な改行が含まれないように、改行はテキスト \nに置き換えられます。

MaxGUI UIの改善

新しいクエリタブを追加すると、新しいクエリタブは、現在のアクティブなクエリ タブの現在のアクティブなデータベースを自動的に使用します。

MariaDB Xpandのリージョン対応ブートストラップ

Xpandモニターを使用すると、モニターが動的に検出するノードを特定のリージョン内のノードに制限することができます。

MariaDB Xpand LDAPサポート

MariaDB Xpand 23.09.1で追加されたLDAP機能のサポートには、MariaDB Authenticator(mariadbauth)にはパススルー認証モードが含まれています。

  • authenticator_options=clear_pw_passthrough=trueで有効化
  • パスワードはクリアテキストで送信されるため、MaxScaleリスナーはSSL(TLS)用に設定する必要があります。

早期接続メタデータ

connection_metadataリスナーパラメータは、接続の作成中にクライアントに送信されるメタデータ変数一式を制御します。

  • デフォルトでは、次の値が送信されます:
    • character_set_clientシステム変数
    • character_set_connectionシステム変数
    • character_set_resultsシステム変数
    • max_allowed_packetシステム変数
    • system_time_zoneシステム変数
    • time_zoneシステム変数
    • tx_isolationシステム変数
    • threads_connected、現在の接続数
    • connection_id、実際の64ビット接続ID
  • 互換性のあるMariaDB Connectorは、データベースサーバーから変数の値をクエリする代わりに、MaxScaleからのこの情報を使用します。これにより、接続の作成が高速化されます。

名前が変更された機能

  • connection_timeout設定パラメータの名前がwait_timeoutに変更されました
    • connection_timeoutはwait_timeoutのエイリアスです
    • 古い名前(connection_timeout)の使用は非推奨になりました。
  • readwritesplitルーターの場合、max_slave_replication_lagパラメータの名前がmax_replication_lagに変更されました
    • max_slave_replication_lagはmax_replication_lagのエイリアスです
    • 古い名前(max_replication_lag)の使用は非推奨になりました。

非推奨になった機能

  • query_classifier設定パラメータは非推奨になり、無視されます。
  • query_classifier_args設定パラメータは非推奨になり、無視されます。
  • strip_db_esc設定パラメータは非推奨になりました。
    • エスケープ文字を削除するデフォルトの動作は、既知の全てのケースにおいて正しい動作です。このパラメータは決して必須ではありません。

修正された問題

予期しない動作が発生する可能性があるもの

  • log_infoが有効な場合、log_throttlingは無効にならないため、ログメッセージが欠落する可能性があります。
  • エラーメッセージに接続IDがありません。
  • readwritesplitルーターでは、slave_selection_criteriaは列挙値の小文字バージョンを受け入れません。
  • MaxGUIのグラフは、リフレッシュが停止している場合でも継続的にリフレッシュできます。

アップグレードに関する注意事項

  • MariaDB MaxScale 23.08.1にアップグレードする前に、既存の設定ファイルをバックアップしてください。

パッケージ

MariaDBコーポレーションエンジニアリングポリシーに準拠して、MariaDB MaxScale 23.08.1は以下に対して提供されます:

  • CentOS 7 (x86_64)
  • Debian 10 (x86_64, ARM64)
  • Debian 11 (x86_64, ARM64)
  • Debian 12 (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 15 (x86_64, ARM64)
  • Ubuntu 20.04 (x86_64, ARM64)
  • Ubuntu 22.04 (x86_64, ARM64)

MariaDB MaxScale 23.08.1のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/server/release-notes/mariadb-maxscale-23-08/23-08-1/


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

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