日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

pg_dump是PolarDB PostgreSQL版(兼容Oracle)提供的一種邏輯備份工具,用于將集群中的單個(gè)數(shù)據(jù)庫備份為腳本文件或其他存檔文件。

簡介

pg_dump用于備份單個(gè)數(shù)據(jù)庫。即使當(dāng)前數(shù)據(jù)庫正在被訪問,也會(huì)對正在訪問的數(shù)據(jù)進(jìn)行一致的備份,并且在執(zhí)行備份時(shí)不會(huì)阻止其他用戶訪問數(shù)據(jù)庫(讀取或?qū)懭耄8嘣斍檎垍⒁?a class="xref" target="_blank" >pg_dump官網(wǎng)。

說明

PolarTools中的pg_dump與社區(qū)版本的pg_dump存在差異,PolarTools中的pg_dump針對PolarDB PostgreSQL版(兼容Oracle)進(jìn)行了適配。使用社區(qū)版本的pg_dump可能會(huì)出現(xiàn)未知異常或備份的對象數(shù)據(jù)不完整等情況。

備份文件格式

  • 腳本文件:腳本文件為純文本文件,其中包含將數(shù)據(jù)庫重建到備份時(shí)狀態(tài)的SQL命令。

  • 存檔文件:存檔文件必須和pg_restore配合使用來重建數(shù)據(jù)庫。

    輸出文件格式主要包括自定義格式-Fc、目錄格式-Fdtar格式的存檔文件-Ft。其中-Fc-Fd允許對所有存檔項(xiàng)目進(jìn)行選擇和重新排序,且默認(rèn)為壓縮格式的文件。-Ft不是壓縮文件,并且我們在恢復(fù)數(shù)據(jù)時(shí)不支持重新排序。

    說明

    目錄格式是唯一支持并行備份的格式。

    當(dāng)與其中一種存檔文件結(jié)合使用時(shí),pg_dump可用于備份整個(gè)數(shù)據(jù)庫。pg_restore可用于檢查存檔或選擇哪些部分需要被恢復(fù)。

語法

pg_dump [connection-option...] [option...] [dbname]

表 1. 參數(shù)說明

參數(shù)

描述

connection-option

控制數(shù)據(jù)庫連接參數(shù)的命令行選項(xiàng)。詳情請參見connection-option(控制數(shù)據(jù)庫連接參數(shù)命令行選項(xiàng))

option

控制輸出內(nèi)容和格式的命令行選項(xiàng)。詳情請參見option(控制輸出內(nèi)容和格式的命令行選項(xiàng))

dbname

需要備份的數(shù)據(jù)庫名稱。

表 2. connection-option(控制數(shù)據(jù)庫連接參數(shù)命令行選項(xiàng))

命令行選項(xiàng)

描述

-d dbname--dbname=dbname

指定要連接的數(shù)據(jù)庫的名稱。

-h host--host=host

指定運(yùn)行服務(wù)器的計(jì)算機(jī)的主機(jī)名。如果該值以斜杠開頭,則將其用作Unix域套接字的目錄,默認(rèn)值為PGHOST環(huán)境變量。

-p port--port=port

指定服務(wù)器正在偵聽連接的TCP端口或本地Unix域套接字文件擴(kuò)展名。默認(rèn)放在PGPORT環(huán)境變量中,否則使用程序中的默認(rèn)值。

-U username--username=username

需要連接的用戶名。

-w--no-password

表示pg_dump在連接數(shù)據(jù)庫時(shí)不提示輸入密碼。

-W--password

表示pg_dump在連接數(shù)據(jù)庫時(shí)提示輸入密碼。

說明

此選項(xiàng)為非必選項(xiàng)。

--role=rolename

指定用于創(chuàng)建備份的角色名。

表 3. option(控制輸出內(nèi)容和格式的命令行選項(xiàng))

命令行選項(xiàng)

描述

dbname

需要備份的數(shù)據(jù)庫的名稱。如果未指定,則使用環(huán)境變量PGDATABASE

-a--data-only

只備份數(shù)據(jù),不備份結(jié)構(gòu)。

說明

此選項(xiàng)備份表數(shù)據(jù)、大型對象和序列值。

-b--blobs

備份時(shí)默認(rèn)包含大對象。當(dāng)指定了--schema-table--schema only時(shí),備份將不包含大對象。

重要

blob被視為數(shù)據(jù),因此在備份時(shí)使用--data only將包含數(shù)據(jù),使用--schema only則不包含數(shù)據(jù)。

-B--no-blobs

排除備份中的大對象。

說明

當(dāng)同時(shí)出現(xiàn)-b-B時(shí),備份將包含大對象。

-c--clean

在執(zhí)行創(chuàng)建數(shù)據(jù)庫對象命令之前刪除數(shù)據(jù)庫對象。為避免在恢復(fù)數(shù)據(jù)庫時(shí)產(chǎn)生錯(cuò)誤信息,建議在恢復(fù)數(shù)據(jù)庫時(shí)指定--if exists

說明

此選項(xiàng)僅適用于腳本文件。對于存檔文件,可以在調(diào)用pg_restore時(shí)指定該選項(xiàng)。

-C--create

創(chuàng)建數(shù)據(jù)庫并重新連接到新創(chuàng)建的數(shù)據(jù)庫。如果指定了--clean,則腳本將刪除并重新創(chuàng)建目標(biāo)數(shù)據(jù)庫,然后再重新連接到該數(shù)據(jù)庫。

如果指定了--create命令行,且未指定--no-acl。備份數(shù)據(jù)時(shí)將包含數(shù)據(jù)庫的注釋、數(shù)據(jù)庫的配置信息以及數(shù)據(jù)庫本身的訪問權(quán)限信息。

說明

此選項(xiàng)僅適用于腳本文件。對于存檔文件,可以在調(diào)用pg_restore時(shí)指定該選項(xiàng)。

-E encoding--encoding=encoding

以指定的字符集編碼創(chuàng)建備份。默認(rèn)情況下,以當(dāng)前需要備份的數(shù)據(jù)庫編碼創(chuàng)建備份,您也可以將環(huán)境變量PGCLIENTENCODING的值設(shè)置為想要的備份編碼。

-F format--format=format

備份格式。可選以下任一格式:

  • pplain:輸出腳本文件(默認(rèn))。

  • ccustom:輸出適合作為pg_restore輸入的自定義格式存檔文件。默認(rèn)情況下,此格式的存檔文件是壓縮文件。

  • ddirectory:輸出適合作為pg_restore輸入的目錄格式的存檔文件。默認(rèn)情況下,此格式的存檔文件是壓縮文件,并且支持并行備份。

  • ttar:輸出適合作為pg_restore輸入的tar格式的存檔文件。tar格式的存檔文件不支持壓縮。另外,當(dāng)使用tar格式時(shí),在恢復(fù)數(shù)據(jù)期間無法更改表數(shù)據(jù)項(xiàng)的相對順序。

-f file--file=file

將備份數(shù)據(jù)發(fā)送到指定的文件。

  • 基于目錄備份格式時(shí),此參數(shù)必填,且指定的是目標(biāo)目錄而不是文件。

  • 基于其他文件備份格式時(shí),此參數(shù)可省略,默認(rèn)使用標(biāo)準(zhǔn)備份文件格式。

-j njobs--jobs=njobs

通過同時(shí)備份njobs個(gè)表來并行運(yùn)行備份。需要將此選項(xiàng)與目錄格式結(jié)合使用。

說明

并行備份之前,需要停止修改數(shù)據(jù)庫的進(jìn)程(DDL和DML)。

-n pattern--schema=pattern

僅備份與pattern匹配的模式。如果未指定此選項(xiàng),將備份目標(biāo)數(shù)據(jù)庫中的所有非系統(tǒng)模式。

說明
  • 當(dāng)指定-n時(shí),pg_dump不會(huì)備份所選模式可能依賴的任何其他數(shù)據(jù)庫對象。因此,無法保證備份特定模式的數(shù)據(jù)后,能夠成功地將數(shù)據(jù)恢復(fù)到空數(shù)據(jù)庫中。

  • 當(dāng)指定-n時(shí),pg_dump不會(huì)備份非模式對象(如Blob)的數(shù)據(jù)。如果需要備份這部分?jǐn)?shù)據(jù),可以在備份時(shí)添加 --blobs命令行選項(xiàng)。

-N pattern--exclude-schema=pattern

備份除pattern之外的其他模式。

說明
  • 如果-n-N同時(shí)出現(xiàn),備份時(shí)至少匹配一個(gè)-n模式而不匹配-N模式,

  • 如果只出現(xiàn)-N,備份時(shí)將排除與-N匹配的模式。

-o--oids

備份對象標(biāo)識(shí)符(OID)作為每個(gè)表數(shù)據(jù)的一部分。如果您的應(yīng)用程序以某種方式引用OID列(例如在一個(gè)外鍵約束中引用OID列),請使用此選項(xiàng)。否則,不使用此選項(xiàng)。

-O--no-owner

匹配原始數(shù)據(jù)庫時(shí),不需要設(shè)置對象的所有權(quán)。

說明

此選項(xiàng)僅適用于腳本文件。對于存檔文件,可以在調(diào)用pg_restore時(shí)指定該選項(xiàng)。

-s--schema-only

只備份對象模式,不備份數(shù)據(jù)。

-S username--superuser=username

禁用觸發(fā)器時(shí)使用的超級(jí)用戶名。僅在使用--disable-triggers時(shí)才使用該選項(xiàng)。

-t pattern--table=pattern

只備份與pattern匹配的表。可以通過編寫多個(gè)-t來選擇多張表,也可以通過在模式中寫入通配符來選擇多張表。

說明

指定-t時(shí),pg_dump不會(huì)嘗試備份所選表可能依賴的任何其他數(shù)據(jù)庫對象。因此,不能保證備份特定表后能夠成功地將數(shù)據(jù)恢復(fù)到空數(shù)據(jù)庫中。

-T pattern--exclude-table=pattern

不備份匹配pattern的表。可以多次指定-T來排除與多個(gè)模式匹配的表。

說明
  • 當(dāng)同時(shí)給出-t-T時(shí),備份時(shí)至少匹配一個(gè)-t而不匹配-T的表。

  • 如果只出現(xiàn)-T,備份時(shí)將排除與-T匹配的表。

-v--verbose

指定詳細(xì)模式。

-V--version

打印pg_dump版本并退出。

-x--no-privileges--no-acl

取消備份訪問權(quán)限(grant或revoke命令)。

-Z 0..9--compress=0..9

指定需要使用的壓縮級(jí)別。0表示未壓縮。

說明
  • 對于自定義存檔文件,則指定單個(gè)表數(shù)據(jù)段壓縮,且默認(rèn)為中等級(jí)別的壓縮。

  • 對于腳本文件,默認(rèn)不壓縮。當(dāng)設(shè)置非零壓縮級(jí)別時(shí),會(huì)導(dǎo)致整個(gè)輸出文件被壓縮。

--column-inserts和--attribute-inserts

將數(shù)據(jù)備份為具有顯式列名的INSERT命令。

INSERT INTO table (column, ...) VALUES ...

--disable-dollar-quoting

禁止對函數(shù)體使用美元引號(hào)。

--disable-triggers

臨時(shí)禁用目標(biāo)表上的觸發(fā)器。此選項(xiàng)僅在創(chuàng)建數(shù)據(jù)備份時(shí)有效。使用此選項(xiàng)時(shí),需要通過-S指定一個(gè)超級(jí)用戶。

說明

此選項(xiàng)僅適用于腳本文件。對于存檔文件,可以在調(diào)用pg_restore時(shí)指定該選項(xiàng)。

--enable-row-security

允許備份您有權(quán)限訪問的表的部分內(nèi)容。此選項(xiàng)僅在備份具有行安全性的表的內(nèi)容時(shí)才有效。

重要

如果使用此選項(xiàng),則可能還需要使用INSERT 進(jìn)行備份,因?yàn)榛謴?fù)數(shù)據(jù)期間的COPY FROM不支持行安全性。

--exclude-table-data=pattern

不備份與pattern匹配的表數(shù)據(jù)。 可以多次指定--exclude-table-data來排除與多個(gè)模式匹配的表。

說明

如果需要排除數(shù)據(jù)庫中所有表的數(shù)據(jù),請參見--schema only

--if-exists

使用條件命令(例如,添加IF EXISTS子句)清理數(shù)據(jù)庫對象。使用時(shí)需要同時(shí)指定--clean,否則此選項(xiàng)無效。

--inserts

將數(shù)據(jù)備份為INSERT命令。

重要

使用此選項(xiàng)后,如果在恢復(fù)數(shù)據(jù)時(shí)對數(shù)據(jù)進(jìn)行重新排序可能會(huì)執(zhí)行失敗。建議使用--column-inserts

--load-via-partition-root

備份表分區(qū)的數(shù)據(jù)時(shí),使用COPYINSERT命令。

說明

當(dāng)恢復(fù)使用此選項(xiàng)創(chuàng)建的存檔文件時(shí),建議謹(jǐn)慎使用并行恢復(fù)。

--lock-wait-timeout=timeout

指定獲取共享鎖的等待時(shí)間。

--no-comments

表示不備份注釋。

--no-publications

表示不備份出版物。

--no-security-labels

表示不備份安全標(biāo)簽。

--no-subscriptions

表示不備份訂閱。

--no-sync

表示不需要等待所有文件均安全寫入磁盤即返回?cái)?shù)據(jù)。

--no-synchronized-snapshots

表示在服務(wù)器上可以運(yùn)行pg_dump -j

--no-tablespaces

表示在默認(rèn)的表空間中創(chuàng)建所有對象。

說明

此選項(xiàng)僅適用于腳本文件。對于存檔文件,可以在調(diào)用pg_restore時(shí)指定該選項(xiàng)。

--no-unlogged-table-data

表示不備份未標(biāo)記表的內(nèi)容。

--quote-all-identifiers

表示強(qiáng)制引用所有標(biāo)識(shí)符。

--rows-per-insert=nrows

控制數(shù)據(jù)庫備份為INSERT命令時(shí)的最大行數(shù)。

--section=sectionname

表示只備份指定的sectionsection的名稱可以是pre-datadatapost-data,可以多次指定此選項(xiàng)以選擇多個(gè)section,默認(rèn)備份所有section

說明
  • data項(xiàng)包含實(shí)際的表數(shù)據(jù)、大型對象內(nèi)容和序列值。

  • post-data項(xiàng)包括索引、觸發(fā)器、規(guī)則和約束的定義,而不是已驗(yàn)證的檢查約束。

  • pre-data項(xiàng)包括所有其他數(shù)據(jù)定義項(xiàng)。

--serializable-deferrable

表示對備份使用一個(gè)可序列化事務(wù)。

說明
  • 如果使用pg_dump時(shí),讀寫事務(wù)處于活動(dòng)狀態(tài),則可能會(huì)延遲一段不確定的時(shí)間才開始執(zhí)行備份操作。

  • 如果使用pg_dump時(shí),讀寫事務(wù)沒有處于活動(dòng)狀態(tài),則此選項(xiàng)不會(huì)產(chǎn)生任何影響。

--snapshot=snapshotname

表示在備份數(shù)據(jù)庫時(shí)使用指定的同步快照。

--strict-names

表示每個(gè)模式(-n/ --schema)和表(-t/ --table)限定符至少要匹配備份的數(shù)據(jù)庫中的一個(gè)模式和表。

說明
  • 如果模式和表限定符沒有找到匹配項(xiàng),pg_dump即使沒有--strict-names,也會(huì)生成錯(cuò)誤。

  • 此選項(xiàng)對-N/--exclude schema-T/--exclude table--exclude table data無效。

  • 無法匹配任何對象的排除模式不會(huì)被當(dāng)作錯(cuò)誤。

--use-set-session-authorization

表示輸出SQL標(biāo)準(zhǔn)的SET SESSION AUTHORIZATION命令而不是ALTER OWNER命令。

-?--help

顯示關(guān)于pg_dump命令行的幫助信息。

注意事項(xiàng)

  • 當(dāng)選擇了僅用作數(shù)據(jù)備份且使用了--disable triggers選項(xiàng)的表時(shí),pg_dump會(huì)在插入數(shù)據(jù)之前發(fā)出禁用用戶表觸發(fā)器的命令,插入數(shù)據(jù)后發(fā)出重新啟用觸發(fā)器的命令。如果恢復(fù)中途被停止,系統(tǒng)目錄可能會(huì)停留在一種錯(cuò)誤狀態(tài)。

  • 備份文件恢復(fù)后,可運(yùn)行ANALYZE確保最佳性能。

  • 當(dāng)備份邏輯復(fù)制訂閱時(shí),pg_dump將生成使用connect=false選項(xiàng)的CREATE SUBSCRIPTION命令。如果涉及的主機(jī)已更改,則可能需要更改連接信息,在啟動(dòng)新的完整表拷貝之前需截?cái)嗄繕?biāo)表。

  • pg_dump在內(nèi)部執(zhí)行SELECT語句時(shí),如果運(yùn)行pg_dump遇到問題,需確保能夠使用psql等工具從數(shù)據(jù)庫中查詢信息。此外,確保libpq前端庫使用的任何默認(rèn)連接設(shè)置和環(huán)境變量都能正常使用。

  • pg_dump的數(shù)據(jù)庫活動(dòng)通常由統(tǒng)計(jì)收集器收集,如果不需要收集,可以通過PGOPTIONSALTER USER命令將參數(shù)track_counts設(shè)置為false

示例

  • 執(zhí)行以下命令,將名稱為mydb的數(shù)據(jù)庫備份到SQL腳本文件中:

    pg_dump mydb > db.sql
  • 執(zhí)行以下命令,將SQL腳本重新加載到名稱為newdb的(新創(chuàng)建的)數(shù)據(jù)庫中:

    psql -d newdb -f db.sql
  • 執(zhí)行以下命令,將數(shù)據(jù)庫備份到自定義格式的存檔文件中:

    pg_dump -Fc mydb > db.dump
  • 執(zhí)行以下命令,將數(shù)據(jù)庫備份到目錄格式的存檔文件中:

    pg_dump -Fd mydb -f dumpdir
  • 執(zhí)行以下命令,將數(shù)據(jù)庫與5個(gè)輔助作業(yè)并行備份到目錄格式的存檔文件中:

    pg_dump -Fd mydb -j 5 -f dumpdir
  • 執(zhí)行以下命令,將存檔文件重新加載到名稱為newdb的(新創(chuàng)建的)數(shù)據(jù)庫中:

    pg_restore -d newdb db.dump
  • 執(zhí)行以下命令,將存檔文件重新加載到備份文件的同一數(shù)據(jù)庫中,并清除該數(shù)據(jù)庫的當(dāng)前內(nèi)容:

    pg_restore -d postgres --clean --create db.dump
  • 執(zhí)行以下命令,備份名稱為mytab的單個(gè)表:

    pg_dump -t mytab mydb > db.sql
  • 執(zhí)行以下命令,備份detroit模式中名稱以emp開頭的所有表(名稱為employee_log的表除外):

    pg_dump -t 'detroit.emp*' -T detroit.employee_log mydb > db.sql
  • 執(zhí)行以下命令,備份名稱以eastwest開頭并以gsm結(jié)尾的所有模式(不包括名稱中含test的任何模式):

    pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' mydb > db.sql
  • 執(zhí)行以下命令,使用正則表達(dá)式表示法來合并開關(guān):

    pg_dump -n '(east|west)*gsm' -N '*test*' mydb > db.sql
  • 執(zhí)行以下命令,備份除名稱以ts_開頭的表以外的所有數(shù)據(jù)庫對象:

    pg_dump -T 'ts_*' mydb > db.sql
  • 如果需要在-t和相關(guān)開關(guān)中指定大寫或混合大小寫的名稱,您需要通過雙引號(hào)引用該名稱,否則它將被折疊為小寫。但是雙引號(hào)對于Shell命令來說是特殊的,因此必須反過來引用它們。因此,如果要轉(zhuǎn)儲(chǔ)大小寫混合名稱的單個(gè)表,請執(zhí)行以下命令:

    pg_dump -t "\"MixedCaseName\"" mydb > mytab.sql