openGauss 6.0.3 Docker 部署 & 数据库还原操作手册

3 阅读2分钟

openGauss 6.0.3 Docker部署&数据库还原操作手册

环境说明

  1. 本地镜像文件路径:G:\Downloads\openGauss-Docker-6.0.3-x86_64.tar
  2. 备份还原dump文件:new_schema_backup.dump
  3. openGauss官方下载地址:opengauss.org/zh/download…

注意:账号、密码、端口、挂载目录请根据实际业务环境自行调整

1、加载本地openGauss镜像

docker load -i "G:\Downloads\openGauss-Docker-6.0.3-x86_64.tar"

2、运行 openGauss 容器

参数说明:

  • --name:容器名称
  • GS_USERNAME:数据库初始化用户名
  • GS_PASSWORD:数据库密码(密码复杂度需满足 openGauss 规则)
  • -p:端口映射,宿主机端口:容器端口
  • -v:数据持久化挂载目录
docker run -d --name opengauss --privileged \
-e GS_USERNAME=ownSchemeName \
-e GS_PASSWORD=123456 \
-p 5432:5432 \
-v "/openguass:/var/lib/opengauss" \
-u root \
opengauss:6.0.3

3、将 dump 备份文件拷贝至容器内部

Windows 宿主机源文件路径:G:\new_schema_backup.dump,拷贝到容器/tmp目录

docker cp G:\new_schema_backup.dump  opengauss:/tmp

4、容器启停命令

# 启动容器
docker start opengauss(opengauss是自定义的容器名:也可以使用容器id启动)

# 停止容器
docker stop opengauss

5、进入容器内部,修改备份文件权限

openGauss 运行用户为 omm,dump 备份文件需要授予 omm 用户读取权限

# 进入容器
docker exec -it opengauss /bin/bash

# 切换root用户修改文件属主与权限
su - root
chmod 644 /tmp/new_schema_backup.dump
chown omm:omm /tmp/new_schema_backup.dump

# 切换到omm数据库运维用户
su omm

6、数据库连接与授权

# 连接postgres库
gsql -d postgres -U ownSchemeName -W'123456'
--出现如下的图片表示数据库创建并连接成功

image.png

-- 给业务用户授予postgres库全部权限,避免还原时报权限不足
GRANT ALL PRIVILEGES ON DATABASE postgres TO ownScheme;
\q --退出gsql客户端

7、执行 gs_restore 数据库还原

参数释义

表格

参数说明
-U omm执行还原的数据库账号
-d postgres目标数据库名
-n kingwaywage_xizang指定需要还原的 schema 名称
-c恢复前先删除 schema 内已有对象
-O不恢复对象 owner 所有者信息
-x不恢复 grant/revoke 授权 ACL 权限信息
--no-owner等价 - O,忽略对象所有者
--no-acl等价 - x,忽略权限授权
-v详细日志输出,便于排查报错

推荐完整还原命令:恢复前清理旧对象,不恢复原有所有者、权限

gs_restore -U omm -d postgres -n ownSchemeName -c -O -x -v /tmp/new_schema_backup.dump

参考备用命令(不做清理,仅做参考,不建议直接执行)

# gs_restore -U omm -d postgres -n ownSchemeName --no-owner  --no-acl  -v  /tmp/new_schema_backup.dump

备用 SQL 语句

-- 修改ownScheme业务用户密码为654321
ALTER USER ownSchemeName IDENTIFIED BY "654321!";