阿里云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服务器的更多相关文章

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

    GitLab的数据库用的是PostgreSQL,之前由于阿里云RDS不支持PostgreSQL,只能将GitLab的数据库部署在云服务器上. 6月1日得知阿里云推出了PostgreSQL RDS,于是 ...

  2. 将 云数据库MongoDB(阿里云)物理备份文件下载恢复至本地自建数据库 遇到的5个问题

    有时候我们可能需要将云上数据库下载到本地,下面是我们在操作MongoDB数据库时遇到的五个小问题. 其实现在RDS的 帮助文档 写的都比较详细了,大家在第一次操作时,可以细读一下,避免一些不必要的问题 ...

  3. 洞见数据库前沿 阿里云数据库最强阵容 DTCC 2019 八大亮点抢先看

    摘要: 作为DTCC的老朋友和全球领先的云计算厂商,阿里云数据库团队受邀参加本次技术盛会,不仅将派出重量级嘉宾阵容,还会为广大数据库业内人士和行业用户奉上8场精彩议题.下面小编就为大家提前梳理了8大亮 ...

  4. Linux(CentOS7)设置自动备份数据库到阿里云OSS

    环境:阿里云服务器CentOS7.4 + MySQL5.6 基本思路: 1.编写shell脚本,备份数据库到指定目录下 2.编写Python脚本,把文件上传到OSS 3.把shell脚本和Python ...

  5. 再不懂时序就 OUT 啦!,DBengine 排名第一时序数据库,阿里云数据库 InfluxDB 正式商业化!

    云数据库 InfluxDB® 版介绍 阿里云数据库 InfluxDB® 版已于近日正式启动商业化 . 云数据库 InfluxDB® 是基于当前最流行的开源数据库 InfluxDB 提供的在线数据库服务 ...

  6. 阿里云的RDS 查看binlog日志的方法

    按时间点反后台备份的binlog日志从阿里云导出来,然后用mysqlbinlog查看日志内容: # mysqlbinlog -vv --base64-output=decode-rows mysql- ...

  7. 在阿里云主机上基于CentOS用vsftpd搭建FTP服务器

    最近需要在一台阿里云的云服务器上搭建FTP服务器,在这篇博文中分享一下我们根据实际需求进行的一些配置. ftp软件用的是vsftpd. vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序 ...

  8. 阿里云ecs初始化磁盘后远程连接不到服务器

    阿里云初始化磁盘后远程连接不到服务器 报错: WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ... 原因:阿里云ecs第一次链接服务器之后会在本地电 ...

  9. 【小技巧解决大问题】使用 frp 突破阿里云主机无弹性公网 IP 不能用作 Web 服务器的限制

    背景 今年 8 月份左右,打折价买了一个阿里云主机,比平常便宜了 2000 多块.买了之后,本想作为一个博客网站的,毕竟国内的服务器访问肯定快一些.满心欢喜的下单之后,却发现 http 服务,外网怎么 ...

随机推荐

  1. 【BZOJ3585】mex

    Description 有一个长度为n的数组{a1,a2,-,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. Input 第一行n,m. 第二行为n个数. 从第三行開始,每行一个询问l, ...

  2. Linux内核编译与安装

    2013-04-16    Linux内核介绍  Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统.内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.L ...

  3. DropDMG for Mac(dmg 文件打包工具)破解版安装

    1.软件简介    DropDMG 是 macOS 系统上的一款帮助用户快速打包 DMG 文件的 Mac 文件管理软件,DropDMG 不但可以将影像档加密.更可以配合 GZip .BZip2 .Ma ...

  4. 12C -- ORA-28040

    新安装的12.2数据库,尝试连接数据库的时候,报ora-28040错误: 这是由于12C数据库默认参数(默认支持的客户端版本)设置的原因. 在12C中,SQLNET.ALLOWED_LOGON_VER ...

  5. IDEA环境设置

    设置SDK:https://blog.csdn.net/y999666/article/details/51893348 打开模板使用说明,找到Maven本地安装目录, 备份E:\Program Fi ...

  6. SNF快速开发平台MVC-EasyUI3.9之-WebApi和MVC-controller层接收的json字符串的取值方法和调用后台服务方法

    最近项目组很多人问我,从前台页面传到后台controller控制层或者WebApi 时如何取值和运算操作. 今天就都大家一个在框架内一个取值技巧 前台JS调用代码: 1.下面是选中一行数据后右键点击时 ...

  7. 微信公众号 几种移动端UI框架介绍

    微信公众号开发,主要是移动端网页的页面开发,在这里推荐3个移动端UI框架:WeUI.SUI和Mint UI. 1. WeUI 1.1 WeUI WeUI是微信官方设计团队为微信 Web 开发量身设计, ...

  8. Approx Analytic Arealight

    试着实现的基于分析方法的近似面积光源.

  9. PHP-X介绍

      为什么要开发PHP扩展 PHP-X是用来开发PHP扩展的库.PHP代码写得好好的,为啥要开发PHP扩展呢? 1.我们知道PHP不擅长CPU密集型的操作,那么把CPU密集型的相关代码迁移到扩展上,就 ...

  10. [ModemManger]ModemManger的取消

    http://www.linux-databook.info/?page_id=3748 systemctl disable ModemManager.service 失能ModemManger从而取 ...