前のトピック: MYSQL5 - MySQL データベース アプライアンス

次のトピック: PGSQL64 - PostgreSQL データベース アプライアンス

MYSQLR、MYSQLR64 - レプリケーションに適した MySQL データベース アプライアンス

MYSQLR64: レプリケーションに適した MySQL データベース アプライアンス

早見表

カタログ

システム

カテゴリ

データベース アプライアンス

ユーザ ボリューム

あり

最小 メモリ

160 MB

OS

Linux

質問/コメント

フォーラムで質問する

機能の概要

MYSQLR64 は、MySQL データベース エンジン(http://www.mysql.org)に基づいたデータベース アプライアンスです。 任意のアプリケーションにデータベースを簡単に追加できる方法を提供します。 このアプライアンスは、複雑な MYSQL レプリケーション シナリオでも使用できます。 アプライアンスは MYSQL5 (CentOS 5.5/MySQL)に基づいているだけでなく、データベース レプリケーションの処理も行います。

データベース レプリケーションでは、1 つの MySQL データベース サーバ(マスタと呼ばれる)から、1 つ以上の MySQL データベース サーバ(スレーブと呼ばれる)にデータをレプリケートできます。 MYSQLR64 アプライアンスは、マスタ/スレーブだけでなく、マスタ/マスタ レプリケーションおよび 3 つ以上のマスタを含めたレプリケーション用にセットアップできます。

レプリケーションのセットアップ、管理およびモニタリングは Web インターフェースを介して行います。 Web インターフェースは、マスタ上でゼロに近いダウンタイムでレプリケーションを開始する簡単な方法を提供します。 問題が発生した場合のレプリケーションの修復にも使用できます。 Web インターフェースを使用して、MYSQL や MYSQL5 などの古いデータベース アプライアンスからデータベースをコピーできます。 また、MYSQLR64 では、ユーザのデータベースを簡単に管理したり参照したりできます(phpMyAdmin に基づく)。

レプリケーションは以下のような状況で役立ちます。

そのデフォルト設定で、MYSQLR64 は管理用の Web インターフェースを備えた MYSQL5 アプライアンスとして正確に動作します。 レプリケーション シナリオに使用するには、適切に設定された少なくとも 2 つの MYSQLR64 アプライアンスを必要とします(「典型的な使用状況」を参照)。

MYSQLR64 は、各 MYSQLR64 インスタンス上で設定できるアプリケーション定義ボリューム上にデータベースを格納します。 空のボリューム上で起動されると、MYSQLR64 は自動的に空のデータベースを作成します。

名前

最新バージョン

OS

!MySQL

MYSQLR

2.0.3-1

CentOS 5.5

5.5.8

MYSQLR64

2.0.3-1

CentOS 5.5 (64 ビット)

5.5.8

 

重要: データベース ファイルは、マスタからスレーブへとそのままコピーされるため、レプリケーションを使用するときは 32 ビットと 64 ビット MYSQLR アプライアンスを一緒に使用しないでください。 また、アプライアンスの 32 ビット バージョンからのデータ ボリュームは、同じアプライアンスの 64 ビット バージョンと一緒に使用しないでください(その逆の場合も同様)。 32 ビットと 64 ビット MYSQLR バージョン間でデータベースをマイグレートするには、ここで説明されているように 1 つのホスト上のデータベースをダンプして他のホストにインポートします。

境界

リソース

リソース

最小

最大

デフォルト

CPU

0.10

16

0.40

メモリ

160 MB

32 G

512 MB

帯域幅

1 Mbps

2 Gbps

250 Mbps

端子

名前

方向

プロトコル

説明

in

in

MySQL

MySQL データベース リクエストを受信します。

rin

in

任意

このアプライアンスをマスタとして使用するスレーブ MYSQLR64 アプライアンスがこの端子に接続します。

ui

in

HTTP

MYSQLR64 の Web インターフェースへのアクセスを提供します。

log

out

CIFS

エラー ログを格納するための NAS アプライアンスに接続します。 この端子は、使用しない場合は、未接続のままにしておいてかまいません。

rout

out

任意

マスタ MYSQLR64 サーバに接続します。 この端子は未接続のままにしておき、レプリケーションを実行する場合にのみ使用します。

mon

out

CCE

パフォーマンスとリソースの使用状況統計を送信します。 この端子は未接続のままにしておいてかまいません。

デフォルト インターフェースは有効です。 (SSH 経由の)診断およびトラブルシューティング用です。 このアプライアンスの今後のバージョンで SSH アクセスを無効にする可能性があります。
重要: rin 端子と rout 端子は SSH(tcp 22)および MYSQL(tcp 3306)データの両方に使用されます。 これらの端子の接続にゲートウェイ/VPN を使用する場合、この 2 つのポート許可するようにファイアウォールを設定します。

ユーザ ボリューム

ボリューム

説明

data

データベースのデータ ストレージに使用されるボリューム。 このボリュームは必須です。

binlogs

レプリケーション モードで(マスタまたはスレーブのいずれかとして)実行するときに、バイナリ ログに使用されるボリューム。 このボリュームは必須ではありませんが、レプリケーションでアプリケーションを使用し(rpl_mode が「none」以外)に何かにさせた)、binlogs ボリュームを提供しない場合、アプライアンスは起動に失敗します。

データ ボリュームは、オプションで最上位のディレクトリに my.cnf ファイルを含めることができます。このファイルには MYSQL 設定オプションが含まれます。 詳細については、「カスタム設定」セクションを参照してください。 この機能は MYSQLR64 1.6.1 以降で利用可能です。

重要:

データベースを古いアプライアンス(MYSQL、MYSQL5、MYSQL64)、物理サーバ、または MYSQLR (32 ビットまたは 64 ビットのバージョンのアプライアンスからマイグレートする場合)からマイグレートするには、「別のアプライアンスからのデータベースのマイグレート」の手順を参照してください。

プロパティ

プロパティ名

タイプ

説明

auto_create

整数

存在しない場合に、データベースを作成するかどうか。 有効な値である 1 では、作成され、0 では自動作成が行われません(ボリュームが壊れている場合の不意の上書きを防止)。 0 に設定されていて、データベースがデータ ボリュームに存在しない場合、アプライアンスは、メンテナンス モードで起動されます(アプライアンスは正しく起動されますが、ユーザが問題を確認できるように、MySQL デーモンは開始されません)。 デフォルトは 1 です。

error_log_filename

文字列

ログ ファイルシステムを基準にしたエラー ログ ファイルの名前(たとえば、/mysql_logs/my.log)。 パス内のディレクトリは自動作成されます。 空の場合、エラー ログはデータ ボリューム(/mnt/data/error.log)に書き込まれます。 デフォルト: (

error_log_level

文字列

エラー ロギング レベル。 可能な値は、error logs only errors、warn logs both warnings and errors です。 このプロパティは、大文字と小文字を区別しません。 デフォルト: error

timezone

文字列

アプライアンスで使用されるタイムゾーンを指定します。 このプロパティが空の場合、タイムゾーンは変更されず、現状のものが使用されます。 サポートされているタイムゾーンのリストはここで参照できます。 デフォルト: empty

MYSQLR64 1.6.8 の時点で、use_old_passwords プロパティは削除されました。 old_passwords を有効にする必要がある場合は、以下で説明するとおりにカスタム設定を作成してください。

error_log_filename が指定されていて、log 端子が接続されていない場合、またはファイルシステムをマウントできない場合は、MYSQLR アプライアンスは起動に失敗します。

詳細プロパティ

プロパティ名

タイプ

説明

server_id

整数

サーバ ID。 可能な値は 1 ~ 10 です。 レプリケーションを実行するときに、サーバの ID を指定します。 レプリケーションの一部となるすべてのサーバに一意の ID を設定することを保証します。 デフォルト: 1

rpl_mode

文字列

レプリケーション モード。 選択可能な値は、none(レプリケーションなし)、master、slave、および master_and_slave (サーバが同時にマスタとスレーブになるマルチ マスタ レプリケーションの場合)です。 デフォルト: none

web_pwd

文字列

Web インターフェースへの認証用のパスワード。 このパラメータはオプションです。 設定されている場合、アプライアンスの http サーバが起動され、Web インターフェースは、ui 端子およびCA 3Tera AppLogic エディタの[ログイン(Web)]オプションによってアクセスできるデフォルト インターフェースの両方にエクスポーズされます。 デフォルト:(empty)

カスタム設定

この機能は MYSQLR64 1.6.1 以降で利用可能です。

MYSQLR64 では、カスタム MYSQL 設定ファイルを使用できます。このファイルで、追加の設定オプションを提供するか、または /etc/my.cnf に指定された既存の設定を上書きすることができます。

カスタム設定を使用するには、my.cnf という名前のファイルを作成して、データ ボリュームの最上位ディレクトリに置きます。 ファイルの形式は MYSQL ドキュメントで説明されている MYSQL オプション ファイル構文に従う必要があります。

たとえば、InnoDB を使用する場合に、MYSQLR64 を調整して、パフォーマンスを向上させるには、以下の例を使用できます。 (デフォルト MYSQLR64 設定は MyISAM 用に最適化されています)。 この例は 512M のメモリ(MYSQLR64 のデフォルト)を使用することを前提にしています。

[mysqld]
# Shrink down MyISAM buffers
key_buffer=512K
myisam_sort_buffer_size=512K

# Make InnoDB the default storage engine (optional)
default-storage-engine = INNODB

# Set InnoDB buffer size
innodb_buffer_pool_size=350M
innodb_log_file_size=128M
innodb_log_buffer_size=4M
innodb_thread_concurrency=8

# If you do not have too many tables use this option, so you will not have uncontrolled innodb main tablespace growth which you can’t reclaim.
innodb_file_per_table=1

重要: レプリケーション モードで使用する場合、レプリケーションを修正/開始する場合は常に、MYSQLR64 がデータ ボリューム上の my.cnf ファイルを同期するため、スレーブがマスタと同じ設定になります。

Web インターフェース

MYSQLR64 は、ui 端子およびCA 3Tera AppLogic エディタ内の[ログイン(Web)]オプションによるデフォルト インターフェースの両方でアクセスできる Web インターフェースを提供します。 Web インターフェースを使用するには HTTP 認証が必要です。 ユーザ名をブランクのままにして、パスワードとして web_pwd の値を使用します。 このインターフェースには以下の機能があります。

PhPMyAdmin を使用して、ユーザのデータベースを参照し、編集します。

レプリケーション セットアップおよびメンテナンス

MYSQLR64 アプライアンスへのマスタ/スレーブ レプリケーションの追加

CA 3Tera AppLogic では、データの損失なしに、既存の MYSQLR64 アプライアンスへマスタ/スレーブ レプリケーションを追加することができます。

MYSQLR64 アプライアンスへのマスタ/スレーブ レプリケーションの追加方法

  1. 既存のアプライアンス上で rpl_mode を master に設定します。
  2. 新しい MYSQLR64 アプライアンスを、空のデータ ボリュームを持つアプリケーションへ追加します。 rout 端子を現在のアプライアンスの rin 端子へ接続します。
  3. (オプション)マスタ/マスタ レプリケーション内で使用する場合は、現在のアプライアンス上の取り外された端子を新しいアプライアンスの rin 端子に接続します。
  4. アプリケーションを再起動します。
  5. 新しいアプライアンスの Web インターフェースにログインし、[Manage Replication]タブから initiate/fix レプリケーションを選択します。 マスタ上のデータのサイズに応じて、ログ記録には時間がかかります。 MYSQLR64 へのアクセスに INSSLR を使用する場合、必ずタイムアウト プロパティを高い値(36000)に設定してタイムアウトを避けるようにしてください。 クライアント側のどのプロキシにもタイムアウトがないことを確認してください(プロキシは全く使用しないことをお勧めします)。

レプリケーションが開始された後、両方の MYSQLR64 アプライアンス上の Web インターフェースにログインし、レプリケーション ステータスを確認します。 レプリケーションは両方のアプライアンス上で 5 分以内に実行されます。

マスタ/スレーブ レプリケーションへの MYSQLR64 アプライアンスの追加

CA 3Tera AppLogic では、既存のマスタ/マスタ レプリケーションに、データの損失なしに新しい MYSQLR64 アプライアンスを追加することができます。

マスタ/スレーブ レプリケーションへの MYSQLR64 アプライアンスの追加方法

  1. 新しい MYSQLR64 アプライアンスを、空のデータ ボリュームを持つアプリケーションへ追加します。 たとえば、N-1 MYSQLR64 アプライアンス(3 <= N <= 10)がすでにあり、環状設定で各アプライアンスの rout 端子が隣のアプライアンスの rin 端子に接続されている(db1 rout が db2 rin に接続、というパターンが続く)ことを前提とした場合、dbN です。
  2. rpl_mode を dbN の master_and_slave に設定します。
  3. dbN-1 アプライアンスの rout 端子を、dbN アプライアンスの rin 端子に接続します。
  4. dbN アプライアンスの rout 端子を、db1 アプライアンスの rin 端子に接続します。
  5. 変更が有効になるように、アプリケーションを再起動します。 再起動の後、レプリケーションは手順の最後まで同期されません。 1 つのアプライアンスに書き込まれたデータは、この処理中は他のアプライアンス上では一切レプリケートされない場合があります。
  6. 新しい dbN アプライアンスの Web インターフェースにログインし、[Manage Replication]タブから initiate/fix レプリケーションを選択します。 マスタ上のデータのサイズに応じて、ログ記録には時間がかかります。 MYSQLR64 へのアクセスに INSSLR を使用する場合、必ずタイムアウト プロパティを高い値(36000)に設定してタイムアウトを避けるようにしてください。 クライアント側のどのプロキシにもタイムアウトがないことを確認してください(プロキシは全く使用しないことをお勧めします)。
  7. レプリケーションが開始された後、dbN-1 の Web インターフェースにログインし、[Reset Master Log Position]を選択します。 ログ記録により、アプリケーションは dbN-1、および dbN の最初からのバイナリ ログを読み取ります。

すべての MYSQLR64 アプライアンスの Web インターフェースの上へログインし、レプリケーション ステータスを検証します。レプリケーションは 5 分以内にすべてのアプライアンスで実行されます。

マスタ/スレーブ設定でのレプリケーション修復

CA 3Tera AppLogic では、データの損失なしに、マスタ/スレーブ設定でのレプリケーションを修復することができます。

マスタ/スレーブ設定でのレプリケーション修復方法

  1. スレーブの Web インターフェースへのログインし、initiate/fix レプリケーションを選択します。 マスタ上のデータのサイズに応じて、ログ記録には時間がかかります。 操作中は、スレーブ上の mysql サービスは停止します。 マスタ上ではダウンタイムは発生しません。 この操作は既存の MYSQLR64 アプライアンスに新しいアプライアンスを追加することと同等です。 MYSQLR64 へのアクセスに INSSLR を使用する場合、必ずタイムアウト プロパティを高い値(36000)に設定してタイムアウトを避けるようにしてください。 クライアント側のどのプロキシにもタイムアウトがないことを確認してください(プロキシは全く使用しないことをお勧めします)。

レプリケーションが開始された後、スレーブ MYSQLR64 アプライアンス上の Web インターフェースにログインして、レプリケーション ステータスを検証します。レプリケーションは 5 分以内に実行されます。

マスタ/マスタ設定でのレプリケーション修復

CA 3Tera AppLogic では、マスタ/マスタ設定でのレプリケーションを、データの損失なしに修復することができます。

レプリケーションの失敗をレポートするアプライアンスの Web インターフェイスにログインし、initiate/fix レプリケーションを選択します。 マスタ上のデータベースのサイズに応じて、ログ記録には時間がかかります。 操作中は、スレーブ上の mysql サービスは停止します。 マスタ上ではダウンタイムは発生しません。 修復が終了するまで、データベースはマスタ間で同期化されません。 データベース更新は、修復の間他のすべての MYSQLR64 アプライアンス上でレプリケートされない場合があります。

このアプライアンス上のデータはすべてマスタから初期化されます。 レプリケーションが壊れているので、現在のアプライアンス上にデータベースに更新があれば、それらは失われます。 この場合は、競合を手動で解決してください。

マスタ/マスタ設定でのレプリケーション修復方法

  1. fix レプリケーションを実行するアプライアンスに接続される rout 端子を持つ Web インターフェイスにログインします。 [Reset Master Log Position]を選択します。 マスタ ログを設定すると、アプリケーションが修正されたアプライアンスのバイナリ ログを最初から読み取ります。 MYSQLR64 へのアクセスに INSSLR を使用する場合、必ずタイムアウト プロパティを高い値(36000)に設定してタイムアウトを避けるようにしてください。 クライアント側のどのプロキシにもタイムアウトがないことを確認してください(プロキシは全く使用しないことをお勧めします)。

すべての MYSQLR64 アプライアンスの Web インターフェースの上へログインし、レプリケーション ステータスを確認します。 5 分以内に、レプリケーションはすべてのアプライアンス上で実行されます。

レプリケーション モニタリング

MYSQLR64 アプライアンス間のレプリケーションをモニタするクローン ジョブがあります。 レプリケーションが有効になっている場合、このクローン ジョブは 2 分ごとに行われて、以下の場合にグリッド ダッシュボードにアラートを送信します。

このような場合、ユーザは手作業で問題を解決する必要があります。

レプリケーションが失敗した場合は、上のセクションで説明したようにし、Web インターフェースを使用して、修正できます。

レプリケーション モニタリング

MYSQLR64 アプライアンス間のレプリケーションをモニタするクローン ジョブがあります。 レプリケーションが有効になっている場合、このクローン ジョブは 2 分ごとに行われて、以下の場合にグリッド ダッシュボードにアラートを送信します。

このような場合、ユーザは手作業で問題を解決する必要があります。

レプリケーションが失敗した場合は、上のセクションで説明したようにし、Web インターフェースを使用して、修正できます。

カスタム カウンタ

MYSQLR64 アプライアンスは mon 端子を介して以下のカスタム カウンタをレポートします。

以下のカウンタは MySql カウンタ グループに属します。

カウンタ名

説明

中断されたクライアント数

サーバによって中断されたクライアントの数

中断された接続数

サーバによって中断された接続の数

受信バイト数

受信したバイト数

送信バイト数

送信したバイト数

Total Connections

接続数

Questions

呼び出しの合計数

Slow Queries

遅いクエリの数

Threads Created

作成されたスレッドの数

Threads Connected

接続されたスレッドの数

Threads Running

実行中のスレッドの数

Max Used Connections

使用された接続の最大数

Open Files

開いているファイルの数

Admin Commands

admin コマンドの数

Alter Table Commands

alter table テーブル コマンドの数

Analyze Commands

analyze コマンドの数

Change DB Commands

Change DB コマンドの数

Change Master Commands

Change Master コマンドの数

Check Commands

check コマンドの数

Commit Commands

commit コマンドの数

Create DB Commands

create DB コマンドの数

Create Function Commands

create function コマンドの数

Create Index Commands

create index コマンドの数

Create Table Commands

create table コマンドの数

Delete Commands

delete コマンドの数

Drop DB Commands

drop DB コマンドの数

Drop Function Commands

drop function コマンドの数

Drop Index Commands

drop index コマンドの数

Drop Table Commands

drop table コマンドの数

Flush Commands

flush コマンドの数

Grant Commands

grant コマンドの数

Insert Commands

insert コマンドの数

Insert Select Commands

insert select コマンドの数

Kill Commands

kill コマンドの数

Load Commands

load コマンドの数

Lock Tables Commands

lock tables コマンドの数

Optimize Commands

optimize コマンドの数

Purge Commands

purge コマンドの数

Rename Table Commands

rename table コマンドの数

Repair Commands

repair コマンドの数

Replace Commands

replace コマンドの数

Replace Select Commands

replace select コマンドの数

Reset Commands

reset コマンドの数

Revoke Commands

revoke コマンドの数

Rollback Commands

rollback コマンドの数

Select Commands

select コマンドの数

Set Option Commands

set option コマンドの数

Truncate Commands

truncate コマンドの数

Unlock Tables Commands

unlock tables コマンドの数

Update Commands

update コマンドの数

エラー メッセージ

アプライアンスの起動に失敗すると、アプライアンス ログ ファイルまたはグリッド コントローラのシステム ログのいずれかに以下のメッセージが表示されることがあります。

エラー メッセージ

説明

タイムゾーンを設定できませんでした

timezone プロパティで設定されるアプライアンスのタイム ゾーンを設定できませんでした。

アプライアンスは[$rpl_mode]レプリケーション モードで実行されていますが、binlogs ボリュームが見つかりません。

アプライアンスはマスタ、スレーブまたは master_and_slave のいずれかとして実行されるように設定されていますが、binlogs ボリュームは与えられていません。

アプライアンスは[$rpl_mode]レプリケーション モードで実行されていますが、「rout」端子が接続されていません。

アプライアンスはマスタ、スレーブまたは master_and_slave のいずれかとして実行されるように設定されていますが、「rout」端子が接続されていません。

「rout」端子が接続されていますが、[rpl_mode]プロパティは「none」に設定されています。 [rpl_mode]プロパティを介してレプリケーションを形成するか、または「rout」端子を切断してください。

rout 端子が接続されていますが、[rpl_mode]プロパティが「none」に設定されています。 [rpl_mode]プロパティを介してレプリケーションを設定するか、または「rout」端子を切断してください。

接続されない error_log_filename セットおよび log 端子のために mysql を開始できませんでした。

error_log_filename プロパティが設定されていますが、log 端子が接続されていません。

log 端子を介して共有をマウントできませんでした。

アプライアンスは log 端子にログを書き込むように設定されていましたが、log 端子に共有をマウントできませんでした。

log 端子による共有は書き込み可能ではありません。

log 端子上の共有は書き込み可能ではありません。

log 端子上で logdir [$logdir]を作成できませんでした。

log 端子上で logdir [$logdir]を作成できませんでした。

logdir [$logdir]は書き込み可能ではありません。

log 端子上の logdir [$logdir]は書き込み可能ではありません。

ログ ファイル[$error_log]は書き込み可能ではありません。

log 端子上のログ ファイル[$error_log]は書き込み可能ではありません。

データベースの作成に失敗しました。

アプライアンスはデータベースなしで起動し、mysql データベースをインストールできませんでした。

レプリケーションを設定できませんでした。

アプライアンスはレプリケーションを設定できませんでした。

mysql を起動できませんでした。

MySQL デーモンを起動できませんでした。

mysql データベースでの権限が不十分です。

「root'@'%」権限が不十分か、または、もしレプリケーション モードに使用されている場合、「replication_user'@'%」に MySQL レプリケーションを実行するのに十分な権限がありません。

Web インターフェースを起動できませんでした。

Web インターフェースを起動できませんでした。

データ ボリューム サイズは 100Mb 以上にする必要があります。

次にデータ ボリュームを、100 メガバイトより大きくする必要があります。 ボリューム要件に関する注意事項を参照してください。

さらに、アプライアンスが実行されている間、以下のエラーがグリッド ダッシュボードに表示される場合があります。

エラー メッセージ

説明

data ボリューム上の空き容量が少なくなっています。確認してください。

データ ボリューム上の空き容量が 20% 未満です。

マスタ サーバのレプリケーションは実行していません。確認してください。

マスタ サーバのレプリケーションが実行されていません。

マスタのバックグラウンドでのスレーブのレプリケーションの回数が多すぎます。確認してください。

マスタのバックグラウンドでのスレーブのレプリケーションの回数が多すぎます。

binlogs ボリューム上の空き容量が少なくなっています。確認してください。

binlogs ボリューム上の空き容量は 20% 未満です。

典型的な使用状況

シンプルな 2 層アプリケーション(レプリケーションなし)

以下の図は、2 層 Web アプリケーションでの MYSQLR64 アプライアンスの標準的な使い方を示しています。

シンプルな 2 層アプリケーション(レプリケーションなし)

使用するアプライアンス:

クライアント リクエストがユーザ ゲートウェイに到達します。 ゲートウェイが Web サーバにリクエストを転送し、この Web サーバがリクエストを提供します。 Web 上のスクリプト(Perl や PHP など)が永続データにアクセスする必要がある場合、Web サーバの out 端子を介して、db アプライアンスを使用します。 db アプライアンスはログによってエクスポーズされた共有のルート ディレクトリ内にログ ファイルを格納するように設定されています。

管理者は、ブラウザを使用して admin ゲートウェイに接続して、mysql または Web サーバのログ ファイルを表示します。 admin ゲートウェイは logs NAS アプライアンスにリクエストを転送します。

プロパティ設定の例(リストに表示されていないプロパティはデフォルト値のままにしてください):

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

db.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

注: データ ボリュームも、logs、content および mon アプライアンスと同様に db アプライアンス上で設定する必要があります。 ここで使用できるアプリケーション ボリュームを作成するには、「グリッド ユーザ ガイド」を参照してください。

拡張性のある 2 層のアプリケーション(レプリケーションなし)

以下の図は、複数の、負荷分散 Web サーバ間の状態およびデータを共有するために、データベースが使用される、2 層 Web アプリケーションでの MYSQLR64 アプライアンスの標準的な使い方を示しています。 さらに、この例には、管理者がデータベースにログインしてメンテナンスできるメンテナンス用の個別の入力および管理者が mysql エラー ログにログインして表示することができる入力があります。

拡張性のある 2 層アプリケーション(レプリケーションなし)

使用するアプライアンス:

クライアント リクエストは user ゲートウェイ上に着信します。 このゲートウェイは web_lb ロード バランサにリクエストを転送し、ロード バランサは web1 と web2 のいずれかの Web サーバにリクエストを伝えます。 Web サーバは db データベースにアクセスします。

db データベースおよび web1、web2 サーバは log 端子を介してログ アプライアンスにそれらのログ ファイルを書き込みます。 さらに、管理者は maint ゲートウェイを介して logs アプライアンスにログインして、ログ ファイルを表示できます。

また、管理者は SSH 経由で maint ゲートウェイを介して、admin サーバにログインできます(公開キーと秘密キーを設定する必要があります)。 admin サーバから、管理者は、統計またはデータベース スキーマの変更のために db データベースにアクセスできます。 admin サーバは、たとえば、より新しいバージョンのライブラリやデータベース スキーマをダウンロードするために、gway ゲートウェイを介してインターネットにアクセスできます。

プロパティ設定の例(リストに表示されていないプロパティはデフォルト値のままにしてください):

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

db.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

注:

maint、admin、gway、mon および log アプライアンスは 2 層アプリケーションの操作に必要ありません。 admin サーバが存在する場合、admin サーバにデータベースのスクラブ、電子メールの送信などのためのクローン ジョブがある場合があります。

マスタ/スレーブ レプリケーションを使用する N 層アプリケーション(バックアップに適している)

以下の図は、データベースがスレーブ サーバにレプリケートされる Web アプリケーションでの MYSQL アプライアンスの標準的な使い方を示しています。 スレーブ サーバを使用して、マスタ サーバを停止せずに、データの一貫したバックアップを作成できるため、アプリケーションのダウンタイムをゼロにすることができます。

マスタ/スレーブ レプリケーションを使用する N 層アプリケーション(負荷分散を実行するのに適している)

使用するアプライアンス:

クライアント リクエストは user ゲートウェイ上に着信します。 このゲートウェイは web_lb ロード バランサにリクエストを転送し、ロード バランサは web1 と web2 のいずれかの Web サーバにリクエストを伝えます。 Web サーバは master データベースにアクセスします。

スレーブ アプライアンスはマスタ アプライアンスに接続され、そのデータをレプリケートします。 スレーブは、いつでも停止して、マスタ アプライアンスのおよびその他のアプリケーションのパフォーマンスを妨げることなく、SQL データまたは重いアナリティクスの一貫したバックアップを実行することができます。

マスタとスレーブへの Web アクセスはポート 8080 と 8081 上の admin ゲートウェイ経由で利用可能です。

マスタ、スレーブ、web1 および web2 アプライアンスはログによってエクスポーズされた共有のルート ディレクトリ内にログ ファイルを格納するように設定されています。 さらに、管理者は admin ゲートウェイを介してログ ファイルを表示することができます。

プロパティ設定の例(リストに表示されていないプロパティはデフォルト値のままにしてください):

master

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

master-db.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

1

マスタ サーバ(1 である必要はないが、スレーブ上の server_id とは異なること)

rpl_mode

master

レプリケーションを作成するめにバイナリ ログを書き込みます。

slave

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

slave-db.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

2

スレーブ サーバ(2 である必要はないが、マスタ上の server_id とは異なること)

rpl_mode

slave

マスタに接続します

注:

admin、mon および log アプライアンスはレプリケーションの操作に必要ではありません。

マスタ/マスタ レプリケーションを使用する N 層アプリケーション(負荷分散に適している)

以下の図は、マスタ/マスタ レプリケーション シナリオで 2 台のサーバにデータベースがレプリケートされる Web アプリケーションでの MYSQLR64 アプライアンスの標準的な使い方を示しています。 この使用例では、アプリケーションは負荷分散用の操作中に WEB および MYSQLR64 サーバの両方を使用します。 また、WEB/MYSQLR64 インスタンスのうちの 1 つが失敗する場合、別の WEB/MYSQLR64 インスタンスを使用して、アプリケーションのダウンタイムを防ぐことができます。

マスタ/マスタ レプリケーションを使用する N 層アプリケーション(負荷分散を実行するのに適している)

使用するアプライアンス:

クライアント リクエストは user ゲートウェイ上に着信します。 このゲートウェイは web_lb ロード バランサにリクエストを転送し、ロード バランサは web1 と web2 のいずれかの Web サーバにリクエストを伝えます。 web1 は db1 データベース アプライアンスを使用し、web2 は db2 データベース アプライアンスを使用します。 db1 と db2 は Web サーバがデータベースに実行する更新をレプリケートするために接続されます。 重複したエントリが発生しないように、MYSQLR64 アプライアンスはそれぞれ、auto_increment 列にオフセット(server_id と同じ)を使用します。

db1 と db2 への Web アクセスはポート 8080 と 8081 上の admin ゲートウェイ経由で利用可能です。

db1、db2、web1 および web2 アプライアンスはログによってエクスポーズされた共有のルート ディレクトリ内にログ ファイルを格納するように設定されています。 さらに、管理者は admin ゲートウェイを介してログ ファイルを表示することができます。

プロパティ設定の例(リストに表示されていないプロパティはデフォルト値のままにしてください):

db1

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

db1.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

1

マスタ サーバ(1 である必要はないが、スレーブ上の server_id とは異なること)

rpl_mode

master_and_slave

マスタとスレーブ

db2

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

db2.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

2

マスタ サーバ(1 である必要はないが、スレーブ上の server_id とは異なること)

rpl_mode

master_and_slave

マスタとスレーブ

注:

admin、mon および log アプライアンスはレプリケーションの操作に必要ではありません。

複数ノード マスタ/マスタ レプリケーションを使用する N 層アプリケーション(負荷分散に適している)

以下の図は、マスタ/マスタ レプリケーション シナリオで 4 台のサーバにデータベースがレプリケートされる Web アプリケーションでの MYSQLR64 アプライアンスの標準的な使い方を示しています。 この使用例では、アプリケーションは負荷分散用の操作中にすべての WEB および MYSQLR64 サーバを使用します。 また、WEB/MYSQLR64 インスタンスのうちの 1 つが失敗する場合、別の WEB/MYSQLR64 インスタンスを使用して、アプリケーションのダウンタイムを防ぐことができます(MYSQLR64 は、障害に対応しません)。

複数ノード マスタ/マスタ レプリケーションを使用する N 層アプリケーション(負荷分散を実行するのに適している)

使用するアプライアンス:

クライアント リクエストは user ゲートウェイ上に着信します。 ゲートウェイは Web ロード バランサにリクエストを転送し、Web ロード バランサは web1、web2、web3 および web4 のいずれかの Web サーバにリクエストを伝えます。 Web サーバはそれぞれそれ自身のデータベース アプライアンスを使用します。 データベース アプライアンスはすべて Web サーバがデータベースに実行する更新をレプリケートするために循環的に接続されます。 したがって、たとえば db1 への更新は db2、db3 および db4 にレプリケートされます。 重複したエントリが発生しないように、MYSQLR64 アプライアンスはそれぞれ、auto_increment 列にオフセット(server_id と同じ)を使用します。

db1、db2、db3、db4 への Web アクセスはポート 8080、8081、8082 および 8083 上の admin ゲートウェイ経由で利用可能です。

db1、db2、web1 および web2 アプライアンスはログによってエクスポーズされた共有のルート ディレクトリ内にログ ファイルを格納するように設定されています。 さらに、管理者は admin ゲートウェイを介してログ ファイルを表示することができます。

プロパティ設定の例(リストに表示されていないプロパティはデフォルト値のままにしてください):

db1

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

db1.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

1

マスタ サーバ 1

rpl_mode

master_and_slave

マスタとスレーブ

db2

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

db2.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

2

マスタ サーバ 2

rpl_mode

master_and_slave

マスタとスレーブ

db3

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

db3.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

3 のインストール

マスタ サーバ 3

rpl_mode

master_and_slave

マスタとスレーブ

db4

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

db4.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

4

マスタ サーバ 4

rpl_mode

master_and_slave

マスタとスレーブ

注:

admin、mon および log アプライアンスはレプリケーションの操作に必要ではありません。

異なる機能上で作動する N 層アプリケーション(負荷分散とフェールオーバに最適)

以下の図は、複数の施設で動作する Web アプリケーションでの MYSQLR64 アプライアンスの標準的な使い方を示しています。 このセットアップで、2 つ以上の同一のアプリケーションをマスタ/マスタ設定のすべてのアプリケーションにデータベースをレプリケートして、さまざまな組織で実行することができます。 これは次の 2 つの場合に役立ちます。

マスタ アプリケーション

異なる施設で実行される N 層アプリケーション(負荷分散とフェールオーバを実行するのに適している)

スレーブ アプリケーション

スレーブ アプリケーション

使用するアプライアンス:

クライアント リクエストは user ゲートウェイに到達します。 このゲートウェイは web_lb ロード バランサにリクエストを転送し、ロード バランサは web1 と web2 のいずれかの Web サーバにリクエストを伝えます。 Web サーバは master データベースにアクセスします。 マスタ アプライアンスは、データベースをレプリケートするためにリモート(スレーブ)アプリケーションに接続します(唯一の違いはスレーブの server_id とネットワーク設定です)。 リモート アプリケーションは、リモート アプリケーションの vpn ゲートウェイからのみ接続をできるように設定されている vpn ゲートウェイを介してマスタ アプライアンスに接続します。 2 つのアプリケーション内のマスタ アプライアンスとスレーブ アプライアンスはマスタ/マスタ設定で実行されているため、常に同一のデータを使用します。

プロパティ設定の例(リストに表示されていないプロパティはデフォルト値のままにしてください):

マスタとスレーブへの Web アクセスはポート 8080 上の admin ゲートウェイ経由で利用可能です。

master

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

master-db.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

1

マスタ サーバ(1 である必要はないが、スレーブ上の server_id とは異なること)

rpl_mode

master

レプリケーションを作成するめにバイナリ ログを書き込みます。

master vpn

プロパティ名

mode

server

サーバとして動作します。

tunnel

certificates

SSL 証明書の使用。

tcp_ports

3306,22

MYSQLR64 によって必要とされるポートを許可します。

ip_addr

master_vpn_ip

マスタ アプリケーション内の VPN の IP アドレス。

remote_host

slave_vpn_ip

スレーブ アプリケーション内の VPN の IP アドレス。

slave

プロパティ名

auto_create

1

ボリュームが空の場合は、データベースを作成します。

error_log_filename

slave-db.error

logs データ ボリューム上に格納されるエラー ログ ファイルの名前。

error_log_level

error

エラー ログ レベル

server_id

2

スレーブ サーバ(2 である必要はないが、マスタ上の server_id とは異なること)

rpl_mode

slave

マスタに接続します

slave vpn

プロパティ名

mode

client

クライアントとして動作します。

tunnel

certificates

SSL 証明書の使用。

auth_path

"client1"

SSL 証明書ファイルへのパス。

ip_addr

slave_vpn_ip

スレーブ アプリケーション内の VPN の IP アドレス。

remote_host

master_vpn_ip

マスタ アプリケーション内の VPN の IP アドレス。

リモート アプリケーションは正確なコピーです。唯一の違いは、user、admin および vpn アプライアンスのネットワーク設定、vpn アプライアンスと master=/=slave の間の接続および master=/=slave アプライアンスの server_id(一意であること)です。

別のアプライアンスからのデータベースのマイグレート

MYSQLR から MYSQLR64 (またはその逆)にマイグレートする必要がある場合は、データ破損の原因になる可能性があるので、64 ビット アプライアンス上で 32 ビット アプライアンス(またはその逆)からのボリュームを単に使用しないでください。 この場合に推奨される方法は、古いアプライアンス上のデータベースをダンプし、ダンプされたファイルを新しいアプライアンスに転送した後で、新しいアプライアンスにデータベースをインポートすることです。

さらに古いデータベース アプライアンス(MYSQL、MYSQL5、MYSQL64)または CA 3Tera AppLogic アプライアンス上で実行されない mysql データベースをマイグレートする場合、同じ手順が使用できます。

データベースをマイグレートする方法

データベースが転送されて、アプライアンスが使用できる状態になります。

以下の点に留意してください。

重要: データベースのユーザを作成するときは、接続元のホスト上の制限なしですべてのユーザが作成されていることを確認してください。 例:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     IDENTIFIED BY 'some_pass' WITH GRANT OPTION;

http://dev.mysql.com/doc/refman/5.0/en/index.html --MySQL 5.0 ドキュメント

アプライアンス内で使用されるサードパーティ オープンソース ソフトウェア

MYSQLR64 は、ベース クラス LUX64 で使用されるサードパーティのオープン ソース パッケージに加えて、以下のサードパーティのオープン ソース パッケージを使用します。

ソフトウェア

バージョン

変更

ライセンス

aspell

0.60.3-7.1

なし

LGPLv2.1

該当なし

aspell-en

6.0-2.1

なし

LGPLv2.1

該当なし

curl

7.15.5-2

なし

MIT

該当なし

device-mapper-event

1.02.32-1

なし

GPLv2

該当なし

freetype

1.02.32-1

なし

FTL

該当なし

gmp

4.1.4-10.el5

なし

LGPLV2.1

該当なし

libidn

0.6.5-1.1

なし

LGPLv2.1

該当なし

libjpeg

6b-37

なし

配布可能

該当なし

libpng

1.2.10-7.0.2

なし

zlib/libpng

該当なし

lvm2

2.6.26-2.1.2.8

なし

GPLv2.0

該当なし

mysql

5.0.77-3.el5

なし

GPL

該当なし

mysql-server

5.0.77-3.el5

なし

GPLv2

該当なし

perl-DBD-MySQL

3.0007-2.el5

なし

Artistic

該当なし

perl-DBI

1.52-2.el5

なし

Artistic

該当なし

php-cli

5.1.6-23.el5

なし

PHPv3.01

該当なし

php-common

5.1.6-23.el5

なし

PHPv3.01

該当なし

php-gd

5.1.6-23.el5

なし

PHPv3.01

該当なし

php-mbstring

5.1.6-23.el5

なし

PHPv3.01

該当なし

php-mysql

5.1.6-23.el5

なし

PHPv3.01

該当なし

php-pdo

5.1.6-23.el5

なし

PHPv3.01

該当なし

rsync

2.6.8-3.1

なし

GPLv2

該当なし

samba-client

3.0.28-1.el5_2.1

なし

GPLv2

該当なし

samba-common

3.0.28-1.el5_2.1

なし

GPLv2

該当なし

sudo

1.6.8p12-10

なし

ISC

該当なし

lighttpd

1.4.18-1.el5.rf

なし

BSD

該当なし

Perl-IPC-Run

0.84-1.el5.rf

なし

Artistic

該当なし

Perl-Time-Duration

1.06-1.el5.rf

なし

Artistic

該当なし

phpMyAdmin

2.11.10-1

なし

GPLv2

該当なし

MYSQLR トラブルシューティング
MYSQLR アプライアンスが再起時にフリーズする

MYSQLR 1.6.2 から、ルート データベース アカウントのパスワードを設定および変更できます。 ただし、MSYQLR アプライアンスには異なるホスト名を備えたいくつかのルート アカウントがあります。 パスワードを設定または変更する場合は、常に root@% アカウントを使用する必要があります。 root@% アカウントは MYSQLR の in 端子に接続されるアプライアンスが認証するアカウントです。 他のルート アカウントはローカル ユーザからのみ使用されるため、ルート アカウントにはパスワードを決して設定しないでください。そうすると MYSQLR アプライアンスの起動が失敗します。

注: root@localhost アカウントにパスワードを与えなくても、セキュリティの問題とはなりません。このアカウントはアプライアンス上のローカル ユーザによってのみ使用可能であり、アプライアンスにアクセスできるユーザは誰でもパスワード変更ができるからです。

ルート データベース パスワードを変更した後に開始しない MYSQLR アプライアンスの回復

データベースのルート パスワード変更のために開始しないアプライアンスを回復するには、以下の手順を実行します。

  1. アプライアンスまたはアプリケーションをデバッグ モードで開始します。
    アプライアンス開始コマンド
    comp start main.MYSQLR --debug 
    
    アプリケーション開始コマンド
    app start --debug 
    

    アプライアンスを開始した数秒後、アプライアンスにログインすることができます。 アプライアンスのタイムアウトを待つ必要はありません。

  2. SSH を介してアプライアンスへログインし、以下のコマンドを実行します。
    mysql -p -e "update mysql.user set Password='' where User='root'" 
    mysqladmin -p flush-privileges 
    mysql -e 'update mysql.user set password=PASSWORD("NEWPASSWORD") where User="root" and Host="%"' 
    mysqladmin flush-privileges
    

アプライアンスを再起動して、正常なブート、およびユーザ ルートの「in」端子への mysql 接続がパスワードを必要とすることを確認します。