バージョンアップとデータ移行

バージョンアップとデータ移行

 MySQL Clusterは、同じメジャーバージョンのもの(例えば6.2.x)においては、ローリングリスタートを使うことによってクラスタを停止することなくソフトウェアをアップグレードすることが可能です。

 これにより、メンテナンスによるダウンタイムを大幅に短縮することが可能です。このようなアップグレード方法はローリングアップグレードと呼ばれています。手順は1ページ目で説明したものとほぼ同じです。異なる点は、各ノードを停止している間にバイナリを更新するということだけです。

 ただし、いくつかのバージョンではシステムテーブルの互換性などが原因で、クラスタ全体をシャットダウンしなければならないケースもあります。ローリングアップグレードが可能かどうかについては、バージョンの互換性のリストがマニュアル(http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-upgrade-downgrade-compatibility.html)に載っているので参考にしてください。

 ローリングアップグレードが可能でない場合には、データをすべてバックアップし、いったんファイルを初期化してからリストアするという手順が必要になります。この場合はかなりのメンテナンス時間が必要です。データのバックアップには、MySQL Clusterのオンラインバックアップまたはmysqldumpコマンドのいずれかを用いて行うことが可能ですが、実行時間が短くて済むのはオンラインバックアップです。

オンラインバックアップとリストアの手順

 ここでは、オンラインバックアップとリストアの手順について説明します。

 バックアップは任意のタイミングで取得することが可能です。データ移行時などにはアプリケーションとSQLノードを停止し、更新がない状態にしてからバックアップをとるといいでしょう。バックアップをとるには、ndb_mgmクライアントにおいて以下のコマンドを実行します。

ndb_mgm> START BACKUP

 すると各データノードにおいてバックアップが作成されます。バックアップを開始する度に、バックアップにはそれぞれ整数のIDが与えられます。このIDはバックアップを格納するディレクトリ名や、バックアップファイル名に使用されます。例えば、バックアップIDが123で、FileSystemPathが/var/lib/mysql-clusterで、BackupDataDirの指定がない場合、/var/lib/mysql-cluster/BACKUP/BACKUP-123というディレクトリにバックアップが作成されます。バックアップが完了したかどうかは、以下のコマンドで確認することができます。

ndb_mgm> ALL REPORT BackupStatus

 ここで取得したバックアップを用いてリストアを行うには、データノードをすべて空の状態にする必要があります。データノードをすべて空の状態にするには、以下のいずれかの手順を実施するといいでしょう。

・クラスタをシャットダウン(ndb_mgmよりSHUTDOWNコマンドを実行)し、すべてのテーブルスペースとログファイルを消去してから、--initialオプションをつけてndbdを起動する。

・クラスタをシャットダウンし、DataDirまたはFileSystemPath配下のファイル、テーブルスペースとログファイルを消去してから、ndbdを起動する。

 リストアを行うには、ndb_restoreコマンドを使用します。ndb_restoreコマンドはSQLノードの一種として動作するため、ndb_resotreコマンドのための[mysqld]セクションをconfig.iniに追加します。空の[mysqld]セクションを指定すると、任意のホストからクラスタへ接続することが可能となります。データノードと同じホストでndb_restoreコマンドを実行する場合には、空の[mysqld]セクションを使用するといいでしょう。

 データノードが4つあり、各ノードIDが41~44で、バックアップIDが123であるとします。各データノードが作成したバックアップファイルをそれぞれリストアします。まず、ノード41でリストアを行う場合、ndb_restoreコマンドのオプションは以下のようになります。

shell> ndb_restore -c 192.168.1.40 -b 123 -n 41 -m -r /var/lib/mysql-cluster/BACKUP/BACKUP-123

 -bはバックアップIDで、-nはバックアップファイルを取得したデータノードのノードIDです。このコマンドを、各データノード上で繰り返します。最初だけ-mオプションが必要ですが、ほかのノードにおいて、例えばノード42では次のように実行します。

shell> ndb_restore -c 192.168.1.40 -b 123 -n 42 -r /var/lib/mysql-cluster/BACKUP/BACKUP-123

 残りのデータノードにおいても-mなしでリストアを行いましょう。

 実際の運用においては、バックアップファイルを専用のバックアップ用ホストに集約するといいでしょう。

 なお、サン・マイクロシステムズでは、MySQLサーバー製品群のサポートサービスを有償で行っています。価格やサポートの内容についてはMySQL Enterprise(http://www-jp.mysql.com/products/enterprise/features.html)、MySQL Clusterサポート(http://www-jp.mysql.com/products/database/cluster/support.html)を確認してください。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30