常見選項(xiàng)
- -a --data-only
只轉(zhuǎn)儲(chǔ)數(shù)據(jù)蒸矛,而不轉(zhuǎn)儲(chǔ)模式(數(shù)據(jù)定義)瀑罗。表數(shù)據(jù)、大對象和序列值都會(huì)被轉(zhuǎn)儲(chǔ)雏掠。
- -c --clean
在輸出創(chuàng)建數(shù)據(jù)庫對象的命令之前輸出清除(刪除)它們的命令 (除非也指定了--if-exists斩祭,如果任何對象不存在于 目的數(shù)據(jù)庫中,恢復(fù)可能會(huì)產(chǎn)生一些傷害性的錯(cuò)誤消息)乡话。
這個(gè)選項(xiàng)只對純文本格式有意義摧玫。對于歸檔格式,你可以在調(diào)用pg_restore時(shí)指定該選項(xiàng)绑青。
- -E --encoding=encoding
以指定的字符集編碼創(chuàng)建轉(zhuǎn)儲(chǔ)诬像。
- -f --file=file
將輸出發(fā)送到指定文件。
*-F --format=format
選擇輸出的格式闸婴。
[p 輸出一個(gè)純文本形式的SQL腳本文件(默認(rèn)值)]
[c 輸出一個(gè)適合于作為pg_restore輸入的自定義格式歸檔坏挠。和目錄輸出格式一起,這是最靈活的輸出格式邪乍,它允許在恢復(fù)時(shí)手動(dòng)選擇和排序已歸檔的項(xiàng)降狠。這種格式在默認(rèn)情況還會(huì)被壓縮。]
[d溺欧、t]
- -j --jobs=njobs
通過同時(shí)歸檔njobs個(gè)表來運(yùn)行并行轉(zhuǎn)儲(chǔ)喊熟。這個(gè)選項(xiàng)縮減了轉(zhuǎn)儲(chǔ)的時(shí)間,但是它也增加了數(shù)據(jù)庫服務(wù)器上的負(fù)載姐刁。你只能和目錄輸出格式[d]一起使用這個(gè)選項(xiàng)芥牌,因?yàn)檫@是唯一一種讓多個(gè)進(jìn)程能在同一時(shí)間寫其數(shù)據(jù)的輸出格式。
- -n --schema=schema
只轉(zhuǎn)儲(chǔ)匹配schema的模式聂使,這會(huì)選擇模式本身以及它所包含的所有對象壁拉。當(dāng)沒有指定這個(gè)選項(xiàng)時(shí)谬俄,目標(biāo)數(shù)據(jù)庫中所有非系統(tǒng)模式都將被轉(zhuǎn)儲(chǔ)。多個(gè)模式可以通過書寫多個(gè)-n開關(guān)來選擇弃理。
- -N --exclude-schema=schema
不轉(zhuǎn)儲(chǔ)匹配schema模式的任何模式溃论。該模式被根據(jù)-n所用的相同規(guī)則被解釋。-N可以被給定多次來排除匹配幾個(gè)模式中任意一個(gè)的模式痘昌。
當(dāng)-n和-N都被給定時(shí)钥勋,該行為是只轉(zhuǎn)儲(chǔ)匹配至少一個(gè)-n開關(guān)但是不匹配-N開關(guān)的模式。如果只有-N而沒有-n辆苔,那么匹配-N的模式會(huì)被從一個(gè)正常轉(zhuǎn)儲(chǔ)中排除算灸。
- -s --schema-only
只轉(zhuǎn)儲(chǔ)對象定義(模式),而非數(shù)據(jù)驻啤。這個(gè)選項(xiàng)是--data-only的逆選項(xiàng)菲驴。
- -t --table=table
只轉(zhuǎn)儲(chǔ)名字匹配table的表,“table”還可以包括視圖骑冗、物化視圖赊瞬、序列和外部表。通過寫多個(gè)-t開關(guān)可以選擇多個(gè)表贼涩。
- -T --exclude-table=table
不轉(zhuǎn)儲(chǔ)匹配table模式的任何表巧涧。該模式被根據(jù)-t所用的相同規(guī)則被解釋。-T可以被給定多次來排除匹配幾個(gè)模式中任意一個(gè)的模式磁携。
當(dāng)-t和-T都被給定時(shí)褒侧,該行為是只轉(zhuǎn)儲(chǔ)匹配至少一個(gè)-t開關(guān)但是不匹配-T開關(guān)的表良风。如果只有-T而沒有-t谊迄,那么匹配-T的表會(huì)被從一個(gè)正常轉(zhuǎn)儲(chǔ)中排除。
- -Z 0..9 --compress=0..9
指定要使用的壓縮級別烟央。零意味著不壓縮统诺。對于自定義歸檔格式,這會(huì)指定個(gè)體表數(shù)據(jù)段的壓縮疑俭,并且默認(rèn)是進(jìn)行中等級別的壓縮粮呢。對于純文本輸出,設(shè)置一個(gè)非零壓縮級別會(huì)導(dǎo)致整個(gè)輸出文件被壓縮钞艇,就好像它被gzip處理過一樣啄寡,但是默認(rèn)是不壓縮。tar 歸檔格式當(dāng)前完全不支持壓縮哩照。
- --if-exists
時(shí)間條件性命令(即增加一個(gè)IF EXISTS子句)來清除數(shù)據(jù)庫和其他對象挺物。 只有同時(shí)指定了--clean時(shí),這個(gè)選項(xiàng)才可用飘弧。
- -d --dbname=dbname
指定要連接到的數(shù)據(jù)庫名识藤。
- -h --host=host
指定服務(wù)器正在運(yùn)行的機(jī)器的主機(jī)名砚著。
- -p --port=port
- -W --password
強(qiáng)制pg_dump在連接到一個(gè)數(shù)據(jù)庫之前提示要求一個(gè)口令。
pg_dump實(shí)踐
- 備份數(shù)據(jù)庫結(jié)構(gòu)
su - postgres
pg_dump -Fc -s -f testdbschema.sql testdb
- 備份數(shù)據(jù)庫數(shù)據(jù)
su - postgres
pg_dump -Fc -a -f testdbdata.sql testdb
- 備份數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)
su - postgres
pg_dump -Fc -f testdbschemadata.sql testdb
- 備份數(shù)據(jù)庫中指定表結(jié)構(gòu)
pg_dump -Fc -s -t citycode -f citycode_tab.sql testdb
- 備份數(shù)據(jù)庫中指定表數(shù)據(jù)
pg_dump -Fc -a -t citycode -f citycode_data.sql testdb
- 備份數(shù)據(jù)庫中指定表(結(jié)構(gòu)和數(shù)據(jù))
pg_dump -Fc -t citycode -f citycode_tabdata.sql testdb
pg_restore實(shí)踐
- 恢復(fù)數(shù)據(jù)結(jié)構(gòu)(only schema)
su - postgres
pg_restore -s -d testdb testdbschema.sql
- 恢復(fù)數(shù)據(jù)庫數(shù)據(jù)(only data)
su - postgres
pg_restore -a -d testdb testdbdata.sql
- 恢復(fù)數(shù)據(jù)庫結(jié)構(gòu)和數(shù)據(jù)(schema and data)
su - postgres
pg_restore -d testdb testdbschemadata.sql
pg_restore -s -t citycode -d testdb citycode_schema.sql
pg_restore -a -t citycode -d testdb citycode_data.sql
- 恢復(fù)表(結(jié)構(gòu)和數(shù)據(jù))
pg_restore -t citycode -d testdb citycode_schemadata.sql