postgres 數(shù)據(jù)庫(kù)遷移的幾種方法
環(huán)境說(shuō)明
本內(nèi)容基于如下環(huán)境完成測(cè)試
項(xiàng) | 配置說(shuō)明 | 備注 |
---|---|---|
操作系統(tǒng) | CentOS7 | |
PG數(shù)據(jù)版本 | 9.6.24 | |
操作系統(tǒng)用戶 | root/postgres | |
數(shù)據(jù)量 | 用戶(20)、角色(20)、數(shù)據(jù)庫(kù)(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ù)文件默認(rèn)位置:/var/lib/pgsql/9.6
#切換到數(shù)據(jù)存放位置 cd /var/lib/pgsql/9.6 #停止數(shù)據(jù)庫(kù)服務(wù) systemctl stop postgresql-9.6 #壓縮數(shù)據(jù)文件 tar -cvf data.tar.gz data/ #得到的 data.tar.gz 即為壓縮后的數(shù)據(jù)備份文件
遷移方案一:數(shù)據(jù)文件遷移
遷移數(shù)據(jù)文件
此過(guò)程需要先行停止pg數(shù)據(jù)庫(kù)
完成執(zhí)行文件備份
#確保過(guò)程種服務(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ù)庫(kù)對(duì)備份還原的支持,使用此方法強(qiáng)烈建議在同版本的數(shù)據(jù)庫(kù)上操作
上傳數(shù)據(jù)備份文件
#創(chuàng)建備份文件存放位置 cd /home mkdir postgres #上傳備份文件到上一步的存放位置(上傳過(guò)程省略) mv u_postgres.backup postgres/ #修改權(quán)限 chown -R postgres postgres/
使用psql還原
#切換用戶 su - postgres #切換數(shù)據(jù)備份目錄 cd /home/postgres/ #執(zhí)行恢復(fù)(忽略錯(cuò)誤,"postgres"內(nèi)置角色原因) psql -U postgres -f u_postgres.backup #執(zhí)行恢復(fù)(遇到錯(cuò)誤停止,不建議) #psql -U postgres --set ON_ERROR_STOP=on -f u_postgres.backup
常見(jiàn)問(wèn)題及解決辦法
權(quán)限過(guò)大問(wèn)題
- 遷移目標(biāo)目錄權(quán)限過(guò)大
解決辦法: 修改權(quán)限(必須)
chmod 700 pgdata/
目錄錯(cuò)誤或權(quán)限不足問(wèn)題
- 由于錯(cuò)誤操作導(dǎo)致的目錄無(wú)法識(shí)別為有效路徑或者因錯(cuò)誤修改權(quán)限導(dǎo)致的
解決辦法: 修改數(shù)據(jù)文件所在文件夾為posrgres所有
chown -R postgres pgdata chown 700 pgdata #可切換postgres 測(cè)試讀寫(xiě)權(quán)限
到此這篇關(guān)于postgres 數(shù)據(jù)庫(kù)遷移的幾種方法的文章就介紹到這了,更多相關(guān)postgres 數(shù)據(jù)庫(kù)遷移內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SQL Server數(shù)據(jù)遷移至PostgreSQL出錯(cuò)的解釋以及解決方案
- PostgreSQL數(shù)據(jù)目錄遷移的全過(guò)程
- postgresql運(yùn)維之遠(yuǎn)程遷移操作
- PostgreSQL數(shù)據(jù)庫(kù)遷移部署實(shí)戰(zhàn)教程
- 解決PostgreSQL數(shù)據(jù)遷移過(guò)程中的數(shù)據(jù)類型不匹配問(wèn)題
- PostgreSQL Public 模式的風(fēng)險(xiǎn)及安全遷移問(wèn)題小結(jié)
- PostgreSQL遷移的幾種實(shí)現(xiàn)方式
相關(guān)文章
PostgreSQL中查看當(dāng)前時(shí)間和日期的幾種常用方法
在 PostgreSQL 中,有多個(gè)函數(shù)可以用來(lái)查看當(dāng)前時(shí)間和日期,這些函數(shù)在處理時(shí)間戳、日期和時(shí)間的計(jì)算時(shí)非常有用,以下是幾種常用的查看當(dāng)前時(shí)間和日期的函數(shù)及示例,需要的朋友可以參考下2024-10-10PostgreSQL?10分區(qū)表及性能測(cè)試報(bào)告小結(jié)
PostgreSQL的分區(qū)表跟先前版本一樣,也要先建立主表,然后再建立子表,使用繼承的特性,但不需要手工寫(xiě)規(guī)則了,目前支持range、list分區(qū),10正式版本發(fā)布時(shí)不知會(huì)不會(huì)支持其它方法,感興趣的朋友跟隨小編一起看看吧2022-01-01PostgreSQL 禁用全表掃描的實(shí)現(xiàn)
這篇文章主要介紹了PostgreSQL 禁用全表掃描的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-01-01PostgreSQL有效地處理數(shù)據(jù)的加密和解密的常見(jiàn)方法
在信息化建設(shè)和等保建設(shè)中,都要求實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)的隱私保護(hù),也就是我們常說(shuō)的脫敏,那么在?PostgreSQL?數(shù)據(jù)庫(kù)中有沒(méi)有這樣的方法或者策略可以實(shí)現(xiàn)呢,本文小編將給大家介紹一下PostgreSQL有效地處理數(shù)據(jù)的加密和解密的常見(jiàn)方法,需要的朋友可以參考下2025-03-03PostgreSQL數(shù)據(jù)庫(kù)事務(wù)出現(xiàn)未知狀態(tài)的處理方法
這篇文章主要給大家介紹了PostgreSQL數(shù)據(jù)庫(kù)事務(wù)出現(xiàn)未知狀態(tài)的處理方法,需要的朋友可以參考下2017-07-07關(guān)于PostgreSQL JSONB的匹配和交集問(wèn)題
這篇文章主要介紹了PostgreSQL JSONB的匹配和交集問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09PostgreSQL教程(四):數(shù)據(jù)類型詳解
這篇文章主要介紹了PostgreSQL教程(四):數(shù)據(jù)類型詳解,本文講解了數(shù)值類型、字符類型、布爾類型、位串類型、數(shù)組、復(fù)合類型等數(shù)據(jù)類型,需要的朋友可以參考下2015-05-05