CockroachDBは、スケーラブルで障害に強いように設計されたオープンソースプロジェクトです。 この製品には、RDBMSとNoSQLの最高の機能が組み合わされています。 簡単な方法で、単一のノードからCockroachDBの使用を開始し、システムの成長に合わせてノードを追加できます。 このデータベースをアプリケーションと統合する方法を尋ねたいと思います。 CockroachDBはPostgreSQLに基づいているため、任意のクライアントドライバーまたはサポートされているORMを使用できます。
この記事では、CockroachDBの3つのノードをセットアップする方法と、システムを監視する方法を紹介します。
この目的のために、512MBのRAMとそれぞれ1つのvCPUを備えた3つのCentOSシステムを使用します。
CockroachDBのインストールを開始する前に、システムにいくつかの変更を加える必要があります。
まず、ポート8080(Web UI用)と26257(通信ポート)が開いていることを確認します。
UFWを使用する場合:
$ sudo ufw allow 8080/tcp
$ sudo ufw allow 26257/tcp
Firewalldの場合:
# firewall-cmd --permanent --zone=public –-add-port=8080/tcp
# firewall-cmd --permanent --zone=public –-add-port=26257/tcp
# firewall-cmd –-reload
ノート: 本番環境で使用する場合は、NTPサーバーをセットアップし、スーパーユーザー権限を持つ非rootユーザーを使用する必要があります。
これで、インストールを開始できます。 すべてのホストについて、最新バージョンのCockroachDBをダウンロードし、バイナリを解凍して/ usr / local / binに移動する必要があります。
$ wget https://binaries.cockroachdb.com/cockroach-latest.linux-amd64.tgz?s=do
tar -xf cockroach-latest.linux-amd64.tgz?s=do --strip=1 cockroach-latest.linux-amd64/cockroach
# mv cockroach /usr/local/bin
コマンドはrootまたはスーパーユーザー(#)およびユーザー($)として実行されることに注意してください。 常にルートとして機能することは悪い形です。
これでバージョンを確認できます
$ cockroach version
次のようなものを取得します。
Build Tag: v1.0.4
Build Time: 2017/09/10 10:33:34
Distribution: CCL
Platform: linux amd64
Go Version: go1.8.3
C Compiler: gcc 6.3.0
Build SHA-1: 5b757262d33d814bda1deb2af20161a1f7749df3
Build Type: release
動作しているようで、クラスターを開始できます。 最初のノードで次を実行します。
$ cockroach start –-insecure –-background –-advertise-host=192.168.1.6
フラグについて少し:
- –insecureフラグはSSLなしでノードを実行します。 それ以外の場合は、有効な証明書を指すフラグ–certs-dirを使用する必要があります。
- –backgroundフラグは、バックグラウンドモードで実行し、コマンドラインを解放するために使用されます。
- –advertise-hostフラグは、ノードのIPアドレスまたはホスト名です。
次に、他のすべてのノードをこのホストに接続する必要があります。 ノード2で実行
$ cockroach start –-insecure –-background --advertise-host=192.168.1.80 --join=192.168.1.6:26257
そしてノード3で実行します:
$ cockroach start –-insecure –-background --advertise-host=192.168.1.147 --join=192.168.1.6:26257
ノート: –advertise-hostおよび–joinIPを変更したことを確認してください
ブラウザを開き、「http:// nodeURLorHOSTNAME:8080」に移動します。 私の場合は「https://192.168.1.6:8080」です
[概要]タブの[ノードリストの表示]をクリックします。 すべてのデータベースデータを共有するすべてのシステムが相互に接続されます。
それで全部です。 これで、クラスターを使用して、すべてのノードで複製されるデータを保持できます。 再接続後に何らかの理由でノードがオフラインになった場合、ノードはオフライン中に行われたすべての変更を取得します。
クラスタからノードを削除するには、次のコマンドを実行します。
$ cockroach quit
テストの目的で、sshを介して任意のノードに接続して実行できます
$ cockroach sql
これは、任意のSQLコマンドを実行できるSQLシェルです。 実行後、統計とグラフの変化が表示されます。 実行する前に、CockroachDBSQLダイアレクトについて読むことをお勧めします オフィシャルサイト。 さらにノードを追加するには、ノード2と3の手順を使用して、システムを水平方向に簡単に拡張できます。