早見表 |
|
カタログ |
システム |
カテゴリ |
データベース アプライアンス |
ユーザ ボリューム |
あり |
最小 メモリ |
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 アプライアンスへのマスタ/スレーブ レプリケーションの追加方法
レプリケーションが開始された後、両方の MYSQLR64 アプライアンス上の Web インターフェースにログインし、レプリケーション ステータスを確認します。 レプリケーションは両方のアプライアンス上で 5 分以内に実行されます。
マスタ/スレーブ レプリケーションへの MYSQLR64 アプライアンスの追加
CA 3Tera AppLogic では、既存のマスタ/マスタ レプリケーションに、データの損失なしに新しい MYSQLR64 アプライアンスを追加することができます。
マスタ/スレーブ レプリケーションへの MYSQLR64 アプライアンスの追加方法
すべての MYSQLR64 アプライアンスの Web インターフェースの上へログインし、レプリケーション ステータスを検証します。レプリケーションは 5 分以内にすべてのアプライアンスで実行されます。
マスタ/スレーブ設定でのレプリケーション修復
CA 3Tera AppLogic では、データの損失なしに、マスタ/スレーブ設定でのレプリケーションを修復することができます。
マスタ/スレーブ設定でのレプリケーション修復方法
レプリケーションが開始された後、スレーブ MYSQLR64 アプライアンス上の Web インターフェースにログインして、レプリケーション ステータスを検証します。レプリケーションは 5 分以内に実行されます。
マスタ/マスタ設定でのレプリケーション修復
CA 3Tera AppLogic では、マスタ/マスタ設定でのレプリケーションを、データの損失なしに修復することができます。
レプリケーションの失敗をレポートするアプライアンスの Web インターフェイスにログインし、initiate/fix レプリケーションを選択します。 マスタ上のデータベースのサイズに応じて、ログ記録には時間がかかります。 操作中は、スレーブ上の mysql サービスは停止します。 マスタ上ではダウンタイムは発生しません。 修復が終了するまで、データベースはマスタ間で同期化されません。 データベース更新は、修復の間他のすべての MYSQLR64 アプライアンス上でレプリケートされない場合があります。
このアプライアンス上のデータはすべてマスタから初期化されます。 レプリケーションが壊れているので、現在のアプライアンス上にデータベースに更新があれば、それらは失われます。 この場合は、競合を手動で解決してください。
マスタ/マスタ設定でのレプリケーション修復方法
すべての 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 アプライアンスの標準的な使い方を示しています。
使用するアプライアンス:
クライアント リクエストがユーザ ゲートウェイに到達します。 ゲートウェイが 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 エラー ログにログインして表示することができる入力があります。
使用するアプライアンス:
クライアント リクエストは 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 アプライアンスの標準的な使い方を示しています。 スレーブ サーバを使用して、マスタ サーバを停止せずに、データの一貫したバックアップを作成できるため、アプリケーションのダウンタイムをゼロにすることができます。
使用するアプライアンス:
クライアント リクエストは 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 インスタンスを使用して、アプリケーションのダウンタイムを防ぐことができます。
使用するアプライアンス:
クライアント リクエストは 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 は、障害に対応しません)。
使用するアプライアンス:
クライアント リクエストは 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 つの場合に役立ちます。
マスタ アプリケーション
スレーブ アプリケーション
使用するアプライアンス:
クライアント リクエストは 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 1.6.2 から、ルート データベース アカウントのパスワードを設定および変更できます。 ただし、MSYQLR アプライアンスには異なるホスト名を備えたいくつかのルート アカウントがあります。 パスワードを設定または変更する場合は、常に root@% アカウントを使用する必要があります。 root@% アカウントは MYSQLR の in 端子に接続されるアプライアンスが認証するアカウントです。 他のルート アカウントはローカル ユーザからのみ使用されるため、ルート アカウントにはパスワードを決して設定しないでください。そうすると MYSQLR アプライアンスの起動が失敗します。
注: root@localhost アカウントにパスワードを与えなくても、セキュリティの問題とはなりません。このアカウントはアプライアンス上のローカル ユーザによってのみ使用可能であり、アプライアンスにアクセスできるユーザは誰でもパスワード変更ができるからです。
データベースのルート パスワード変更のために開始しないアプライアンスを回復するには、以下の手順を実行します。
comp start main.MYSQLR --debug
app start --debug
アプライアンスを開始した数秒後、アプライアンスにログインすることができます。 アプライアンスのタイムアウトを待つ必要はありません。
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 接続がパスワードを必要とすることを確認します。
Copyright © 2011 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |