postgres 數(shù)據(jù)庫遷移的幾種方法
環(huán)境說明
本內(nèi)容基于如下環(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用戶有權(quán)限) 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ù)庫服務(wù) 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í)行文件備份
#確保過程種服務(wù)是停止的 systemctl stop postgresql-9.6 cd /home #創(chuàng)建遷移目錄 并修改權(quán)限 mkdir pgdata ##修改歸屬 chown -R postgres pgdata/ ##修改權(quán)限(必須) chmod 700 pgdata/ #切換至pg用戶 su - postgres #復(fù)制數(shù)據(jù)文件到新位置 cp -rf data/* /home/pgdata/
修改服務(wù)種數(shù)據(jù)文件位置
#編輯服務(wù)配置文件 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/ #修改權(quán)限 chown -R postgres postgres/
使用psql還原
#切換用戶 su - postgres #切換數(shù)據(jù)備份目錄 cd /home/postgres/ #執(zhí)行恢復(fù)(忽略錯誤,"postgres"內(nèi)置角色原因) psql -U postgres -f u_postgres.backup #執(zhí)行恢復(fù)(遇到錯誤停止,不建議) #psql -U postgres --set ON_ERROR_STOP=on -f u_postgres.backup
常見問題及解決辦法
權(quán)限過大問題
- 遷移目標目錄權(quán)限過大
解決辦法: 修改權(quán)限(必須)
chmod 700 pgdata/
目錄錯誤或權(quán)限不足問題
- 由于錯誤操作導(dǎo)致的目錄無法識別為有效路徑或者因錯誤修改權(quán)限導(dǎo)致的
解決辦法: 修改數(shù)據(jù)文件所在文件夾為posrgres所有
chown -R postgres pgdata chown 700 pgdata #可切換postgres 測試讀寫權(quán)限
到此這篇關(guān)于postgres 數(shù)據(jù)庫遷移的幾種方法的文章就介紹到這了,更多相關(guān)postgres 數(shù)據(jù)庫遷移內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL中查看當(dāng)前時間和日期的幾種常用方法
在 PostgreSQL 中,有多個函數(shù)可以用來查看當(dāng)前時間和日期,這些函數(shù)在處理時間戳、日期和時間的計算時非常有用,以下是幾種常用的查看當(dāng)前時間和日期的函數(shù)及示例,需要的朋友可以參考下2024-10-10PostgreSQL?10分區(qū)表及性能測試報告小結(jié)
PostgreSQL的分區(qū)表跟先前版本一樣,也要先建立主表,然后再建立子表,使用繼承的特性,但不需要手工寫規(guī)則了,目前支持range、list分區(qū),10正式版本發(fā)布時不知會不會支持其它方法,感興趣的朋友跟隨小編一起看看吧2022-01-01PostgreSQL有效地處理數(shù)據(jù)的加密和解密的常見方法
在信息化建設(shè)和等保建設(shè)中,都要求實現(xiàn)對用戶數(shù)據(jù)的隱私保護,也就是我們常說的脫敏,那么在?PostgreSQL?數(shù)據(jù)庫中有沒有這樣的方法或者策略可以實現(xiàn)呢,本文小編將給大家介紹一下PostgreSQL有效地處理數(shù)據(jù)的加密和解密的常見方法,需要的朋友可以參考下2025-03-03PostgreSQL數(shù)據(jù)庫事務(wù)出現(xiàn)未知狀態(tài)的處理方法
這篇文章主要給大家介紹了PostgreSQL數(shù)據(jù)庫事務(wù)出現(xiàn)未知狀態(tài)的處理方法,需要的朋友可以參考下2017-07-07關(guān)于PostgreSQL JSONB的匹配和交集問題
這篇文章主要介紹了PostgreSQL JSONB的匹配和交集問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09PostgreSQL教程(四):數(shù)據(jù)類型詳解
這篇文章主要介紹了PostgreSQL教程(四):數(shù)據(jù)類型詳解,本文講解了數(shù)值類型、字符類型、布爾類型、位串類型、數(shù)組、復(fù)合類型等數(shù)據(jù)類型,需要的朋友可以參考下2015-05-05