zoukankan      html  css  js  c++  java
  • 将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

  • 相关阅读:
    tcp_tw_recycle 的问题, 使用某一个wifi,APP老是连接不上网络
    stackoverflow 的架构
    服务器的返回码总结
    iOS10 app连接不上网络的问题
    nsurl 测试ATS
    处理数据队列
    换手率的公司使用MQTT的框架
    导入charts开源库到工程里面
    极光推送的推送方式
    自己生成一个NDK的浅析
  • 原文地址:https://www.cnblogs.com/dudu/p/7061359.html
Copyright © 2011-2022 走看看