文章出處

阿里云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


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()