Vastbase-G100 -Setup.md
... ...
@@ -0,0 +1,377 @@
1
+# Vastbase G100 Docker 离线部署
2
+
3
+**日期**:2025-09-23
4
+
5
+---
6
+
7
+## 1 前置准备
8
+
9
+参考文档:https://docs.vastdata.com.cn/zh_CN/VastbaseG100/V3.0.8/1/be9d6c2eac154b92a0efaef9e8c6d88a
10
+
11
+| 资源 | 要求 |
12
+| ------ | ------------------------------------------------------------ |
13
+| OS | CentOS 7.6+/openEuler 20.03 或其他支持 Docker 19.03+ 的 x86_64 系统 |
14
+| 安装包 | `vastbase-g100-single-v1.4-3.0.8.26989-linux-x86_64-20250815104055.tar` |
15
+| 端口 | 宿主机 25432(映射容器 5432) |
16
+| 用户 | 具有 `sudo` 权限的普通用户即可 |
17
+
18
+---
19
+
20
+## 2 目录与权限
21
+
22
+```bash
23
+sudo mkdir -p /usr/sie/vastbase/{data,license,backup,backup_log}
24
+sudo chown -R 1000:1000 /usr/sie/vastbase # 容器内 UID 1000
25
+```
26
+
27
+---
28
+
29
+## 3 导入镜像(离线)
30
+
31
+```bash
32
+sudo docker load -i vastbase-g100-single-v1.4-3.0.8.26989-linux-x86_64-20250815104055.tar
33
+# 输出:Loaded image: vastbase-g100-single-v1.4-3.0.8.26989-linux-x86_64:20250815104055
34
+
35
+# 打短标签
36
+docker tag vastbase-g100-single-v1.4-3.0.8.26989-linux-x86_64:20250815104055 vastbase:g100
37
+```
38
+
39
+---
40
+
41
+## 4 创建并启动容器
42
+
43
+```bash
44
+docker run -d --privileged=true \
45
+ -v /usr/sie/vastbase/license:/home/vastbase/vastbase/lic \
46
+ -v /usr/sie/vastbase/data:/home/vastbase/data \
47
+ -v /usr/sie/vastbase/backup:/home/vastbase/backup \
48
+ -v /usr/sie/vastbase/backup_log:/home/vastbase/backup_log \
49
+ -e VB_PASSWORD=****** \
50
+ -e VB_USERNAME=postgres \
51
+ -e VB_DBCOMPATIBILITY=A \
52
+ --name vastbase \
53
+ -p 25432:5432 \
54
+ vastbase:g100
55
+
56
+
57
+
58
+--创建容器脚本
59
+docker run -d --privileged=true -v /usr/sie/vastbase/license:/home/vastbase/vastbase/lic -v /usr/sie/vastbase/data:/home/vastbase/data -v /usr/sie/vastbase/backup:/home/vastbase/backup -v /usr/sie/vastbase/backup_log:/home/vastbase/backup_log -e VB_PASSWORD=****** -e VB_USERNAME=postgres -e VB_DBCOMPATIBILITY --name vastbase -p 25432:5432 vastbase:g100
60
+
61
+--检查启动日志
62
+docker logs -f --tail 100 vastbase
63
+
64
+--进入容器
65
+docker exec -it vastbase bash
66
+
67
+```
68
+
69
+| 环境变量 | 说明 |
70
+| -------------------- | ------------------------------------------------------------ |
71
+| `VB_PASSWORD` | 超级用户密码(必须 ≥8 位且含大小写+数字+特殊字符) |
72
+| `VB_USERNAME` | 超级用户名,默认 `vastbase`;此处设为 `postgres` |
73
+| `VB_DBCOMPATIBILITY` | 实例级兼容模式:<br>`A`=Oracle(默认)<br>`B`=MySQL<br>`PG`=PostgreSQL<br>`MSSQL`=SQL Server |
74
+
75
+---
76
+
77
+## 5 创建MySQL兼容模式并启动容器
78
+
79
+```bash
80
+sudo mkdir -p /usr/sie/vastbase_b/{data,license,backup,backup_log}
81
+
82
+docker run -d --privileged=true \
83
+ -v /usr/sie/vastbase_b/license:/home/vastbase/vastbase/lic \
84
+ -v /usr/sie/vastbase_b/data:/home/vastbase/data \
85
+ -v /usr/sie/vastbase_b/backup:/home/vastbase/backup \
86
+ -v /usr/sie/vastbase_b/backup_log:/home/vastbase/backup_log \
87
+ -e VB_PASSWORD=****** \
88
+ -e VB_USERNAME=postgres \
89
+ -e VB_DBCOMPATIBILITY=B \
90
+ --name vastbase_b \
91
+ -p 25434:5432 \
92
+ vastbase:g100
93
+
94
+
95
+--检查启动日志
96
+docker logs -f --tail 100 vastbase_b
97
+
98
+--进入容器
99
+docker exec -it vastbase_b bash
100
+
101
+--验证是否安装成功
102
+vsql -d postgres -c 'SELECT version();'
103
+
104
+出现以下的日志说明安装成功
105
+[vastbase@b754f1b687e8 ~]$ vsql -d postgres -c 'SELECT version();'
106
+------------------------------------------------------------------------------
107
+ PostgreSQL 9.2.4 on x86_64-pc-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
108
+(1 row)
109
+
110
+--创建数据库,用户,角色并授权
111
+第一次连接数据库时可以连接到此数据库。 执行如下命令连接数据库。
112
+
113
+vsql -d vastbase -p 5432
114
+
115
+
116
+
117
+
118
+```
119
+
120
+
121
+
122
+## 6 检查启动结果
123
+
124
+```bash
125
+# 实时日志
126
+docker logs -f --tail 100 vastbase
127
+```
128
+
129
+看到 `database system is ready to accept connections` 即启动成功。
130
+
131
+---
132
+
133
+## 7 连接测试
134
+
135
+### 6.1 容器内本地
136
+
137
+```bash
138
+docker exec -it vastbase su - postgres -c "vsql -d postgres -c 'SELECT version();'"
139
+```
140
+
141
+返回类似:
142
+
143
+```
144
+PostgreSQL 9.2.24 (Vastbase G100 3.0.8) on x86_64-pc-linux-gnu...
145
+```
146
+
147
+### 6.2 远程连接
148
+
149
+任意 PostgreSQL 客户端:
150
+
151
+```
152
+Host: <宿主机IP>
153
+Port: 25432
154
+User: postgres
155
+Password: ******
156
+Database: postgres
157
+```
158
+
159
+测试 SQL:
160
+
161
+```sql
162
+CREATE DATABASE demo;
163
+\c demo
164
+CREATE TABLE t(id serial primary key, name varchar(20));
165
+INSERT INTO t(name) VALUES ('Vastbase');
166
+SELECT * FROM t;
167
+```
168
+
169
+---
170
+
171
+## 7 常用运维
172
+
173
+| 操作 | 命令 |
174
+| ------------ | ------------------------------------------------------------ |
175
+| 启停数据库 | `docker stop vastbase` / `docker start vastbase` |
176
+| 查看日志 | `docker logs vastbase` 或 `docker exec -it vastbase su - postgres -c "tail -f \$PGDATA/pg_log/postgresql-*.log"` |
177
+| 全库逻辑备份 | `docker exec -it vastbase su - postgres -c "vb_dumpall -f /home/vastbase/backup/full_\$(date +%F).sql"` |
178
+| 全库恢复 | `docker exec -i vastbase su - postgres -c "vsql -f /home/vastbase/backup/full_xxxx.sql"` |
179
+| 卸载 | `docker stop vastbase && docker rm vastbase && sudo rm -rf /usr/sie/vastbase` |
180
+
181
+---
182
+
183
+## 8 故障速查
184
+
185
+| 现象 | 原因 | 处理 |
186
+| ------------------------------------ | ----------------------------------------------- | --------------------------------------- |
187
+| `license file not found` | 宿主机 `/usr/sie/vastbase/license/license` 缺失 | 将授权文件重命名为 `license` 放入该目录 |
188
+| `mkdir ... probackup: No such file` | 父目录未建 | 已在本手册第 2 步统一 `mkdir -p` |
189
+| `Failed to parse cgroup config file` | 未提供 cgroup 模板 | 非致命,可忽略;想消除见「附录 A」 |
190
+
191
+---
192
+
193
+## 附录 A 消除 cgroup 警告(可选)
194
+
195
+```bash
196
+sudo mkdir -p /usr/sie/vastbase/cgroup
197
+sudo tee /usr/sie/vastbase/cgroup/gscgroup_vastbase.cfg >/dev/null <<'EOF'
198
+group vastbase {
199
+}
200
+EOF
201
+sudo chown 1000:1000 /usr/sie/vastbase/cgroup
202
+```
203
+
204
+重新创建容器时增加挂载:
205
+`-v /usr/sie/vastbase/cgroup:/home/vastbase/vastbase/etc`
206
+
207
+
208
+
209
+## 9 使用管理员账户创建数据库、创建表及向表中插入数据和查询表中数据等操作
210
+
211
+参考文档:https://docs.vastdata.com.cn/zh_CN/VastbaseG100/V3.0.8/1/fd2491b87d4644f1b320dcb906f4c255
212
+
213
+### 9.1. 连接默认库
214
+
215
+第一次连接数据库时可以连接到此数据库。 执行如下命令连接数据库。
216
+
217
+```bash
218
+# 以超级用户 vbase 身份登录(初始库也叫 vastbase)
219
+vsql -d vastbase -p 5432 -U vbase -W
220
+```
221
+
222
+---
223
+
224
+### 9.2 创建业务用户
225
+
226
+```sql
227
+-- 2.1 创建用户(口令需满足复杂度)
228
+CREATE USER snest_changwen PASSWORD '******';
229
+
230
+-- 2.2 授予系统管理员权限(体验用,生产请按最小权限)
231
+GRANT ALL PRIVILEGES TO snest_changwen;
232
+
233
+CREATE USER snest_jichen WITH PASSWORD "******";
234
+GRANT ALL PRIVILEGES TO snest_jichen;
235
+```
236
+
237
+---
238
+
239
+### 9.3. 创建业务数据库
240
+
241
+```sql
242
+CREATE DATABASE snest_tpcc OWNER snest_changwen;
243
+
244
+CREATE DATABASE snest_jichen OWNER snest_jichen;
245
+```
246
+
247
+---
248
+
249
+### 9.4. 退出当前会话
250
+
251
+```sql
252
+\q -- 或 Ctrl+D
253
+```
254
+
255
+---
256
+
257
+### 9.5. 使用新用户连接新库
258
+
259
+```bash
260
+vsql -d snest_tpcc -p 5432 -U snest_changwen -W
261
+
262
+vsql -d snest_jichen -p 5432 -U snest_jichen
263
+```
264
+
265
+> 提示密码时输入 `******`
266
+
267
+---
268
+
269
+### 9.6. 创建 Schema(同名 schema 免搜索路径设置)
270
+
271
+```sql
272
+CREATE SCHEMA snest_changwen AUTHORIZATION snest_changwen;
273
+
274
+CREATE SCHEMA snest_jichen AUTHORIZATION snest_changwen;
275
+
276
+SET search_path TO snest_changwen; -- 当前会话生效
277
+```
278
+
279
+---
280
+
281
+### 9.7. 建表 & 插入 & 查询
282
+
283
+```sql
284
+-- 7.1 建表
285
+CREATE TABLE mytable (
286
+ firstcol INT PRIMARY KEY
287
+);
288
+
289
+-- 7.2 写数据
290
+INSERT INTO mytable VALUES (100);
291
+
292
+-- 7.3 读数据
293
+SELECT * FROM mytable;
294
+```
295
+
296
+预期结果:
297
+
298
+```
299
+ firstcol
300
+----------
301
+ 100
302
+(1 row)
303
+
304
+```
305
+
306
+
307
+
308
+## 10. 使用Dbeaver工具连接vastbase
309
+
310
+主机:ip
311
+
312
+端口:25432
313
+
314
+数据库:snest_jichen
315
+
316
+用户名:snest_jichen
317
+
318
+密码:******
319
+
320
+数据库类型选择 PostgreSQL ,工具的话直接使用PG的类型就好,但是代码开发的时候,使用cn.com.vastbase.Driver驱动
321
+
322
+
323
+
324
+![Vastbase_G100_dbeaver](./images/Vastbase_G100_dbeaver-1760161274871-4.png)
325
+
326
+
327
+
328
+### 10.1 默认兼容模型
329
+
330
+```
331
+vastbase数据库访问
332
+
333
+########DBCP##########
334
+driverClassName=cn.com.vastbase.Driver
335
+url=jdbc:vastbase://ip:25432/snest_jichen?currentSchema=snest_changwen
336
+username=snest_jichen
337
+password=******
338
+
339
+
340
+########集成环境DBCP##########
341
+driverClassName=cn.com.vastbase.Driver
342
+url=jdbc:vastbase://ip:25432/snest_jichen?currentSchema=snest_jc
343
+username=snest_jichen
344
+password=******
345
+
346
+
347
+
348
+########snest_ziyangDBCP##########
349
+driverClassName=org.postgresql.Driver/cn.com.vastbase.Driver
350
+url=jdbc:vastbase://ip:25432/snest_jichen?currentSchema=snest_ziyang
351
+username=snest_jichen
352
+password=******
353
+```
354
+
355
+### 10.2 MySQL兼容模型
356
+
357
+```
358
+vastbase数据库访问
359
+数据库:snest_tpcc 端口:25434 用户名:snest_changwen
360
+
361
+########DBCP##########
362
+driverClassName=cn.com.vastbase.Driver
363
+url=jdbc:vastbase://ip:25434/snest_tpcc?currentSchema=snest_changwen&db_compatibility=mysql
364
+username=snest_changwen
365
+password=******
366
+dbCompatibility=mysql
367
+
368
+
369
+########DBCP##########
370
+driverClassName=cn.com.vastbase.Driver
371
+url=jdbc:vastbase://ip:25434/snest_tpcc?currentSchema=snest_jichen&db_compatibility=mysql
372
+username=snest_changwen
373
+password=******
374
+dbCompatibility=mysql
375
+
376
+```
377
+