为什么要升级到3.1.1
3.1.1 似乎并非是一个正式的版本,
但是浙江工业大学的数据库原理课程使用此版本的 Opengauss,
在实验中,如果使用其下的版本将会遇到 with check option
未实现的问题
升级的解决方案
通过虚拟机安装 openEuler (正如我这篇博客)
即使是最新的22.03 LTS 版本,自动安装的也还是3.1.0
而手动更新想毕是繁琐的(笔者并未尝试)
于是决定在 enmotech-docker-opengauss 3.1.0的基础上进行修改,直接打包一个3.1.1版本的docker镜像。
目前笔者只打包了amd架构版本的镜像文件,已经上传到docker.io
以下为安装此版本的方式
安装笔者自己打包的3.1.1docker镜像的步骤
0. 确保docker已经安装并且运行
理论上docker是跨平台的优秀解决方案。 笔者在archlinux下使用没有障碍。
由于笔者精力有限,windows, mac 下的docker并未测试过 以下命令均在 archlinux 6.2.8 arch-1-1, ubuntu 20.03 下经过测试。
1. 停止原先3.1.0版本的运行
如果您正在使用3.1.0版本的镜像,请先停止其的运行(但是并不要删除)
|
|
[your-container-name]是你的opengauss3.1.0镜像的容器名称
如果忘记可以通过
|
|
查看
2. 安装docker镜像
|
|
- [container-name] 是容器的名称,可以随意填写
- [Pass@word] 是 omm 的密码,需要大小写、数字、特殊字符四选三。
3. 配置docker镜像
|
|
此时应该进入了docker容器的交互环境中。 应该显示类似如下:
|
|
如果没能进入,则可能出现了其他问题。
|
|
修改postgres.sql文件
|
|
加入以下三条
|
|
重启数据库
|
|
执行上述命令后docker容器将关闭,使用
|
|
重新开启
4. 配置数据库
配置数据库建议使用和3.1.0一样的数据库、用户名和密码
可以省去修改数据库管理软件(navicat等)的修改。
|
|
创建用户
|
|
创建数据库
先使用刚刚创建的用户登入
|
|
然后创建数据库
|
|
数据迁移
可以使用gs_dump
gsql
gs_restore
等工具进行数据迁移。
需要注意,要手动创建用户和数据库,可见上一小节末尾。
1. 回到3.1.0 转储数据
|
|
在交互环境中
|
|
[database-name] 是你之前使用的数据库名称。
2. 导出转储文件
在docker外面,使用
|
|
将转储文件导出
3. 开启3.1.1并导入
|
|
导入
|
|
4. 导入转储文件到数据库
进入docker
|
|
在交互环境中, 首先修改转储文件的权限(当前用户是root)
|
|
导入数据库
|
|
数据迁移完成。