cockroachDB部署使用

容器部署

容器部署

拉取鏡像

docker pull cockroachdb/cockroach:v2.0.1

創建網絡

docker network create -d bridge roachnet

查看網絡(不清楚爲什麼沒有docker0,或者docker0和eb330591e579的關係)

# docker network ls 

NETWORK ID          NAME                DRIVER              SCOPE
eb330591e579        bridge              bridge              local               
95d2d6473765        host                host                local               
8edade4ef56f        none                null                local               
7e50fa75c534        roachnet            bridge              local 

運行容器

docker run -d --name=roach1 --hostname=roach1 --net=roachnet -p 26257:26257 -p 8080:8080 -v "${PWD}/cockroach-data/roach1:/cockroach/cockroach-data" cockroachdb/cockroach:v2.0.1 start --insecure

docker run -d --name=roach2 --hostname=roach2 --net=roachnet -v "${PWD}/cockroach-data/roach2:/cockroach/cockroach-data" cockroachdb/cockroach:v2.0.1 start --insecure --join=roach1

docker run -d --name=roach3 --hostname=roach3 --net=roachnet -v "${PWD}/cockroach-data/roach3:/cockroach/cockroach-data" cockroachdb/cockroach:v2.0.1 start --insecure --join=roach1

驗證集羣 bug 了

[root@log-test cockroach-data]# docker exec -it roach1 ./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 v2.0.1 (x86_64-unknown-linux-gnu, built 2018/04/23 18:39:21, go1.10) (same version as client)
# Cluster ID: 0721d2db-a3a1-4a87-96f2-7b35ee4a4b86
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1b0abb7]

runtime stack:
runtime.throw(0x2485b32, 0x2a)
    /usr/local/go/src/runtime/panic.go:619 +0x81
runtime.sigpanic()
    /usr/local/go/src/runtime/signal_unix.go:372 +0x28e

goroutine 1 [syscall]:
non-Go function
    pc=0x1b0abb7
non-Go function
    pc=0x1b0ad81
non-Go function
    pc=0x1b0a344
non-Go function
    pc=0x72e5af
runtime.cgocall(0x1b0a300, 0xc420657820, 0x2480f4f)
    /usr/local/go/src/runtime/cgocall.go:128 +0x64 fp=0xc4206577d8 sp=0xc4206577a0 pc=0x6d60c4
github.com/cockroachdb/cockroach/vendor/github.com/knz/go-libedit/unix._C2func_go_libedit_init(0x0, 0x7f5986e59210, 0xc4200ba438, 0x7f5986e54000, 0x7f5986e54280, 0x7f5986e54500, 0x0, 0x0, 0x0, 0x0)
    _cgo_gotypes.go:200 +0x5c fp=0xc420657820 sp=0xc4206577d8 pc=0x1aa10ac
github.com/cockroachdb/cockroach/vendor/github.com/knz/go-libedit/unix.InitFiles.func3(0x0, 0x7f5986e59210, 0xc4200ba438, 0x7f5986e54000, 0x7f5986e54280, 0x7f5986e54500, 0x0, 0xc420657930, 0x16b03db, 0x274de80)
    /go/src/github.com/cockroachdb/cockroach/vendor/github.com/knz/go-libedit/unix/editline_unix.go:93 +0x19e fp=0xc420657880 sp=0xc420657820 pc=0x1aa425e
github.com/cockroachdb/cockroach/vendor/github.com/knz/go-libedit/unix.InitFiles(0x243bd49, 0x9, 0x1, 0xc4200ba000, 0xc4200ba008, 0xc4200ba048, 0x0, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/vendor/github.com/knz/go-libedit/unix/editline_unix.go:93 +0x482 fp=0xc4206579c8 sp=0xc420657880 pc=0x1aa2462
github.com/cockroachdb/cockroach/vendor/github.com/knz/go-libedit.InitFiles(0x243bd49, 0x9, 0x6ff101, 0xc4200ba000, 0xc4200ba008, 0xc4200ba048, 0xc420000180, 0x2568c10, 0xc42003ca80)
    /go/src/github.com/cockroachdb/cockroach/vendor/github.com/knz/go-libedit/editline_unix.go:15 +0x63 fp=0xc420657a20 sp=0xc4206579c8 pc=0x1aa5dd3
github.com/cockroachdb/cockroach/pkg/cli.runInteractive(0xc420471900, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/pkg/cli/sql.go:1062 +0x41a fp=0xc420657bf8 sp=0xc420657a20 pc=0x1aceb3a
github.com/cockroachdb/cockroach/pkg/cli.runTerm(0x3658dc0, 0xc420044400, 0x0, 0x1, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/pkg/cli/sql.go:1179 +0x159 fp=0xc420657c50 sp=0xc420657bf8 pc=0x1acf349
github.com/cockroachdb/cockroach/pkg/cli.MaybeDecorateGRPCError.func1(0x3658dc0, 0xc420044400, 0x0, 0x1, 0x0, 0x0)
    /go/src/github.com/cockroachdb/cockroach/pkg/cli/error.go:39 +0x5a fp=0xc420657cc8 sp=0xc420657c50 pc=0x1ae4c9a
github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra.(*Command).execute(0x3658dc0, 0xc420044390, 0x1, 0x1, 0x3658dc0, 0xc420044390)
    /go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:698 +0x46d fp=0xc420657d70 sp=0xc420657cc8 pc=0x1a727cd
github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x3655460, 0x6, 0x0, 0xc420657ee8)
    /go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:783 +0x2e4 fp=0xc420657ea0 sp=0xc420657d70 pc=0x1a72f44
github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra.(*Command).Execute(0x3655460, 0x18, 0xc420657f00)
    /go/src/github.com/cockroachdb/cockroach/vendor/github.com/spf13/cobra/command.go:736 +0x2b fp=0xc420657ed0 sp=0xc420657ea0 pc=0x1a72c3b
github.com/cockroachdb/cockroach/pkg/cli.Run(0xc4200a4160, 0x2, 0x2, 0xc4200b6010, 0xc420558000)
    /go/src/github.com/cockroachdb/cockroach/pkg/cli/cli.go:156 +0x6d fp=0xc420657ef8 sp=0xc420657ed0 pc=0x1aad83d
github.com/cockroachdb/cockroach/pkg/cli.Main()
    /go/src/github.com/cockroachdb/cockroach/pkg/cli/cli.go:51 +0x15d fp=0xc420657f78 sp=0xc420657ef8 pc=0x1aad3cd
main.main()
    /go/src/github.com/cockroachdb/cockroach/main.go:27 +0x20 fp=0xc420657f88 sp=0xc420657f78 pc=0x1b00f20
runtime.main()
    /usr/local/go/src/runtime/proc.go:198 +0x212 fp=0xc420657fe0 sp=0xc420657f88 pc=0x701562
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 fp=0xc420657fe8 sp=0xc420657fe0 pc=0x72f8e1

goroutine 20 [syscall]:
os/signal.signal_recv(0x0)
    /usr/local/go/src/runtime/sigqueue.go:139 +0xa6
os/signal.loop()
    /usr/local/go/src/os/signal/signal_unix.go:22 +0x22
created by os/signal.init.0
    /usr/local/go/src/os/signal/signal_unix.go:28 +0x41

goroutine 5 [chan receive]:
github.com/cockroachdb/cockroach/pkg/util/log.flushDaemon()
    /go/src/github.com/cockroachdb/cockroach/pkg/util/log/clog.go:1131 +0xf1
created by github.com/cockroachdb/cockroach/pkg/util/log.init.0
    /go/src/github.com/cockroachdb/cockroach/pkg/util/log/clog.go:592 +0x110

goroutine 6 [chan receive]:
github.com/cockroachdb/cockroach/pkg/util/log.signalFlusher()
    /go/src/github.com/cockroachdb/cockroach/pkg/util/log/clog.go:601 +0x105
created by github.com/cockroachdb/cockroach/pkg/util/log.init.0
    /go/src/github.com/cockroachdb/cockroach/pkg/util/log/clog.go:593 +0x128

goroutine 22 [select, locked to thread]:
runtime.gopark(0x2569e48, 0x0, 0x2436d0b, 0x6, 0x18, 0x1)
    /usr/local/go/src/runtime/proc.go:291 +0x11a
runtime.selectgo(0xc420476f50, 0xc4204884e0)
    /usr/local/go/src/runtime/select.go:392 +0xe50
runtime.ensureSigM.func1()
    /usr/local/go/src/runtime/signal_unix.go:549 +0x1f4
runtime.goexit()
    /usr/local/go/src/runtime/asm_amd64.s:2361 +0x1

二進制文件部署

部署

  • 下載
wget -qO- https://binaries.cockroachdb.... | tar xvz
  • 拷貝
cp -i cockroach-v2.0.1.linux-amd64/cockroach /usr/local/bin
  • 授權
chmod a+x /usr/local/bin/cockroach
  • 部署
# cockroach start --insecure --host=0.0.0.0 --http-host=0.0.0.0 --http-port=8081  --port=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/v2.0/secure-a-cluster.html
*
CockroachDB node starting at 2018-04-28 08:22:34.397265926 +0000 UTC (took 0.7s)
build:               CCL v2.0.1 @ 2018/04/23 18:39:21 (go1.10)
admin:               http://0.0.0.0:8081
sql:                 postgresql://root@localhost:26257?sslmode=disable
logs:                /home/msxu/cockroach-v2.0.1.linux-amd64/cockroach-data/logs
temp dir:            /home/msxu/cockroach-v2.0.1.linux-amd64/cockroach-data/cockroach-temp258550286
external I/O path:   /home/msxu/cockroach-v2.0.1.linux-amd64/cockroach-data/extern
store[0]:            path=/home/msxu/cockroach-v2.0.1.linux-amd64/cockroach-data
status:              restarted pre-existing node
clusterID:           0fe058a5-9f6b-47c0-a061-3c043d7d7100
nodeID:              1

helm 部署

git clone https://github.com/helm/chart...

https://github.com/kubernetes...

helm install --name ckdb01 http://172.16.59.153:10806/charts/cockroachdb-1.1.0.tgz --set Image=172.16.59.153/devops/cockroach --set StorageClass=csi-lvm
NOTES:
CockroachDB can be accessed via port 26257 (or whatever you set the GrpcPort
value to) at the following DNS name from within your cluster:
ckdb02-public.default.svc.cluster.local

Because CockroachDB supports the PostgreSQL wire protocol, you can connect to
the cluster using any available PostgreSQL client.
For example, you can open up a SQL shell to the cluster by running:

    kubectl run -it --rm cockroach-client \
        --image=cockroachdb/cockroach \
        --restart=Never \
        --command -- ./cockroach sql --insecure --host ckdb02-cockroachdb-public.default

From there, you can interact with the SQL shell as you would any other SQL shell,
confident that any data you write will be safe and available even if parts of
your cluster fail.



Finally, to open up the CockroachDB admin UI, you can port-forward from your
local machine into one of the instances in the cluster:

    kubectl port-forward ckdb02-cockroachdb-0 8080
Then you can access the admin UI at http://localhost:8080/ in your web browser.

For more information on using CockroachDB, please see the project's docs at
https://www.cockroachlabs.com/docs/
kubectl run -it --rm cockroach-client \
    --image=172.16.59.153/devops/cockroach \
    --restart=Never \
    --command -- ./cockroach sql --insecure --host ckdb02-cockroachdb-public.default

kubectl run -it --rm cockroach-client \

    --image=172.16.59.153/devops/cockroach:v2.0.0 \
    --restart=Never \
    --command -- ./cockroach sql --insecure --host ckdb02-cockroachdb-public.default

cockroachDB 操作

進入

cockroach sql --insecure

顯示所有庫

show databases;

選擇庫:

use 庫名;

顯示數據庫下的所有表:

show tables;

查看錶基本結構語句DESCRIBE

DESCRIBE 表名

SHOW CREATE TABLE 表名

實際中我一般使用DESC 表名來查看錶的結構,我們可以查出各字段的字段名,數據類型,完整性約束條件。這種查詢是用表格來顯示錶結構的,所以看起來比較漂亮,但是查出來的內容不是太多;

使用SHOW CREATE TABLE 表名來查看錶的結構,除了查出上面的信息之外,還可以查出表的存儲引擎(ENGINE),自增的當前值,字符編碼等信息。可以用G來結尾,使得結果容易閱讀

DELETE 語句用於刪除表中的行。

DELETE FROM table_name
WHERE some_column=some_value;

delete from tmptables where 1=1

lamp    請注意 SQL DELETE 語句中的 WHERE 子句!
WHERE 子句規定哪條記錄或者哪些記錄需要刪除。如果您省略了 WHERE 子句,所有的記錄都將被刪除!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章