23daccfccee2827fcd775793ad9651b58d1dc571
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 | + |
|
| 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 | + |