2801 Network Blvd., Suite 220 : Frisco, Texas 75034 : 972.999.1355 info@calpont.com : www.calpont.com
Calpont InfiniDB
®
マルチ UM 同期ガ イ ド
Release 3.5.1 Document Version 3.5.1-1 December 2012ii
Copyright © 2012 Calpont Corporation. All rights reserved.
InfiniDB お よ び Calpont 製品名は、 Calpont の商標です。 他社お よ びその製品への参照は、 各社が所有す る 商標を使用 し てお り 、 参照のみを目的 と し てい ます。
こ の文書の情報は予告な し に変更 さ れ る 場合があ り ます。 こ の文書にいかな る 誤 り があ る 場合 も 、 Calpont に責任はない も の と し ます。
iii
目次
は じ めに
i
対象読者 ...i 表記規則 ...i マニ ュ アル リ ス ト ...ii マニ ュ アルの入手 ...iii マニ ュ アルへの フ ィ ー ド バ ッ ク ...iii 追加 リ ソ ース ...iii第 1 章
マルチユーザーモ ジ ュ ールでの同期の保持
1
マルチ UM 構成での DDL の実行 ... 1 オプ シ ョ ン 1 : フ ロ ン ト エ ン ド デ ィ レ ク ト リ の コ ピー ... 1 オプ シ ョ ン 2 : コ マ ン ド の手動実行 ... 2付録 A
rsync のス ク リ プ ト 例
3
は じ めに i
は じ めに
本書では、 2 つ以上のユーザーモジ ュ ールの同期を保持す る ために管理者が使用す る オプシ ョ ン の概要について説明 し ます。 エ ン タ ープ ラ イ ズ版のマルチユーザーモジ ュ ール構成の イ ン ス ト ールについては、 『Calpont InfiniDB イ ン ス ト レーシ ョ ン ガ イ ド 』 を参照 し て く だ さ い。対象読者
本書は、 Calpont InfiniDB シ ス テ ム のマルチユーザーモジ ュ ール構成の管理を行 う IT 管理者を対象 と し てい ます。表記規則
本書では、 次の表記規則お よ びユーザーへの警告を使用 し てい ます。表 1: 表記規則
項目 説明太字
表示 さ れた と お り に入力す る 文字。 例 :getLogInfo
と 入力 し ます こ の場合、getLogInfo
と 入力 し ます。斜体
変数ま たはプ レース ホルダ。 文字列を適切に置 き 換え て入力 し ます。 複数の単語で構成 さ れ る 変数はア ン ダース コ ア (_) で連結 し て表示 さ れてい ます。 例 : ID を入力 し ます。 ID 番号34878
を入力 し ます。 IP_address を入力 し ます。 IP ア ド レ ス110.68.52.01
を入力 し ます。ii は じ めに
マニ ュ アル リ ス ト
Calpont InfiniDB のマニ ュ アルは、 様々な読者を対象 と し た複数のガ イ ド で構成 さ れてい ま す。 次の表を参照 し て く だ さ い。表 2: ユーザーへの警告
項目 説明 注意 : 役立つ情報であ る こ と を示 し ます。 警告 : デー タ の損失ま たは破損の原因 と な る ハー ド ウ ェ アや ソ フ ト ウ ェ アのエ ラ ーを発生 さ せ る 可能性があ る こ と を示 し ます。表 3: マニ ュ アル
マニ ュ アル 説明 『Calpont InfiniDB 管理者ガ イ ド 』 Calpont InfiniDB を管理す る ための詳細な手順につい て説明 し ます。 『Calpont InfiniDB 最小推奨仕 様ガ イ ド 』 Calpont InfiniDB の実装に必要なハー ド ウ ェ アお よ び ソ フ ト ウ ェ アの最小の推奨仕様を示 し ます。 『Calpont InfiniDB イ ン ス ト レーシ ョ ン ガ イ ド 』 分散構成に Calpont InfiniDB を イ ン ス ト ールす る ため に必要な手順の概要について説明 し ます。 『Calpont InfiniDB SQL 構文ガ イ ド 』 Calpont InfiniDB に固有の構文について説明 し ます。『Calpont InfiniDB 概要』 分析用デー タ ベース Calpont InfiniDB の概要について 説明 し ます。 『Calpont InfiniDB パフ ォ ーマ ン ス チ ュ ーニ ン グガ イ ド 』 分析用デー タ ベース InfiniDB をパ ラ レル化お よ び拡張 す る ためのチ ュ ーニ ン グに役立つ情報について説明 し ます。
は じ めに iii
マニ ュ アルの入手
英語版のマニ ュ アルは、 (http://www.infinidb.org/お よ びhttp://www.calpont.com) で入 手す る こ と がで き ます。 追加の支援が必要な場合はinfinidb_doc@ashisuto.co.jpにご連 絡 く だ さ い。マニ ュ アルへのフ ィ ー ド バ ッ ク
マニ ュ アルの改善に向けて、 フ ィ ー ド バ ッ ク 、 コ メ ン ト お よ び提案を いただけ ます よ う お願いいた し ます。 マニ ュ アル名、 バージ ョ ンお よ びページ番号を添え て コ メ ン ト をinfinidb_doc@ashisuto.co.jpにご送付 く だ さ い。追加 リ ソ ース
Calpont InfiniDB の イ ン ス ト ールお よ びチ ュ ーニ ン グ、 ま たは Calpont InfiniDB を使用 し たデー タ の問合せに関 し て支援が必要な場合はinfinidb_doc@ashisuto.co.jp ま で ご連 絡 く だ さ い。
マルチユーザーモ ジ ュ ールでの同期の保持 1
第 1 章
マルチユーザーモ ジ ュ ールでの同期の保持
Calpont InfiniDB では、 複数のユーザーモジ ュ ール (UM) を構成で き ます。 こ れ ら の ユーザーモジ ュ ールの フ ロ ン ト エ ン ド の定義は、 同期が と れてい る 必要があ り ます。 そのため、 あ る UM で実行 さ れ る DDL を他の UM に レ プ リ ケー ト す る 必要があ り ま す。 以下は、 レ プ リ ケーシ ョ ン を効果的に実行す る オプシ ョ ンについて説明 し てい ま す。
マルチ UM 構成での DDL の実行
マルチ UM を使用 し た構成では、 すべての DDL を 1 つの UM (で き れば UM1) のみ で実行す る こ と をお薦め し ます。 こ う す る と 、 以下の 2 つのオプシ ョ ン の 1 つを使用 す る こ と に よ り 、 すべての UM で同期を保持 し やす く な り ます。オプ シ ョ ン 1 : フ ロ ン ト エ ン ド デ ィ レ ク ト リ のコ ピー
注意 : こ のオプシ ョ ン の使用を推奨 し ます。 すべての フ ロ ン ト エ ン ド ス キーマ情報は次のデ ィ レ ク ト リ に存在 し ます。 /usr/local/Calpont/mysql/db こ の ス キーマ情報は、 すべてのオ ン ラ イ ン UM 間で同期を保持す る 必要があ り ます。 同期を保持す る には、 rsync コ マン ド を使用し て ソ ース UM を他のすべての ターゲ ッ ト UM に同期 さ せます。 次に、 2 つの UM サーバーを同期 さ せ る ために使用す る rsync コ マン ド の例を示 し ま す (MySQL の .err フ ァ イ ルおよび .pid フ ァ イ ルを除 く )。 こ れは、 DDL 文が実行さ れ る ソ ース UM で実行 さ れ ます。
rsync -vuopg -e ssh --delete --exclude=*err --exclude=*pid -r / usr/local/Calpont/mysql/db root@infiniDB_UM2:/usr/local/Calpont/ mysql/
さ ら に自動化す る 必要があ る 場合は、 こ の コ マ ン ド を ス ク リ プ ト に記述 し ます。 ス ク リ プ ト に こ の コ マ ン ド を記述す る 例については、 付録 A を参照 し て く だ さ い。
2 マルチユーザーモ ジ ュ ールでの同期の保持
オプ シ ョ ン 2 : コ マ ン ド の手動実行
CREATE コ マン ド および DROP コ マン ド は、同期 さ せる必要のあ るすべての UM で使用で き ます。
あ る UM で CREATE TABLE を実行する場合、 「schema sync only」 コ メ ン ト を使用し て他の UM と 同期 さ せます。 他のすべての UM で、 コ メ ン ト オプシ ョ ン を使用 し た同 じ CREATE TABLE コ マン ド を実行する必要があ り ます。
CREATE newtable (column_info) ENGINE=INFINIDB COMMENT='schema sync only';
あ る UM で DROP TABLE を実行する場合、RESTRICT オプシ ョ ン を使用し て他の UM と 同期 さ せます。 こ の DROP TABLE コ マン ド を、 他のすべての UM で実行する必 要があ り ます。
DROP TABLE droppedtable RESTRICT;
ALTER TABLE コ マン ド ま たは RENAME TABLE コ マン ド については、前述の 2 つの 文 (DROP および CREATE) を組み合わせて、 他のすべての UM で実行する必要が あ り ます。
DROP TABLE alteredtable RESTRICT;
CREATE alteredtable (column_info) ENGINE=INFINIDB COMMENT='schema sync only';
CREATE PROCEDURE コ マン ド ま たは DROP PROCEDURE コ マン ド については、同 じ コ マ ン ド を他のすべての UM で実行す る 必要があ り ます。
CREATE DATABASE コ マン ド ま たは DROP DATABASE コ マン ド については、同 じ コ マ ン ド を他のすべての UM で実行す る 必要があ り ます。
rsync のス ク リ プ ト 例 3
付録 A
rsync のス ク リ プ ト 例
次に、 rsync コ マン ド の実行を さ ら に自動化する ために ス ク リ プ ト に rsync コ マン ド を記述す る 例を示 し ます。 rsync コ マン ド は、 同期を保持する必要があ る各 UM に レ プ リ ケー ト さ れ ます。 #!/usr/bin/expect # set timeout 600set PASSWORD serverpwd
set COMMAND1 "rsync -vuopg -e ssh delete exclude=*err
--exclude=*pid -r /usr/local/Calpont/mysql/db root@infinidb_UM2:/usr/ local/Calpont/mysql/"
set DEBUG 0 log_user $DEBUG
spawn -noecho /bin/bash expect -re "# " # # send command # send "$COMMAND1\n" expect {
-re "Host key verification failed" { send_user "FAILED: Host key verification failed\n" ; exit -1}
-re "service not known" { send_user " FAILED: Invalid Host\n" ; exit -1}
-re "ssh: connect to host" { send_user " FAILED: Invalid Host\n" ; exit -1 }
-re "authenticity" { send "yes\n" expect {
-re "word: " { send "$PASSWORD\n" } abort }
}
-re "word: " { send "$PASSWORD\n" } abort }
expect {
-re "# " {} abort
-re "Permission denied" { send_user " FAILED: Invalid password\n" ; exit -1 }
-re "(y or n)" { send "y\n" expect -re "# " { exit } }
} exit