cockroach官方文檔翻譯---1.安裝與啓動

1. 安裝與啓動


1.1 安裝

1.1.1  下載二進制文件
CockroachDB 在linux在線安裝:網址如下,版本v1.1.3
https://www.cockroachlabs.com/docs/stable/install-cockroachdb.html


1)在線下載二進制文件
[root@localhost cochroachDB]# wget -qO- https://binaries.cockroachdb.com/cockroach-v1.1.3.linux-amd64.tgz | tar  xvz
cockroach-v1.1.3.linux-amd64/cockroach
[root@localhost cochroachDB]# ls
cockroach-v1.1.3.linux-amd64
2)將二進制文件拷貝到你的目錄下,便於執行CockroachDB腳本
[root@localhost cochroachDB]# cp -i cockroach-v1.1.3.linux-amd64/cockroach /usr/local/bin


註釋:wget -q 以安靜模式輸出,默認以/後文件進行命名cockroach-v1.1.3.linux-amd64.tgz,
           tar  x 從備份文件中還原文件, v 顯示指令執行過程,z 通過gzip指令處理備份文件;

           cp -i 覆蓋既有文件之前先詢問用戶

1. 2 快速啓動

注意:默認情況下,每個CochroachDB向Cochroach實驗室以匿名形式報告的自己的使用細節,如何自願推出報告,請查閱https://www.cockroachlabs.com/docs/stable/diagnostics-reporting.html


相關官方文檔:https://www.cockroachlabs.com/docs/stable/start-a-local-cluster.html

1.2.1 不安全的部署
步驟1:啓動第一個節點
[root@localhost ~]# cockroach start --insecure --host=localhost
*
* WARNING: RUNNING IN INSECURE MODE!

* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.

* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/stable/secure-a-cluster.html
*
CockroachDB node starting at 2018-01-10 01:08:26.454099704 +0000 UTC (took 0.6s)
build:      CCL v1.1.3 @ 2017/11/27 13:59:10 (go1.8.3)
admin:      http://localhost:8080
sql:        postgresql://root@localhost:26257?application_name=cockroach&sslmode=disable
logs:       /root/cockroach-data/logs
store[0]:   path=/root/cockroach-data
status:     initialized new cluster
clusterID:  f4fe6b48-7f5d-4d10-aebd-5a1d75c24e72
nodeID:     1

注意:
1)--insercure 啓用非密碼認證
2)這是一個純粹的本地集羣,--host=localhost 告訴節點只監聽localhost,內部和客戶端默認的端口號26257,http請求通過8080端口發出
3)節點數據存儲在cockroach-data路徑
4)標準輸出提供了cockroach版本的幫助文檔,admin UI的URL,客戶端的SQL URL

步驟2:
單節點已經可以使用,連接sql客戶端,建立數據庫,但在實際的部署中,你需要3個或者以上節點去利用cockroach的自動複製,自動節點數據平衡和默認容忍優點,如下是在本地模擬配置一個實際的部署環境
打開一個新的客戶端
[root@localhost ~]# cockroach start --insecure --store=node2 --host=localhost --port=26258 --http-port=8081 --join=localhost:26257
*
* WARNING: RUNNING IN INSECURE MODE!

* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.

* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/stable/secure-a-cluster.html
*
CockroachDB node starting at 2018-01-10 01:13:40.664945281 +0000 UTC (took 0.2s)
build:      CCL v1.1.3 @ 2017/11/27 13:59:10 (go1.8.3)
admin:      http://localhost:8081
sql:        postgresql://root@localhost:26258?application_name=cockroach&sslmode=disable
logs:       /root/node2/logs
store[0]:   path=/root/node2
status:     initialized new node, joined pre-existing cluster
clusterID:  f4fe6b48-7f5d-4d10-aebd-5a1d75c24e72
nodeID:     2


打開一個新的終端:
[root@localhost ~]# cockroach start --insecure --store=node3 --host=localhost --port=26259 --http-port=8082 --join=localhost:26257
*
* WARNING: RUNNING IN INSECURE MODE!

* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.

* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/stable/secure-a-cluster.html
*
CockroachDB node starting at 2018-01-10 01:32:52.559260389 +0000 UTC (took 0.2s)
build:      CCL v1.1.3 @ 2017/11/27 13:59:10 (go1.8.3)
admin:      http://localhost:8082
sql:        postgresql://root@localhost:26259?application_name=cockroach&sslmode=disable
logs:       /root/node3/logs
store[0]:   path=/root/node3
status:     initialized new node, joined pre-existing cluster
clusterID:  f4fe6b48-7f5d-4d10-aebd-5a1d75c24e72
nodeID:     3


在部署中最重要的不同點是
--join 將新節點加入到集羣中,定義第一個節點的地址和端口號,例如localhost:26257
因爲在同一臺機器上運行所有節點,需要設置--store --port 和--http-port  標識位置和端口沒有被其他節點使用,但是在實際的部署環境中,每個節點在不同的機器上,默認配置可以滿足要求


 步驟3:
現在你部署了3個節點,你可以將任意節點作爲sql的入口,爲了證實這一點,打開一個新的終端,使用SQL客戶端連接節點1
注意:SQL客戶端已經部署在cockroach的二進制包裏,不需要額外操作
[forget@localhost cockroachDB]$ cockroach sql --insecure
# Welcome to the cockroach SQL interface.
# All statements must be terminated by a semicolon.
# To exit: CTRL + D.
#
# Server version: CockroachDB CCL v1.1.3 (linux amd64, built 2017/11/27 13:59:10, go1.8.3) (same version as client)
# Cluster ID: f4fe6b48-7f5d-4d10-aebd-5a1d75c24e72
#
# Enter \? for a brief introduction.
#
root@:26257/> create database bank;
CREATE DATABASE

Time: 46.596945ms

root@:26257/> create table bank.accounts(id int primary key,balance decimal);
CREATE TABLE

Time: 49.272314ms

root@:26257/> insert into bank.accounts values (1,1000.50) ;
INSERT 1

Time: 48.679601msroot@:26257/> select * from bank.accounts;
+----+---------+
| id | balance |
+----+---------+
|  1 | 1000.50 |
+----+---------+
(1 row)

Time: 4.778574ms


root@:26257/> \q

連接節點2,需要定義端口號不使用默認端口[forget@localhost cockroachDB]$ cockroach sql --insecure --port=26258
# Welcome to the cockroach SQL interface.
# All statements must be terminated by a semicolon.
# To exit: CTRL + D.
#
# Server version: CockroachDB CCL v1.1.3 (linux amd64, built 2017/11/27 13:59:10, go1.8.3) (same version as client)
# Cluster ID: f4fe6b48-7f5d-4d10-aebd-5a1d75c24e72
#
# Enter \? for a brief introduction.
#
注意在實際環境中,所有的節點可以使用默認端口26257,可以不需要—port選項root@:26258/> select * from bank.accounts;
+----+---------+
| id | balance |
+----+---------+
|  1 | 1000.50 |
+----+---------+
(1 row)

Time: 29.444091ms

你可以看到節點2和節點1作爲sql入口表現是相同的


步驟4 監控集羣


通過admin UI 在你的集羣中,在瀏覽器中打開http://localhost:8080,或者在admin 中制定任意啓動節點的標準輸出



cockroachDB在後臺自動複製你的數據,爲了政府複製成功,向下滾動查看Replicas per Node .




副本在每個節點是相同的,在集羣中複製3次


步驟5 停止cluster 
一旦你完成測試cluster,切換到第一個節點,按ctrl+c 停止該節點
此時其他2個節點仍然是在線的,集羣仍然是可以使用的,因爲多數副本是可達的。爲了證明集羣可以容忍失敗(其中一個節點down),通過SQL shell 連接節點2和節點3


[forget@localhost cockroachDB]$ cockroach sql --insecure --port=26258
# Welcome to the cockroach SQL interface.
# All statements must be terminated by a semicolon.
# To exit: CTRL + D.
#
# Server version: CockroachDB CCL v1.1.3 (linux amd64, built 2017/11/27 13:59:10, go1.8.3) (same version as client)
# Cluster ID: f4fe6b48-7f5d-4d10-aebd-5a1d75c24e72
#
# Enter \? for a brief introduction.
#
root@:26258/> select * from bank.accounts;
+----+---------+
| id | balance |
+----+---------+
|  1 | 1000.50 |
|  2 |  800.50 |
+----+---------+
(2 rows)


Time: 28.962136ms


停止節點2節點3,使用ctrl+c,輸出如下:
^CNote: a second interrupt will skip graceful shutdown and terminate forcefully
initiating graceful shutdown of server
server drained and shutdown completed
*
* ERROR: interrupted
*
Failed running "start"


注意:對於節點3,關閉時間較長(大約1分鐘),因爲只剩於3個節點中的一個節點,多數副本不可達,cluster不可用。爲了加速這個過程,需要按2次ctrl+c,輸出如下:
^CNote: a second interrupt will skip graceful shutdown and terminate forcefully
initiating graceful shutdown of server
^C*
* ERROR: received signal 'interrupt' during shutdown, initiating hard shutdown
*
Failed running "start"




步驟6:重啓cluster








如果你決定繼續使用集羣進行後續的測試,你需要重啓至少3個節點中的兩個,使用節點的數據存儲。
重新啓動節點1,數據路徑cockroach-data/
[root@localhost ~]# cockroach start --insecure --host=localhost
*
* WARNING: RUNNING IN INSECURE MODE!

* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.

* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/stable/secure-a-cluster.html
*






只有一個節點在線,集羣是不可用的,你不會看到任何迴應,執行了以上命令之後,知道你重啓第二個節點


在一個新的終端,重啓第二個節點,使用父路徑節點node2/


[root@localhost ~]# cockroach start --insecure --store=node2 --host=localhost --port=26258 --http-port=8081 --join=localhost:26257
*
* WARNING: RUNNING IN INSECURE MODE!

* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.

* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/stable/secure-a-cluster.html
*
CockroachDB node starting at 2018-01-10 06:44:52.586972516 +0000 UTC (took 17.8s)
build:      CCL v1.1.3 @ 2017/11/27 13:59:10 (go1.8.3)
admin:      http://localhost:8081
sql:        postgresql://root@localhost:26258?application_name=cockroach&sslmode=disable
logs:       /root/node2/logs
store[0]:   path=/root/node2
status:     restarted pre-existing node
clusterID:  f4fe6b48-7f5d-4d10-aebd-5a1d75c24e72
nodeID:     2


打開一個新的終端,啓動節點3,使用父路徑node3/[root@localhost ~]# cockroach start --insecure --store=node3 --host=localhost --port=26259 --http-port=8082 --join=localhost:26257
*
* WARNING: RUNNING IN INSECURE MODE!

* - Your cluster is open for any client that can access localhost.
* - Any user, even root, can log in without providing a password.
* - Any user, connecting as root, can read or write any data in your cluster.
* - There is no network encryption nor authentication, and thus no confidentiality.

* Check out how to secure your cluster: https://www.cockroachlabs.com/docs/stable/secure-a-cluster.html
*
CockroachDB node starting at 2018-01-10 06:45:21.365022797 +0000 UTC (took 12.6s)
build:      CCL v1.1.3 @ 2017/11/27 13:59:10 (go1.8.3)
admin:      http://localhost:8082
sql:        postgresql://root@localhost:26259?application_name=cockroach&sslmode=disable
logs:       /root/node3/logs
store[0]:   path=/root/node3
status:     restarted pre-existing node
clusterID:  f4fe6b48-7f5d-4d10-aebd-5a1d75c24e72
nodeID:     3


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章