将GitLab数据库从阿里云PostgreSQL RDS迁移至自建的PostgreSQL服务器

Posted dudu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将GitLab数据库从阿里云PostgreSQL RDS迁移至自建的PostgreSQL服务器相关的知识,希望对你有一定的参考价值。

阿里云RDS目前支持的是PostgreSQL 9.4,而gitlab支持的最低版本是PostgreSQL 9.6.1,不升级PostgreSQL,gitlab就无法升级,阿里云RDS短期内不进行升级,被迫无奈下只能改用自己用阿里云ECS搭建的PostgreSQL服务器。这篇随笔记录一下数据库迁移的主要步骤。

在ubuntu时安装好PostgreSQL之后,首先进入 /etc/postgresql/9.6/main 修改2个配置文件:

postgresql.conf

listen_addresses = \'127.0.0.1,内网IP\'

pg_hba.conf

host    all             all        gitlab服务内网IP/32            trust

然后在阿里云ECS的数据盘创建专门用于存放gitlab数据库文件的文件夹

mkdir /data/gitlab-db
cd /data/gitlab-db
chown -R postgres:postgres .

接下来创建 tablespace (tablespace决定数据库文件的存放路径)

CREATE TABLESPACE gitlab_space LOCATION \'/data/gitlab-db’;

再接下来创建名为gitlab的数据库用户

create user gitlab password ‘xxxxx’;

创建gitlab数据库

CREATE DATABASE gitlabhq_production OWNER gitlab TABLESPACE gitlab_space;

将gitlab数据库授权给之前创建的gitlab用户

GRANT ALL PRIVILEGES ON DATABASE gitlabhq_production TO gitlab;

接下来迁移数据库时走了些弯路,开始采用的方式是恢复从阿里云RDS控制台下载的 .tar.gz 备份文件

psql -U gitlab -d gitlabhq_production -f xxxxx.tar.gz

但恢复时总是出现一堆伴随乱码的"Invalid command"错误。

后来一想,直接用 pg_dump 连到 RDS 上备份出 .sql 文件不就行了吗?

pg_dump -U 用户名 -h RDS实例地址 -p 3433 gitlabhq_production -f gitlabhq_production.sql

然后通过这个 .sql 备份文件轻松恢复。

psql -d gitlabhq_production -f gitlabhq_production.sql

【相关链接】

将GitLab的数据库导入阿里云PostgreSQL RDS

以上是关于将GitLab数据库从阿里云PostgreSQL RDS迁移至自建的PostgreSQL服务器的主要内容,如果未能解决你的问题,请参考以下文章

阿里云云中沙箱自助实验-从Gitlab数据库被删看数据备份的重要性!

只需五步!将数据仓库从 Redshift 迁移到阿里云 AnalyticDB for PostgreSQL

gitlab基于阿里云OSS自动备份与恢复

专访唐成:从小工到专家,PostgreSQL的修炼之道

阿里云CentOS安装PostgreSQL

本地 gitlab 项目迁移到阿里云(含历史提交记录一起迁移)