docker环境部署vastbase

概要:本文将提供vastbase数据库如何在docker中进行部署,以及vastvase数据库升级后,在docker中如何导出导入数据库的方法。

1、获取vastbase镜像包:

联系海量工程师,获取与cpu和操作系统想对应的镜像包。

2、docker下安装数据库:

2.1、创建vastbase组和用户:

groupadd -g 1000 vastbase
useradd  -u 1000 -g 1000 vastbase
passwd vastbase
image.png

2.2、创建数据目录并授权:

mkdir -p /home/vastbase/vastbase/lic
mkdir -p /home/vastbase/data
mkdir -p /home/vastbase/backup
mkdir -p /home/vastbase/backup_log
chown -R  vastbase. /home/vastbase/

2.3、授权license文件并放入指定目录:

chown vastbase. Vastbase_G100_license_20250731
mv Vastbase_G100_license_20250731  license
mv license /home/vastbase/vastbase/lic
image.png

2.4、将镜像包拷贝到运行环境下使用docker load命令加载镜像(镜像包可联系工程师获取)。

docker load -i 镜像包
image.png

image.png

2.5、创建容器,在创建容器时需要指定证书挂载路径、数据挂载路径、端口映射、初始用户密码。

说明:

1.容器中运行数据库的用户为vastbase且uid:gid为 1000:1000,为保证容器中有权限访问被挂载的目录,宿主机中需要将被挂载的目录和文件的属性uid:gid修改为 1000:1000。
2.license文件名称需设置为:"license"。
3.运行容器需增加参数VB_DBCOMPATIBILITY,指定数据库初始化兼容模式,如下所示:

命令格式如下:

docker run -d --privileged=true -v {license_path}:/home/vastbase/vastbase/lic -v {data_path}:/home/vastbase/data  -v {备份目录}:/home/vastbase/backup -v {备份执行日志}:/home/vastbase/backup_log  -e VB_PASSWORD=Vastbase@123 -e VB_USERNAME=postgres  -e VB_DBCOMPATIBILITY --name vastbase -p 25432:5432  {镜像名:TAG}

参数介绍:

参数名称 含义 说明
-v {data_path}:/home/vastbase/data {data_path} 为宿主机数据挂载目录,容器中的目录/home/vastbase/data不可修改。
-v {license_path} :/home/vastbase/vastbase/lic {license_path} 为宿主机证书挂载目录 ,目录中证书文件名必须为license,容器中的目录/home/vastbase/vastbase/lic不可修改。
-v {备份目录}:/home/vastbase/backup {备份目录} 为宿主机备份文件存放路径,容器中的目录/home/vastbase/backup不可修改。
-v {备份执行日志}:/home/vastbase/backup_log {备份执行日志} 为宿主机备份执行日志存放路径 ,容器中的目录/home/vastbase/backup_log不可修改。
-e VB_PASSWORD=Vastbase@123 初始用户密码,长度至少为8位,且必须包含大写字母、小写字母、数字、符号中的三种字符。其中Vastbase@123为示例密码,建议根据需求修改。
-p 25432:5432 端口映射(本机端口:容器端口),可根据需要自行修改本机端口25432,容器端口5432不可修改。 如果需要改端口可在这里修改
-e VB_DBCOMPATIBILITY 指定数据库初始化兼容模式,取值范围:A、B、C、PG、MSSQL。分别表示兼容Oracle、MySQL、Teradata、PostgreSQL、SQL Server。

2.6、查看镜像TAG名称。

docker images -a
image.png

2.7、启动镜像。

docker run -d --privileged=true -v /home/vastbase/vastbase/lic:/home/vastbase/vastbase/lic -v /home/vastbase/data:/home/vastbase/data  -v /home/vastbase/backup:/home/vastbase/backup -v /home/vastbase/backup_log:/home/vastbase/backup_log  -e VB_USERNAME=testuser  -e VB_PASSWORD=Hailiang@123 -e VB_DBCOMPATIBILITY=B  --name vastbase -p 25432:5432 edc01f495c77
image.png

2.8、如果想删除镜像,语法如下。

docker rm “CONTAINER ID”
image.png

2.9、查看日志,在日志中查看是否启动数据库成功。

docker logs “NAMES”
image.png

image.png

2.10、登录容器

docker exec -it 295584f6b13b(CONTAINER ID或者NAMES) bash
image.png

2.11、修改数据库参数:

1、主要内存参数调整:

vi $PGDATA/postgresql.conf
license_path='/home/vastbase/license
max_connections=500
max_process_memory=24GB
shared_buffers=12GB
work_mem=4MB

2、常规参数调整,和服务器内存大小无关:

vi $PGDATA/postgresql.conf
password_force_alter = off
cstore_buffers = 16MB

3、mysql兼容性需注意:如果需要调整表名和列名字段是否区分大小写,需要调整以下参数。

lower_case_column_names为0代表列字段区分大小写即支持字段驼峰名称,如为1代表不区分大小写即统一按照小写处理。
lower_case_table_names为0代表表名区分大小写即支持表名驼峰名>称,如为1代表不区分大小写即统一按照小写表名处理。

lower_case_column_names = 0
lower_case_table_names = 1

2.12、重启数据库:

1、重启数据库后容器退出:

vb_ctl restart
image.png

2、删除原来失效的容器:

docker rm 295584f6b13b
image.png

3、重新拉起容器:

docker run -d --privileged=true -v /home/vastbase/vastbase/lic:/home/vastbase/vastbase/lic -v /home/vastbase/data:/home/vastbase/data  -v /home/vastbase/backup:/home/vastbase/backup -v /home/vastbase/backup_log:/home/vastbase/backup_log  -e VB_USERNAME=testuser  -e VB_PASSWORD=Hailiang@123 -e VB_DBCOMPATIBILITY=B  --name vastbase -p 25432:5432 edc01f495c77
docker ps -a
docker exec -it vastbase  bash
image.png

3、docker数据库升级:

3.1、先在容器中导出数据库(此时的数据库是旧版本数据库):

先进入容器,在vastbase用户内执行:
vb_dump -p 5432 testdb -Ft -f  /tmp/testdb.dmp

3.2、把导出的文件传到服务器的/tmp目录下

docker cp f8108bad5a18:/tmp/testdb.dmp  /tmp/
cd /tmp
chown -R vastbase:vastbase testdb.dmp

3.3、把导出的文件从服务器的/tmp目录下传到镜像的/tmp下:

docker cp /tmp/testdb.dmp d3a43a15b0a0:/tmp/

3.4、导入数据库(此时的数据库是升级后的库):

先进入容器,在vastbase用户内执行:
vb_restore  -p 5432 -d testdb -v /tmp/testdb.dmp
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容