成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Postgresql 備份與恢復(fù)

阿羅 / 2930人閱讀

摘要:指定要用于查找的口令文件的名稱。前四個字段可以是確定的字面值,也可以使用通配符匹配所有。利用環(huán)境變量引用的文件權(quán)限也要滿足這個要求,否則同樣會被忽略。在上,該文件被假定存儲在一個安全的目錄中,因此不會進(jìn)行特別的權(quán)限檢查。

pg_dump

pg_dump 把一個數(shù)據(jù)庫轉(zhuǎn)儲為純文本文件或者是其它格式.

用法:

pg_dump [選項]... [數(shù)據(jù)庫名字]

一般選項:

  -f, --file=FILENAME          輸出文件或目錄名
  -F, --format=c|d|t|p         輸出文件格式 (定制, 目錄, tar)
                               明文 (默認(rèn)值))
  -j, --jobs=NUM               執(zhí)行多個并行任務(wù)進(jìn)行備份轉(zhuǎn)儲工作
  -v, --verbose                詳細(xì)模式
  -V, --version                輸出版本信息,然后退出
  -Z, --compress=0-9           被壓縮格式的壓縮級別
  --lock-wait-timeout=TIMEOUT  在等待表鎖超時后操作失敗
  --no-sync                    do not wait for changes to be written safely to disk
  -?, --help                   顯示此幫助, 然后退出

控制輸出內(nèi)容選項:

  -a, --data-only              只轉(zhuǎn)儲數(shù)據(jù),不包括模式
  -b, --blobs                  在轉(zhuǎn)儲中包括大對象
  -B, --no-blobs               exclude large objects in dump
  -c, --clean                  在重新創(chuàng)建之前,先清除(刪除)數(shù)據(jù)庫對象
  -C, --create                 在轉(zhuǎn)儲中包括命令,以便創(chuàng)建數(shù)據(jù)庫
  -E, --encoding=ENCODING      轉(zhuǎn)儲以ENCODING形式編碼的數(shù)據(jù)
  -n, --schema=SCHEMA          只轉(zhuǎn)儲指定名稱的模式
  -N, --exclude-schema=SCHEMA  不轉(zhuǎn)儲已命名的模式
  -o, --oids                   在轉(zhuǎn)儲中包括 OID
  -O, --no-owner               在明文格式中, 忽略恢復(fù)對象所屬者

  -s, --schema-only            只轉(zhuǎn)儲模式, 不包括數(shù)據(jù)
  -S, --superuser=NAME         在明文格式中使用指定的超級用戶名
  -t, --table=TABLE            只轉(zhuǎn)儲指定名稱的表
  -T, --exclude-table=TABLE    不轉(zhuǎn)儲指定名稱的表
  -x, --no-privileges          不要轉(zhuǎn)儲權(quán)限 (grant/revoke)
  --binary-upgrade             只能由升級工具使用
  --column-inserts             以帶有列名的INSERT命令形式轉(zhuǎn)儲數(shù)據(jù)
  --disable-dollar-quoting     取消美元 (符號) 引號, 使用 SQL 標(biāo)準(zhǔn)引號
  --disable-triggers           在只恢復(fù)數(shù)據(jù)的過程中禁用觸發(fā)器
  --enable-row-security        啟用行安全性(只轉(zhuǎn)儲用戶能夠訪問的內(nèi)容)
  --exclude-table-data=TABLE   不轉(zhuǎn)儲指定名稱的表中的數(shù)據(jù)
  --if-exists              當(dāng)刪除對象時使用IF EXISTS
  --inserts                    以INSERT命令,而不是COPY命令的形式轉(zhuǎn)儲數(shù)據(jù)
  --no-publications            do not dump publications
  --no-security-labels         不轉(zhuǎn)儲安全標(biāo)簽的分配
  --no-subscriptions           do not dump subscriptions
  --no-synchronized-snapshots  在并行工作集中不使用同步快照
  --no-tablespaces             不轉(zhuǎn)儲表空間分配信息
  --no-unlogged-table-data     不轉(zhuǎn)儲沒有日志的表數(shù)據(jù)
  --quote-all-identifiers      所有標(biāo)識符加引號,即使不是關(guān)鍵字
  --section=SECTION            備份命名的節(jié) (數(shù)據(jù)前, 數(shù)據(jù), 及 數(shù)據(jù)后)
  --serializable-deferrable   等到備份可以無異常運行
  --snapshot=SNAPSHOT          為轉(zhuǎn)儲使用給定的快照
  --strict-names               要求每個表和/或schema包括模式以匹配至少一個實體
  --use-set-session-authorization
                               使用 SESSION AUTHORIZATION 命令代替
                ALTER OWNER 命令來設(shè)置所有權(quán)

聯(lián)接選項:

  -d, --dbname=DBNAME       對數(shù)據(jù)庫 DBNAME備份
  -h, --host=主機(jī)名        數(shù)據(jù)庫服務(wù)器的主機(jī)名或套接字目錄
  -p, --port=端口號        數(shù)據(jù)庫服務(wù)器的端口號
  -U, --username=名字      以指定的數(shù)據(jù)庫用戶聯(lián)接
  -w, --no-password        永遠(yuǎn)不提示輸入口令
  -W, --password           強(qiáng)制口令提示 (自動)
  --role=ROLENAME          在轉(zhuǎn)儲前運行SET ROLE

如果沒有提供數(shù)據(jù)庫名字, 那么使用 PGDATABASE 環(huán)境變量的數(shù)值.

psql

psql是PostgreSQL 的交互式客戶端工具。
使用方法:

psql [選項]... [數(shù)據(jù)庫名稱 [用戶名稱]]

通用選項:

  -c,--command=命令        執(zhí)行單一命令(SQL或內(nèi)部指令)然后結(jié)束
 -d, --dbname=數(shù)據(jù)庫名稱   指定要連接的數(shù)據(jù)庫 (默認(rèn):"l1xnan")
  -f, --file=文件名      從文件中執(zhí)行命令然后退出
  -l, --list             列出所有可用的數(shù)據(jù)庫,然后退出
  -v, --set=, --variable=NAME=VALUE
                           設(shè)置psql變量NAME為VALUE
                           (例如,-v ON_ERROR_STOP=1)
  -V, --version            輸出版本信息, 然后退出
  -X, --no-psqlrc         不讀取啟動文檔(~/.psqlrc)
  -1 ("one"), --single-transaction
                          作為一個單一事務(wù)來執(zhí)行命令文件(如果是非交互型的)
  -?, --help[=options]     顯示此幫助,然后退出
      --help=commands      列出反斜線命令,然后退出
      --help=variables     列出特殊變量,然后退出

輸入和輸出選項:

  -a, --echo-all          顯示所有來自于腳本的輸入
  -b, --echo-errors        回顯失敗的命令
  -e, --echo-queries      顯示發(fā)送給服務(wù)器的命令
 -E, --echo-hidden        顯示內(nèi)部命令產(chǎn)生的查詢
  -L, --log-file=文件名  將會話日志寫入文件
  -n, --no-readline       禁用增強(qiáng)命令行編輯功能(readline)
  -o, --output=FILENAME 將查詢結(jié)果寫入文件(或 |管道)
  -q, --quiet             以沉默模式運行(不顯示消息,只有查詢結(jié)果)
  -s, --single-step       單步模式 (確認(rèn)每個查詢)
  -S, --single-line        單行模式 (一行就是一條 SQL 命令)

輸出格式選項 :

 -A, --no-align           使用非對齊表格輸出模式
  -F, --field-separator=STRING
             為字段設(shè)置分隔符,用于不整齊的輸出(默認(rèn):"|")
  -H, --html             HTML 表格輸出模式
  -P, --pset=變量[=參數(shù)]    設(shè)置將變量打印到參數(shù)的選項(查閱 pset 命令)
  -R, --record-separator=STRING
             為不整齊的輸出設(shè)置字錄的分隔符(默認(rèn):換行符號)
  -t, --tuples-only      只打印記錄i
  -T, --table-attr=文本   設(shè)定 HTML 表格標(biāo)記屬性(例如,寬度,邊界)
  -x, --expanded           打開擴(kuò)展表格輸出
  -z, --field-separator-zero
                           為不整齊的輸出設(shè)置字段分隔符為字節(jié)0
  -0, --record-separator-zero
                           為不整齊的輸出設(shè)置記錄分隔符為字節(jié)0

聯(lián)接選項:

  -h, --host=主機(jī)名        數(shù)據(jù)庫服務(wù)器主機(jī)或socket目錄(默認(rèn):"本地接口")
  -p, --port=端口        數(shù)據(jù)庫服務(wù)器的端口(默認(rèn):"5432")
  -U, --username=用戶名    指定數(shù)據(jù)庫用戶名(默認(rèn):"l1xnan")
  -w, --no-password       永遠(yuǎn)不提示輸入口令
  -W, --password           強(qiáng)制口令提示 (自動)

更多信息,請在psql中輸入 ?(用于內(nèi)部指令)或者 help(用于SQL命令),或者參考PostgreSQL文檔中的psql章節(jié).

pg_restore

pg_restore 從一個歸檔中恢復(fù)一個由 pg_dump 創(chuàng)建的 PostgreSQL 數(shù)據(jù)庫.

用法:

pg_restore [選項]... [文件名]

一般選項:

  -d, --dbname=名字        連接數(shù)據(jù)庫名字
  -f, --file=文件名        輸出文件名
  -F, --format=c|d|t       備份文件格式(應(yīng)該自動進(jìn)行)
  -l, --list               打印歸檔文件的 TOC 概述
  -v, --verbose            詳細(xì)模式
  -V, --version            輸出版本信息, 然后退出
  -?, --help               顯示此幫助, 然后退出

恢復(fù)控制選項:

  -a, --data-only             只恢復(fù)數(shù)據(jù), 不包括模式
  -c, --clean                  在重新創(chuàng)建之前,先清除(刪除)數(shù)據(jù)庫對象
  -C, --create                 創(chuàng)建目標(biāo)數(shù)據(jù)庫
  -e, --exit-on-error          發(fā)生錯誤退出, 默認(rèn)為繼續(xù)
  -I, --index=NAME             恢復(fù)指定名稱的索引
  -j, --jobs=NUM               執(zhí)行多個并行任務(wù)進(jìn)行恢復(fù)工作
  -L, --use-list=FILENAME      從這個文件中使用指定的內(nèi)容表排序
                               輸出
  -n, --schema=NAME            在這個模式中只恢復(fù)對象
  -N, --exclude-schema=NAME    do not restore objects in this schema
  -O, --no-owner               不恢復(fù)對象所屬者
  -P, --function=NAME(args)    恢復(fù)指定名字的函數(shù)
  -s, --schema-only           只恢復(fù)模式, 不包括數(shù)據(jù)
  -S, --superuser=NAME         使用指定的超級用戶來禁用觸發(fā)器
  -t, --table=NAME             restore named relation (table, view, etc.)
  -T, --trigger=NAME          恢復(fù)指定名字的觸發(fā)器
  -x, --no-privileges          跳過處理權(quán)限的恢復(fù) (grant/revoke)
  -1, --single-transaction     作為單個事務(wù)恢復(fù)
  --disable-triggers           在只恢復(fù)數(shù)據(jù)的過程中禁用觸發(fā)器
  --enable-row-security        啟用行安全性
  --if-exists              當(dāng)刪除對象時使用IF EXISTS
  --no-data-for-failed-tables  對那些無法創(chuàng)建的表不進(jìn)行
                               數(shù)據(jù)恢復(fù)
  --no-publications            do not restore publications
  --no-security-labels         不恢復(fù)安全標(biāo)簽信息
  --no-subscriptions           do not restore subscriptions
  --no-tablespaces             不恢復(fù)表空間的分配信息
  --section=SECTION            恢復(fù)命名節(jié) (數(shù)據(jù)前、數(shù)據(jù)及數(shù)據(jù)后)
  --strict-names               要求每個表和/或schema包括模式以匹配至少一個實體
  --use-set-session-authorization
                               使用 SESSION AUTHORIZATION 命令代替
                ALTER OWNER 命令來設(shè)置所有權(quán)

聯(lián)接選項:

  -h, --host=主機(jī)名        數(shù)據(jù)庫服務(wù)器的主機(jī)名或套接字目錄
  -p, --port=端口號        數(shù)據(jù)庫服務(wù)器的端口號
  -U, --username=名字      以指定的數(shù)據(jù)庫用戶聯(lián)接
  -w, --no-password        永遠(yuǎn)不提示輸入口令
  -W, --password           強(qiáng)制口令提示 (自動)
  --role=ROLENAME          在恢復(fù)前執(zhí)行SET ROLE操作

選項 -I, -n, -P, -t, -T, 以及 --section 可以組合使用和指定
多次用于選擇多個對象.

如果沒有提供輸入文件名, 則使用標(biāo)準(zhǔn)輸入.

自動備份 .pgpass

在連接 PostgreSQL 數(shù)據(jù)庫時,如果想不用手動輸入密碼,官方利用密碼文件(Password File)提供了一種解決方案:

Unix/Linux 在用戶目錄創(chuàng)建一個 ~/.pgpass 隱藏文件或者是創(chuàng)建一個環(huán)境變量 PGPASSFILE 引用一個含有密碼信息的文件(文件內(nèi)容同 .pgpass 文件,此處文件名可隨意,隱不隱藏都行)

Windows 對應(yīng)的是 %APPDATA%postgresqlpgpass.conf 文件( %APPDATA% 指的是用戶配置中的應(yīng)用數(shù)據(jù)子目錄)。

PGPASSFILE 指定要用于查找的口令文件的名稱。如果沒有設(shè)置,默認(rèn)為 ~/.pgpass

該文件記錄著連接數(shù)據(jù)庫需要的所有信息,按下面數(shù)據(jù)格式,每行一條記錄信息:

hostname:port:database:username:password

該文件中可以有注釋內(nèi)容,注釋符號是 # 。
前四個字段可以是確定的字面值,也可以使用通配符 * 匹配所有。
連接數(shù)據(jù)庫的時候,系統(tǒng)自動從前到后遍歷該文件,使用最先匹配到的記錄,因此,當(dāng)你在文件中使用了通配符 * 的時候,應(yīng)該優(yōu)先把最具體的信息放在文件的最前面。

如果記錄信息中包含 : 這兩個符號,需要對其進(jìn)行轉(zhuǎn)義,就是在字符前面加轉(zhuǎn)義符號 。

在 Unix/Linux 系統(tǒng)中 .pgpass 文件權(quán)限只能對用戶自己開放,不能對用戶組和其他人開放,就是說 .pgpass 文件對用戶組和其他人是"不可讀,不可寫,不可執(zhí)行"的,通常會賦予 .pgpass 文件權(quán)限 600 ,命令如下:

chmod 0600 ~/.pgpass

如果任何一個權(quán)限對用戶組或其他人開放了,該文件就會被忽略。

利用環(huán)境變量 PGPASSFILE 引用的文件權(quán)限也要滿足這個要求,否則同樣會被忽略。
在 Windows 上,該文件被假定存儲在一個安全的目錄中,因此不會進(jìn)行特別的權(quán)限檢查。

至此,數(shù)據(jù)庫對應(yīng)的 .pgpass 文件設(shè)置完成,以后再連接數(shù)據(jù)庫就不需要手動輸入密碼了,Shell Script 也能夠?qū)崿F(xiàn)真正意義上的自動化管理。

pg_dump --clean -U  -d  -T  | gzip > example_db.bak
PGPASSWORD 環(huán)境變量
export PGPASSWORD="123456"
pg_dump  -U test testdb > /backup/testdb.bak

參見:

PostgreSQL 自動輸入密碼

官方文檔:口令文件

官方文檔:相關(guān)環(huán)境變量

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/38978.html

相關(guān)文章

  • 新書推薦 |《PostgreSQL實戰(zhàn)》出版(提供樣章下載)

    摘要:作者譚峰張文升出版日期年月頁數(shù)頁定價元本書特色中國開源軟件推進(jìn)聯(lián)盟分會特聘專家撰寫,國內(nèi)多位開源數(shù)據(jù)庫專家鼎力推薦。張文升中國開源軟件推進(jìn)聯(lián)盟分會核心成員之一。 很高興《PostgreSQL實戰(zhàn)》一書終于出版,本書大體上系統(tǒng)總結(jié)了筆者 PostgreSQL DBA 職業(yè)生涯的經(jīng)驗總結(jié),本書的另一位作者張文升擁有豐富的PostgreSQL運維經(jīng)驗,目前就職于探探科技任首席PostgreS...

    Martin91 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<