2024.07.04

MySQL

MySQL NDB Cluster 9.0.0 Innovationリリース(リリース日:2024年7月2日)

非推奨と削除関連

  • NDB Cluster API: MySQL NDB ClusterでのNode.jsのサポートは非推奨となり、今後のリリースで削除される予定です。
    また、Node.js用のNDB Cluster jones-ndbドライバーは、 https://github.com/mysql/mysql-jsで入手できます。関心のあるユーザーは引き続き利用できます。(WL #16245)
  • NDBクライアントプログラム: ndb_size.plユーティリティは非推奨となり、サポートされなくなりました。NDB Clusterディストリビューションの今後のバージョンでは削除される予定です。このため、これに依存するアプリケーションは適宜変更する必要があります。(WL #16456)

パフォーマンススキーマ関連

  • NDBレプリケーション: 以前は、NDBレプリケーションアプライアに関する情報は、サーバーステータス変数のセットとしてのみ、またデフォルトのレプリケーションチャネルに対してのみ、ユーザーに提供されていました。
    このリリースでは、新しいパフォーマンススキーマ ndb_replication_applier_statusテーブルが実装されています。これは、既存のreplication_applier_statusテーブルに対するNDB固有の拡張機能と考えることができます。この機能強化により、NDB Clusterの競合検出と解決に関連する情報を含む、アプライアのステータスに関するチャネルごとの情報がテーブル形式で提供されます。
    (WL #16013)

追加または変更された機能

  • 重要な変更: データノードファイルまたはディレクトリの削除がファイルが存在しない (ENOENT) エラーで失敗した場合、削除が成功したものとして扱われるようになりました。
  • ndbinfo情報データベース: ndbinfo情報データベースのtransporter_detailsテーブルにtype列を追加しました。この列には、トランスポータによって使用される接続のタイプ(TCPまたはSHMのいずれか)が表示されます。
  • NDBクライアントプログラム: ndb_sign_keysに--CA-daysオプションを追加し、証明書の有効期間を指定できるようにしました。(バグ #36549567)
  • NDBクライアントプログラム: 起動時に、ndbdはデータノードログに次のような警告を生成するようになりました:
    2024-05-28 13:32:16 [ndbd] WARNING -- Running ndbd with a single thread of signal execution. For multi-threaded signal execution run the ndbmtd binary.

    (バグ #36326896)

バグ修正

  • NDB Cluster API: 接続にTLSが指定されていないにもかかわらず、TLS接続エラーが出力されました。
    この問題を修正するために、無視されたTLSエラーに続いて、管理ハンドルのエラー状態を明示的にNO_ERRORにリセットしました。(バグ #36354973)
  • NDB Cluster API: 次のNDB APIメソッドをconstとして使用せずに使用することは可能でしたが、この代替使用法は長い間非推奨でした(実際には文書化されていませんでした):
    • Dictionary::listEvents()
    • Dictionary::listIndexes()
    • Dictionary::listObjects()
    • NdbOperation::getNdbErrorLine()

    現在、これらのメソッドはそれぞれ常にconstとして呼び出す必要があります。(バグ #36165876)

  • NDBクライアントプログラム: 場合によっては、ndb_sign_keysを使用して生成された証明書をロードできませんでした。 (バグ #36430004)
  • NDBクライアントプログラム: ndb_redo_log_readerは暗号化されたファイルからデータを読み取ることができませんでした。(バグ #36313482)
  • NDBクライアントプログラム: ndb_redo_log_readerユーティリティプログラムでは、次のコマンドラインオプションが正しく機能しませんでした:
    • --mbyte
    • --page
    • --pageindex

    (バグ #36313427)

  • NDBクライアントプログラム: 未使用のページ、全てゼロバイト、または部分的にしか使用されていないページ(通常はページヘッダーのみで構成されるページ)に到達した時に、ndb_redo_log_readerはRecord type = 0 not implementで終了しました。(バグ #36313259)
  • NDBクライアントプログラム: ndb_restoreは、親キーの列と順序が異なる列を持つ外部キーを復元しませんでした。
    (バグ #114147、バグ #36345882)
  • /util/NodeCertificate.cppのメモリリークを削除しました。(バグ #36537931)
  • src/ndbapi/NdbDictionaryImpl.cppからメモリリークを削除しました。(バグ #36532102)
  • lld を使用してNDBをビルドする際、libndbclient.soをリンクしようとした時に、エラーメッセージ ld.lld: error: version script assignment of 'local' to symbol 'my_init' failed: symbol not definedが表示され、ビルドが途中で終了しました。(バグ #36431274)
  • サポートされていないOpenSSL 1.0を使用するシステムでは、TLSが明確に失敗しませんでした。このような場合、NDB ClusterでTLSを使用するためにはOpenSSL 1.1以降にアップグレードする必要があることを通知する明確なエラーメッセージがユーザーに表示されます。 (バグ #36426461)
  • 同梱のlibxml2ライブラリがバージョン 2.9.13に更新されました。(バグ #36417013)
  • シングルスレッドデータノード(ndbd)の実行時にAutomaticThreadConfigとNumCPUsを設定すると、回復不能なエラーが発生する場合がありました。現在、ndbdはこれらのパラメータの設定を無視します。これらのパラメータは、マルチスレッドデータノード(ndbmtd)にのみ適用されることを意図しています。(バグ #36388981)
  • TCテイクオーバーの一部として発生するLQH操作プールの処理では、基盤となる物理プール(静的または動的)のいずれかの最後の要素がスキップされました。この要素が使用中の場合、障害が発生したノードのトランザクションコーディネータに属するトランザクションの操作レコードを保持していたため、それは返されず、不完全なテイクオーバーが発生し、操作が残されることがありました。このような操作は、障害が発生したノードが回復するために使用する後続のトランザクションとコピープロセス(CopyFrag)に干渉していました。
    この問題を修正するために、TCテイクオーバー中にLQH操作レコードを反復処理する際に最終レコードをスキップしないようにしました。(バグ #36363119)
  • libsshライブラリがバージョン 0.10.4に更新されました。(バグ #36135621)
  • 分散認識が使用されていない場合、クラスターはトランザクションコーディネーターと同じデータノードを繰り返し選択する傾向がありました。(バグ #35840020、バグ #36554026)
  • 場合によっては、管理ノードが再起動されたデータノードとSQLノードにノードIDを割り当てることができませんでした。(バグ #35658072)
  • 場合によっては、明示的なプライマリキーのないNDBテーブルでオンラインインデックス追加操作を実行しようとした時に、結果のエラーメッセージでは問題の性質が明確に示されませんでした。 (バグ #30766579)
    参考: バグ #36382071も参照してください。

全ての変更点やバグ修正については、以下のページをご覧ください。
MySQL NDB Cluster 9.0.0 リリースノート(MySQLウェブサイト):
https://dev.mysql.com/doc/relnotes/mysql-cluster/9.0/en/news-9-0-0.html


MySQL Editions

MySQL Editions
MySQLのサブスクリプションは、24時間365日体制でお客様をサポートいたします。さらに MySQL Enterprise Edition では、データベース管理者支援ツール MySQL Enterprise Monitor やバックアップツール MySQL Enterprise Backup をご利用いただけます。