postgres 數(shù)據(jù)庫遷移的幾種方法
環(huán)境說明
本內容基于如下環(huán)境完成測試
| 項 | 配置說明 | 備注 |
|---|---|---|
| 操作系統(tǒng) | CentOS7 | |
| PG數(shù)據(jù)版本 | 9.6.24 | |
| 操作系統(tǒng)用戶 | root/postgres | |
| 數(shù)據(jù)量 | 用戶(20)、角色(20)、數(shù)據(jù)庫(2)、schema(42)、數(shù)據(jù)量(約160W行) | 數(shù)據(jù)文件約640M |
備份
數(shù)據(jù)備份
#創(chuàng)建備份存放文件夾(確保postgres用戶有權限) cd /home mkdir posrgres chown -R postgres postgres/ #切換postgres用戶 su - posrgres #執(zhí)行備份 pg_dumpall -U postgres -v -f u_postgres.backup
文件備份
數(shù)據(jù)文件默認位置:/var/lib/pgsql/9.6
#切換到數(shù)據(jù)存放位置 cd /var/lib/pgsql/9.6 #停止數(shù)據(jù)庫服務 systemctl stop postgresql-9.6 #壓縮數(shù)據(jù)文件 tar -cvf data.tar.gz data/ #得到的 data.tar.gz 即為壓縮后的數(shù)據(jù)備份文件
遷移方案一:數(shù)據(jù)文件遷移
遷移數(shù)據(jù)文件
此過程需要先行停止pg數(shù)據(jù)庫
完成執(zhí)行文件備份
#確保過程種服務是停止的 systemctl stop postgresql-9.6 cd /home #創(chuàng)建遷移目錄 并修改權限 mkdir pgdata ##修改歸屬 chown -R postgres pgdata/ ##修改權限(必須) chmod 700 pgdata/ #切換至pg用戶 su - postgres #復制數(shù)據(jù)文件到新位置 cp -rf data/* /home/pgdata/
修改服務種數(shù)據(jù)文件位置
#編輯服務配置文件 vim /usr/lib/systemd/system/postgresql-9.6.service #修改配置文件種的數(shù)據(jù)文件路徑 修改:Environment=PGDATA=/var/lib/pgsql/9.6/data/ 為:Environment=PGDATA=/home/pgdata/ #保存退出 #重啟系統(tǒng) reboot

遷移方案二:數(shù)據(jù)還原法
此方案基于pg數(shù)據(jù)庫對備份還原的支持,使用此方法強烈建議在同版本的數(shù)據(jù)庫上操作
上傳數(shù)據(jù)備份文件
#創(chuàng)建備份文件存放位置 cd /home mkdir postgres #上傳備份文件到上一步的存放位置(上傳過程省略) mv u_postgres.backup postgres/ #修改權限 chown -R postgres postgres/
使用psql還原
#切換用戶 su - postgres #切換數(shù)據(jù)備份目錄 cd /home/postgres/ #執(zhí)行恢復(忽略錯誤,"postgres"內置角色原因) psql -U postgres -f u_postgres.backup #執(zhí)行恢復(遇到錯誤停止,不建議) #psql -U postgres --set ON_ERROR_STOP=on -f u_postgres.backup
常見問題及解決辦法
權限過大問題

- 遷移目標目錄權限過大
解決辦法: 修改權限(必須)
chmod 700 pgdata/
目錄錯誤或權限不足問題

- 由于錯誤操作導致的目錄無法識別為有效路徑或者因錯誤修改權限導致的
解決辦法: 修改數(shù)據(jù)文件所在文件夾為posrgres所有
chown -R postgres pgdata chown 700 pgdata #可切換postgres 測試讀寫權限

到此這篇關于postgres 數(shù)據(jù)庫遷移的幾種方法的文章就介紹到這了,更多相關postgres 數(shù)據(jù)庫遷移內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
PostgreSQL有效地處理數(shù)據(jù)的加密和解密的常見方法
在信息化建設和等保建設中,都要求實現(xiàn)對用戶數(shù)據(jù)的隱私保護,也就是我們常說的脫敏,那么在?PostgreSQL?數(shù)據(jù)庫中有沒有這樣的方法或者策略可以實現(xiàn)呢,本文小編將給大家介紹一下PostgreSQL有效地處理數(shù)據(jù)的加密和解密的常見方法,需要的朋友可以參考下2025-03-03
PostgreSQL數(shù)據(jù)庫事務出現(xiàn)未知狀態(tài)的處理方法
這篇文章主要給大家介紹了PostgreSQL數(shù)據(jù)庫事務出現(xiàn)未知狀態(tài)的處理方法,需要的朋友可以參考下2017-07-07
PostgreSQL教程(四):數(shù)據(jù)類型詳解
這篇文章主要介紹了PostgreSQL教程(四):數(shù)據(jù)類型詳解,本文講解了數(shù)值類型、字符類型、布爾類型、位串類型、數(shù)組、復合類型等數(shù)據(jù)類型,需要的朋友可以參考下2015-05-05

