複数MongoDB アカウントをレプリケーション
CData Sync for MongoDB は、データベースにサンドボックスや製品インスタンスをレプリケートするなどの、レプリケーションの多様なシナリオに対する解決策を提供するスタンドアロンアプリケーションです。Sync for Windows およびSync for Java はどちらもコマンドラインインターフェース(CLI)を含んでおり、複数のMongoDB 接続を簡単に管理できます。この記事では、CLI を使って複数のMongoDB アカウントをレプリケートする方法について説明します。
MongoDB 接続の構成
接続およびE メール通知設定をXML 設定ファイルに保存できます。複数のMongoDB アカウントをレプリケートするには、複数の設定ファイルを使います。以下にMongoDB をSQLite にレプリケートする設定例を示します。
Windows
<?xml version="1.0" encoding="UTF-8" ?> <CDataSync> <DatabaseType>SQLite</DatabaseType> <DatabaseProvider>System.Data.SQLite</DatabaseProvider> <ConnectionString>Server=MyServer;Port=27017;Database=test;User=test;Password=Password;</ConnectionString> <ReplicateAll>False</ReplicateAll> <NotificationUserName></NotificationUserName> <DatabaseConnectionString>Data Source=C:\my.db</DatabaseConnectionString> <TaskSchedulerStartTime>09:51</TaskSchedulerStartTime> <TaskSchedulerInterval>Never</TaskSchedulerInterval> </CDataSync>
Java
<?xml version="1.0" encoding="UTF-8" ?> <CDataSync> <DatabaseType>SQLite</DatabaseType> <DatabaseProvider>org.sqlite.JDBC</DatabaseProvider> <ConnectionString>Server=MyServer;Port=27017;Database=test;User=test;Password=Password;</ConnectionString> <ReplicateAll>False</ReplicateAll> <NotificationUserName></NotificationUserName> <DatabaseConnectionString>Data Source=C:\my.db</DatabaseConnectionString> </CDataSync>
MongoDB への接続には、Server、Database、User、Password プロパティを設定します。MongoDB コレクションにテーブルとしてアクセスするには、自動スキーマ検出を使用することができます。もちろんスキーマ定義の.rsd ファイルを編集して自分でスキーマ定義を書くことも可能です。スキーマに縛られないフリーフォーマットクエリを投げることもできます。
各MongoDB インスタンスにクエリを設定
Sync を使うと標準SQL でレプリケーションを制御できます。REPLICATE ステートメントはハイレベルなコマンドで、データベースにテーブルをキャッシュして維持します。MongoDB API がサポートするあらゆるSELECT クエリを定義できます。下記のステートメントは、MongoDB のデータ のテーブルをキャッシュしてインクリメンタルに更新します。
REPLICATE restaurants;
特定のデータベースを更新するために使用するレプリケーションクエリを含むファイルを指定することができます。レプリケーションステートメントはセミコロンで区切ります。次のオプションは、複数のMongoDB アカウントを同じデータベースにレプリケートする場合に便利です。
REPLICATE SELECT ステートメントでは、異なるテーブルのプレフィックスを使用できます。
REPLICATE PROD_restaurants SELECT * FROM restaurants
異なるスキーマを使用することもできます。
REPLICATE PROD.restaurants SELECT * FROM restaurants
Sync の実行
接続文字列およびレプリケーションクエリの設定が完了したら、次のコマンドラインオプションを使ってSync を実行できます。
Windows
MongoDBSync.exe -g MyProductionMongoDBConfig.xml -f MyProductionMongoDBSync.sql
Java
java -Xbootclasspath/p:c:\sqlitejdbc.jar -jar MongoDBSync.jar -g MyProductionMongoDBConfig.xml -f MyProductionMongoDBSync.sql