openGauss 6.0.3 Docker部署&数据库还原操作手册
环境说明
- 本地镜像文件路径:
G:\Downloads\openGauss-Docker-6.0.3-x86_64.tar - 备份还原dump文件:
new_schema_backup.dump - 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'
--出现如下的图片表示数据库创建并连接成功
-- 给业务用户授予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!";