點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!
pg_dump是什么
即使當(dāng)前數(shù)據(jù)庫(kù)正在使用,也能夠生成一致性的備份。
這也就意味著轉(zhuǎn)儲(chǔ)的內(nèi)容是pg_dump開(kāi)始運(yùn)行時(shí)刻的數(shù)據(jù)庫(kù)快照,且在pg_dump運(yùn)行過(guò)程中發(fā)生的更新將不會(huì)被轉(zhuǎn)儲(chǔ)。pg_dump備份期間不會(huì)阻塞其他用戶訪問(wèn)數(shù)據(jù)庫(kù)(包括讀、寫(xiě)),但是會(huì)阻塞那些需要排它鎖的操作,比如大部分形式的ALTER TABLE。
pg_dump只能備份一個(gè)數(shù)據(jù)庫(kù)。
如果要備份Cluster中數(shù)據(jù)庫(kù)共有的全局對(duì)象,例如角色和表空間,需要使用pg_dumpall。
轉(zhuǎn)儲(chǔ)可以被輸出到腳本或歸檔文件格式。
轉(zhuǎn)儲(chǔ)的腳本是包含 SQL 命令的純文本文件,它們可以用來(lái)重構(gòu)數(shù)據(jù)庫(kù)到它被轉(zhuǎn)儲(chǔ)時(shí)的狀態(tài)。要從這樣一個(gè)腳本恢復(fù),直接使用psql執(zhí)行即可。腳本文件還可以通過(guò)修改一部分內(nèi)容在其他架構(gòu)的數(shù)據(jù)庫(kù)上重構(gòu)數(shù)據(jù)庫(kù),其和mysqldump很類(lèi)似。這也是相對(duì)于其他備份方法的一個(gè)重要優(yōu)勢(shì)。
注意:pg_dump產(chǎn)生的轉(zhuǎn)儲(chǔ)文件不包含優(yōu)化器用來(lái)做出查詢計(jì)劃決定的統(tǒng)計(jì)信息。當(dāng)導(dǎo)入完成后,建議做全庫(kù)的ANALYZE,這對(duì)后續(xù)優(yōu)化器能根據(jù)可用的統(tǒng)計(jì)信息對(duì)SQL執(zhí)行進(jìn)行最優(yōu)化操作。
另一種可選的歸檔文件格式必須與pg_restore配合使用來(lái)重建數(shù)據(jù)庫(kù)。
它們?cè)试Spg_restore能選擇恢復(fù)什么,或者甚至在恢復(fù)之前對(duì)條目重排序。歸檔文件格式被設(shè)計(jì)為在架構(gòu)之間可移植。當(dāng)使用歸檔文件格式之一并與pg_restore組合時(shí),pg_dump提供了一種靈活的歸檔和傳輸機(jī)制。
pg_dump可以被用來(lái)備份整個(gè)數(shù)據(jù)庫(kù),然后pg_restore可以被用來(lái)檢查歸檔并/或選擇數(shù)據(jù)庫(kù)的哪些部分要被恢復(fù)。
最靈活的輸出文件格式是“自定義”格式(-Fc)和“目錄”格式(-Fd)。它們?cè)试S選擇和重排序所有已歸檔項(xiàng)、支持并行恢復(fù)并且默認(rèn)是壓縮的。“目錄”格式是唯一一種支持并行轉(zhuǎn)儲(chǔ)的格式。
以pgtt庫(kù)為例進(jìn)行講解
2.1 將源數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)到文件中。在之前要查看一下數(shù)據(jù)庫(kù)的大小,選擇合適大小的目錄存放文件。
c pgtt
select pg_database_size(pgtt);
su - postgres
pg_dump -U root -p 10001 -d pgtt -b -f /app/pg/pgtt_data20211022.sql
scp pgtt_data20211022.sql postgres@xxx.xxx.xxx.xxx:/app/pg
CREATE USER pgtt WITH ENCRYPTED PASSWORD xxxxxx;
CREATE DATABASE pgtt OWNER pgtt TEMPLATE template1;
REVOKE CONNECT ON DATABASE pgtt FROM PUBLIC;
GRANT CONNECT ON DATABASE pgtt TO pgtt;
su - postgres
psql -U root -p 10001 -d pgtt -f /app/pg/pgtt_data20211022.sql
pg_dump -C -h local -U localuser sourcedb | psql -h remote -U remoteuser targetdb
pg_dump -C -h $local -U root pgtt | psql -h $remote -U root pgtt
pg_dumpall -h 10.10.xxx.xxx -U root --port=10001 -f /app/pg/onlyroles20211022.sql --roles-only
pg_dump -U root -p 10001 -d pgtt -s -b -f /app/pg/pgtt_jg_20211022.sql
--只導(dǎo)數(shù)據(jù),沒(méi)有創(chuàng)建用戶角色:
pg_dump -U root -p 10001 -d pgtt -a -b -f /app/pg/pgtt_data20211022.sql
scp onlyroles20211022.sql postgres@10.10.xxx.xxx:/app/pg
scp pgtt_jg_20211022.sql postgres@10.10.xxx.xxx:/app/pg
scp pgtt_data20211022.sql postgres@10.10.xxx.xxx:/app/pg
psql -U root -p 10001 -d pgtt -f /app/pg/onlyroles20211022.sql
psql -U root -p 10001 -d pgtt -f /app/pg/pgtt_jg_20211022.sql
psql -U root -p 10001 -d pgtt -f /app/pg/pgtt_data20211022.sql
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/129397.html
摘要:指定要用于查找的口令文件的名稱。前四個(gè)字段可以是確定的字面值,也可以使用通配符匹配所有。利用環(huán)境變量引用的文件權(quán)限也要滿足這個(gè)要求,否則同樣會(huì)被忽略。在上,該文件被假定存儲(chǔ)在一個(gè)安全的目錄中,因此不會(huì)進(jìn)行特別的權(quán)限檢查。 pg_dump pg_dump 把一個(gè)數(shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)為純文本文件或者是其它格式. 用法: pg_dump [選項(xiàng)]... [數(shù)據(jù)庫(kù)名字] 一般選項(xiàng): -f, --fi...
摘要:無(wú)意中看到了一篇講數(shù)據(jù)批量導(dǎo)入的文章,才注意到的命令。的直接可以干這個(gè)事情,而且導(dǎo)出速度是非常快的。總結(jié)還有一些其他配置,比如把輸入輸出源指定成和命令,或者指定的等等。合理使用能大大提高效率。 TL;DR 無(wú)意中看到了一篇講 數(shù)據(jù)批量導(dǎo)入 的文章,才注意到 PostgreSQL 的 COPY 命令。簡(jiǎn)而言之,它用來(lái)在文件和數(shù)據(jù)庫(kù)之間復(fù)制數(shù)據(jù),效率非常高,并且支持 CSV 。 導(dǎo)出 CS...
摘要:無(wú)意中看到了一篇講數(shù)據(jù)批量導(dǎo)入的文章,才注意到的命令。的直接可以干這個(gè)事情,而且導(dǎo)出速度是非常快的。總結(jié)還有一些其他配置,比如把輸入輸出源指定成和命令,或者指定的等等。合理使用能大大提高效率。 TL;DR 無(wú)意中看到了一篇講 數(shù)據(jù)批量導(dǎo)入 的文章,才注意到 PostgreSQL 的 COPY 命令。簡(jiǎn)而言之,它用來(lái)在文件和數(shù)據(jù)庫(kù)之間復(fù)制數(shù)據(jù),效率非常高,并且支持 CSV 。 導(dǎo)出 CS...
摘要:的問(wèn)題當(dāng)出現(xiàn)不能的時(shí)候,我也嘗試過(guò)這種提示里面的命令,可是還是不能解決這個(gè)問(wèn)題。解決方法一般自己機(jī)器上面的都是測(cè)試數(shù)據(jù),所以可以直接刪除掉舊的數(shù)據(jù)庫(kù)文件。解決方法然后就可以該干嘛干嘛了。 有些出現(xiàn)的問(wèn)題其實(shí)是不懂正確的流程,都是在試錯(cuò),可是還是學(xué)到了很多東西,寫(xiě)下了,希望對(duì)我和大家都有幫助。 Homebrew 的問(wèn)題 當(dāng)我去運(yùn)行brew update的時(shí)候出現(xiàn)錯(cuò)誤untracked...
摘要:打開(kāi)多個(gè)窗口一個(gè)數(shù)據(jù)庫(kù)連接打開(kāi)多個(gè)窗口用于查看數(shù)據(jù)表及數(shù)據(jù)進(jìn)入工具首選項(xiàng)數(shù)據(jù)庫(kù)對(duì)象查看器勾選自動(dòng)凍結(jié)對(duì)象查看器窗口即可。顯示行號(hào)進(jìn)入工具首選項(xiàng)代碼編輯器行裝訂線勾選顯示行數(shù)即可。 Oracle SQL Developer 個(gè)人使用記錄 以下簡(jiǎn)稱 SQL Developer 對(duì)我Java開(kāi)發(fā)來(lái)說(shuō),這個(gè)工具已經(jīng)足夠使用了,雖然還有很多缺點(diǎn),但夠用就行,相對(duì)于我來(lái)說(shuō)的優(yōu)點(diǎn): 整體UI還算舒...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20