Sign inSign up

javaanddonet/opengauss-client

By javaanddonet

Updated about 2 years ago

openGauss DB client container

Image
Integration & delivery
Developer tools
Databases & storage
0

228

javaanddonet/opengauss-client repository overview

说明
  • 该容器是openGauss数据库的客户端镜像,方便可以访问openGauss数据库,执行gsql等相关命令
  • 基于CentOS7.6版本和openGauss5.0版本来构建镜像
  • 不使用Ubuntu,因为openGauss官网上面没有对应的编译好的安装包供我们下载,只提供了CentOS7.6版本的安装包,还不是从openGauss官网下载的,还是从华为云官网下载的,for GaussDB的客户端。
  • 镜像中包含备份的脚步,可以使用该备份脚本,也可以不使用。
TO DO

编译openGauss的源码,基于Ubuntu系统进行编译,然后构建镜像文件。

关于参数

运行容器的时候,请传入如下参数:

  • OPENGAUSS_HOST_NAME:必选参数,待备份的数据库的主机名称或IP地址,传入的时候,用双引号包裹起来。
  • OPENGAUSS_BACKUP_USER_NAME:必选参数,执行备份操作的数据库用户名称,最好是postgres用户,传入的时候,用双引号包裹起来。
  • OPENGAUSS_BACKUP_USER_PASSWORD:必选参数,执行备份操作的数据库用户的密码,传入的时候,用双引号包裹起来。
  • OPENGAUSS_PORT:可选参数,待备份的数据库的端口号,如果不传入,默认使用5432
  • BACKUP_DB_LIST:可选参数,待备份的数据库列表有哪些,多个数据库用空格分隔,双引号包裹。如不传入则会备份所有的数据库,除了系统自带的postgres、template0、template1等数据库。
  • PROJECT_NAME:可选参数,项目名称,该参数的值会用在邮件的标题中,表明是哪个项目的数据库备份通知邮件,传入的时候,用双引号包裹起来。如果没有传入,则使用OPENGAUSS Database Backup Task作为默认值。
  • EMAIL_RECEIVER_ADDRESS:可选参数,邮件地址,用于接受备份数据库完成后的通知邮件,传入的时候,用双引号包裹起来。不传入,则不发送邮件。
  • SEPARATE_DB_AND_SCHEMA:可选参数,是否分库分模式备份,是请传入Y,否则可以不传入该参数,默认是不分库分模式备份。推荐使用这个参数,而不是SEPARATE_DB_AND_SCHEMA_AND_TABLE参数。因为在还原的时候,支持从一个完整的数据库备份文件中,只还原某一个数据库表,所以就没有必要在备份的时候,就分表备份了,并且在分表备份的时候,表所使用的序列不会一起随着表的备份而备份出来,这样将导致表所使用的序列没有备份到,再还原某一个表的时候,这个序列就不会不能被还原了,所以不建议分表备份。
  • SEPARATE_DB_AND_SCHEMA_AND_TABLE:可选参数,是否分库分表备份,是请传入Y,否则可以不传入该参数,默认是不分库发表备份。建议不要使用该参数,因为该参数备份的文件中,将不会包含某一个表所依赖的序列,序列的创建语句不会包含在单独某一个表的备份文件中。
  • BACKUP_FILE_RETENTION_PERIOD:可选参数,备份文件保留的时间周期,不传入则默认保留100天以内的备份文件。
  • BACKUP_SCHEDULE: 可选参数,备份脚本执行的周期,和Linuxcrontab定义的方式一样,如:每天凌晨1点执行,请传入:"0 1 * * *"。默认每天凌晨1点。
  • DRY_RUN:可选参数,是否验证备份任务,传入该参数只会走一遍备份流程,但是不会真正的执行备份操作。不传入该参数则会执行真正的备份操作。
关于挂载目录

挂载目录请选择:/xxx/xxx:/backupbackup是容器内部的挂载目录,用于存放生成的备份文件。 请根据自己的需求,自行更改xxx/xxx目录。

关于容器中的目录

在改容器运行起来之后,你可能需要关注的目录有如下几个:

  • /backup:用于存放备份文件的目录,该目录一般需要挂载出来,以便对生成的数据库备份文件做数据的持久化。
  • /root/opengauss_backup.sh:openGauss数据库备份脚本文件。
  • /docker-entrypoint.sh:容器运行的时候,使用的entrypoint脚本文件。
如何运行该容器

运行该容器的命令如下,这里需要注意两点,需要传入以下两个参数,因为要容器内部要使用systemctl命令

  1. --privileged
  2. -v /sys/fs/cgroup:/sys/fs/cgroup:ro
docker run -itd \
-e OPENGAUSS_HOST_NAME="100.200.11.44" \
-e OPENGAUSS_BACKUP_USER_NAME="xxxx" \
-e OPENGAUSS_BACKUP_USER_PASSWORD="xxxxxxxx" \
-e OPENGAUSS_PORT=5432 \
-e BACKUP_DB_LIST="xxxxx xxxx xxxx" \
-e PROJECT_NAME="DEV openGauss Backup Job" \
-e EMAIL_RECEIVER_ADDRESS="[email protected]" \
-e SEPARATE_DB_AND_SCHEMA="Y" \
-e BACKUP_SCHEDULE="0 1 * * *" \
-e BACKUP_FILE_RETENTION_PERIOD=100 \
--name opengauss-5.0-client-centos-7.6 \
-v ./openguass_backup:/backup \
--privileged \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
javaanddonet/opengauss-client:5.0-centos-7.6-v1.1

如果不想配置备份任务,只是想把它当成一个openGauss数据库客户端来使用,请使用如下命令来运行该容器:

docker run -itd \
--name opengauss-5.0-client-centos-7.6 \
javaanddonet/opengauss-client:5.0-centos-7.6-v1.1

Tag summary

Content type

Image

Digest

sha256:ad7b3549c

Size

360.2 MB

Last updated

about 2 years ago

docker pull javaanddonet/opengauss-client:5.0-centos-7.6-v1.1