將GitLab數據庫從阿裏雲PostgreSQL RDS遷移至自建的PostgreSQL服務器
阿新 • • 發佈:2017-06-22
bsp 控制臺 創建 升級 postgresq pre 低版本 sse esql
阿裏雲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服務器