最近有个项目需要用到openGauss数据库,之前一直没使用过,发现只能在CentOS部署,然而我的云服务器装的是Debian,不过有万能的Docker在,一切都不是问题
云服务器/虚拟机
首先需要有一台云服务器,或者使用虚拟机,但虚拟机的话只能本地使用,不太适合多地操作,还是建议用云服务器。
本文章就是基于雨云-新一代云服务提供商操作的,挑选一台NAT网络的服务器即可,便宜好用,而且支持试用
-
进入雨云官网,登陆注册,点击云产品➡️立即购买
-
选择江苏宿迁➡️NAT模式
-
可以先试用,试用后可直接续费
安装Docker
切换到root用户按顺序执行命令即可
提示:操作过程中可能出现以下选项,默认会选择第二个,请手动选择第一个并回车
# 更新
apt-get update
# 升级
apt-get upgrade
# 安装必要工具
sudo apt-get install \
apt-transport-https \
software-properties-common \
ca-certificates \
curl \
gnupg \
lsb-release
# 安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | apt-key add -
# 安装GPG证书
add-apt-repository "deb [arch=amd64] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian $(lsb_release -cs) stable"
# 更新并安装Docker
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 开机自启
systemctl enable docker
# 启动Docker
systemctl start docker
# 测试——查看docker版本
docker version
# 输出以下内容
配置加速镜像源
vim /etc/docker/daemon.json
文件内填入以下内容:
{
"registry-mirrors": ["https://docker.nastool.de"]
}
重载配置
systemctl daemon-reload
重启docker
systemctl restart docker
安装OpenGauss
这里尝试了很多次,网上的镜像源加速地址基本都拉取不下来opengauss的镜像,enmotech/opengauss、blueapple/opengauss、travelliu/opengauss和aff123/opengauss都无法成功拉取。最后终于找到了docker.aityp.com/,里面有5.0.2版本…
-
拉取镜像
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/enmotech/opengauss:5.0.2 -
创建容器
docker run --name opengauss --privileged=true -d -e GS_PASSWORD=password@123 -p 5566:5432 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/enmotech/opengauss:5.0.2 -
查看容器
docker ps -
进入容器查看,如下即为成功
docker exec -it opengauss shsu - ommgsql
Navicat远程连接opengauss
opengauss基于postgresql,所以选择postgresql连接即可
不过连接前先到雨云控制台配置端口映射,外网端口写10000~60000之内的数字即可,我这里是15566
navicat按照以下格式填写
连接成功之后显示如下
优化
毕竟是数据库,所以占用的内存比较大,我的云服务器选的是1G内存的,使用opengauss会出现内存不够而被杀死的情况,需要我回到服务器重新手动启动,所以需要解决的就是两个问题:1、自动重启;2、扩大内存
自动重启
自动重启比较简单,运行一行命令即可
docker update --restart=always opengauss
扩大内存
购买的内存是固定的,只能花钱升级,但有个能缓解的方法——虚拟内存,虽然效果不大,但能让内存需求突然增大的情况下保证容器不被杀死,也算是一个勉强能用的法子。
-
查看是否开启虚拟内存
swapon -s若什么都没输出,则说明没有虚拟内存
-
创建swap文件
fallocate -l 2G /swapfile一般是内存容量x1.5倍大小,我这里直接给了2G,可以根据自身需要修改
-
设置swap文件的权限
chmod 600 /swapfile -
格式化swap文件
mkswap /swapfile -
启用swap文件
swapon /swapfile -
设置开机自动挂载swap文件
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab -
查看是否开启虚拟内存
swapon -s -
查看内存使用情况
free -h因为我已经配置过了,所以这里没法给到图片,理论上此时能看到Swap还未被使用,uesd为0,且Mem的可用内存available很低
-
docker使用虚拟内存
vim /etc/default/docker在末尾添加
DOCKER_OPTS="--storage-driver=devicemapper --storage-opt dm.override_udev_sync_check=true"重启docker
systemctl restart docker -
再次查看内存使用情况
free -h此时可以看到虚拟内存正在被使用,且可用内存变多了
至此,圆满完成。不过建议还是直接上2G或者更高内存的服务器,1G的用来运行数据库只能勉强使用,高频操作还是会吃不消