阿里云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. Open-Source performance testing tools(From other site)

    http://www.appdynamics.com/blog/php/tools-of-the-trade-for-performance-and-load-testing/

  2. 在mysql中如何写注释语句

    //在mysql中如何写注释语句 mysql; # 这个注释直到该行结束 mysql; -- 这个注释直到该行结束 mysql ; mysql+ /* 这是一个 多行注释的形式 */ ;

  3. Swift搭建本地http服务器,实现外部视频即时播放

    最近项目有个小需求,需要ios实现手机作为服务端,将内部视频文件,在外面能够直接访问 结合网上的例子,实现如下: 1.基于CocoaHTTPServer实现 2.可用pod集成,也可直接拖动文件集成 ...

  4. oradim新建服务后,登录数据库报ORA-12560错误

    > oradim -new -sid mydb 实例已创建. > sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on 星期二 ...

  5. CentOS SVN服务器管理多项目

    一 需求 一般来说,公司有多个项目,在搭建好SVN服务器之后,就需要使用SVN来实现不在一个项目中的开发人员不能访问其它项目中的代码. 假设: 有3个项目:project1.project2.proj ...

  6. SNF快速开发平台MVC-集成了百度开源项目echars

    百度开源项目echars图表样式非常丰富,而且开源免费.非常好.所以在我们框架当中也进行了集成echars完成图表任务. 我们进行了两次封装,利于我们开发使用.我也看到过有些架构师 按echars里的 ...

  7. appium 后台运行shell脚本

    appium 在后台运行,把启动appium命令保存为一个shell文件,文件名包含appium,如start_appium.sh.由于启动前要杀掉已经启动的appium服务, BUILD_ID=do ...

  8. Android Studio updating indices 一直刷新和闪烁

    Android Studio 更新到了 3.1.3 版本,在导入了工程以后,一直出现了 updating indices 刷新的情况,造成闪烁,在切换到其他视图以后,Android Studio 会一 ...

  9. IntelliJ IDEA 中文乱码配置

    总共有下面几种乱码的解决方案: 工程乱码 执行main函数时,控制台乱码 运行tomcat时,控制台乱码 PS: 如果下面方案不生效时,打开IDEA安装目录找到 idea.exe.vmoptions( ...

  10. Android高效加载大图、多图解决方案,有效避免程序OOM(转)

    本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/training/displaying ...