web-dev-qa-db-ja.com

MySQLデータベースエンジンの変更がクラスターから他へ機能しない

データベーステーブルエンジンをInnoDBからndbclusterに変更しようとしたときにこの問題が発生しましたが、機能しませんでした。しかし、エンジンをInnoDBからndbclusterに変更すると、機能しました。

エラーは発生しませんでしたが、機能しませんでした。 MySQLのサイトから取得できなかったのに機能しない理由を知りたいだけです。私は同じ理由を知る必要があります。

クライアントの要件については、データを失うことなく、インストールされているデータベースのエンジンを変更する必要があるかもしれません。

問題を解決するために誰でも提供できるアイデアやヘルプ。

3
Ajay Bhojak

ndbclusterInnoDBに変更できない理由

MySQLでのクラスタリングは、NDBストレージエンジンでのみサポートされています。 ndbcluster/ndbストレージエンジンは、ENGINE=ndbcluster;でテーブルを指定した場合のクラスタリングを意味します。これは、テーブルがすべてのノードで共有されており、他のENGINEタイプに変更できないことを意味します。このテーブルのバックアップを取り、次にndbclusterオプションを使用してDROP tableを作成し、ndbclusterinnodbに変更してインポートする必要があります。

ただし、MySQL Clusterで使用されているMySQLサーバーで他のストレージエンジン(InnoDBやMyISAMなど)を使用してテーブルを作成することは可能ですが、これらのテーブルはNDBを使用しないため、クラスタリングには参加しません;そのような各テーブルは、それが作成された個々のMySQLサーバーインスタンスに対して厳密にローカルです。

InnoDBからndbclusterに移行しますか?

外部キーを持つInnoDBテーブルをNDBに移行するには2つの方法があります。

  • データベースをダンプし、スクリプトを編集して、スクリプトを新しいデータベースに再インポートする前に、各テーブルでENGINE = NDBを指定します。
  • 制約を削除し、NDBエンジンを使用するようにテーブルを変更して、制約を再作成します

データベースのダンプとスクリプトの編集は、mysqldumpとテキストエディターの簡単な使用法です。

InnoDBテーブルをMySQL Clusterに変換

2
Mahesh Patil