顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業只做數據庫實訓和認證的品牌機構

微信公眾號新浪微博
免費咨詢電話:400-0909-964
當前位置: 網站首頁 > pg大講堂 > postgresql技術大講堂 - 第36講:postgresql邏輯備份

postgresql技術大講堂 - 第36講:postgresql邏輯備份

文章來源: 更新時間:2023/11/30 16:20:00

在線老師點擊咨詢:

最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!

我要咨詢


PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,內容包括對PG基礎的認知、包括安裝使用、包括角色權限、包括維護管理、、等內容,希望對熱愛PG、學習PG的同學們有幫助,歡迎持續關注CUUG PG技術大講堂。


第36講:PostgreSQL邏輯備份


第36講:12月02日(周六)19:30-20:30,往期公開課的文檔及視頻,聯系CUUG


內容1:邏輯備份概述

內容2:pg_dump使用

內容3:pg_dumpall使用

內容4:copy使用


PG導出導入工具


PG導出導入概述

· 可以使用這些實用程序執行以下操作:

歸檔歷史數據

保存表定義以防止用戶出錯

在計算機和數據庫之間或PostgreSQL服務器的不同版本之間移動數據

在數據庫之間傳輸數據


調用導出和導入程序的方法

命令行接口

其它管理工具


導出模式

· pg_dump只能備份單個數據庫,不會導出角色和表空間相關的信息,而且恢復的時候需要創建空數據庫。

· pg_dumpall可以備份所有數據庫,并且備份角色、表空間。

-F c 備份為二進制格式, 壓縮存儲. 并且可被 pg_restore 用于精細還原。

-F p 備份為文本, 大庫不推薦。


調用pg_dump

語法:

pg_dump [選項]... [數據庫名字]

示例:

pg_dump testdb > testdb.sql

pg_dump -F c -f testdb.dmp -C -E UTF8 -h 127.0.0.1 -U postgres testdb

pg_dump -F p -f testdb.sql -C -E UTF8 -h 127.0.0.1 -U postgres testdb


邏輯恢復

· 恢復順序

1.創建新表

2.導入數據

3.建立索引

4.觸發器已導入

5.在新表上啟用完整性約束

6.創建函數


· 恢復數據

文本格式備份恢復方式:

1、創建新數據庫

CREATE DATABASE new_db1;

2、恢復數據

psql new_db1 < testdb.sql

二進制格式備份恢復方式:

1、創建新數據庫

CREATE DATABASE new_db1;

2、恢復數據

pg_restore -d new_db1 testdb.dmp


二進制備份實現精細恢復

· 利用toc文件實現精細恢復

1、根據二進制備份文件生成 toc 文件

pg_restore -l -f testdb.toc testdb.dmp

2、修改 toc 文件,用‘;’號注釋掉不用還原的內容

203; 1259 40996 TABLE public dept postgres

204; 1259 41001 TABLE public emp postgres

;202; 1259 16391 TABLE public t1 postgres

2840; 0 40996 TABLE DATA public dept postgres

2841; 0 41001 TABLE DATA public emp postgres

;2839; 0 16391 TABLE DATA public t1 postgres

3、以toc文件做恢復

pg_restore -F c -L testdb.toc -d testdb testdb.dmp


其它導出導入技巧

· 利用管道符實現各種導出導入

導出并且壓縮

pg_dump testdb |gzip testdb.sql

解壓并且導入,壓縮文件不變,,導入到testdb數據庫:

gunzip -c testdb.sql.gz |psql testdb

導出后直接進行恢復,文件不落地,把testdb數據庫的表導入到testdb1:

pg_dump testdb| psql testdb1

并行導出與導入

pg_dump -Fd -j4 -f testdb.p.dump testdb

pg_restore -d testdb1 -j4 testdb.p.dump


其它備份恢復技巧

· 備份指定/排除的表

如果只想導出指定的表數據,可以使用-t參數,表名需要用兩個雙引號概括起來。

pg_dump -t ""departments"" -t ""employees"" testdb > testdb.sql

導出排除指定的表的數據庫

pg_dump -d testdb -T ""emp"" > testdb_ex_emp.sql


使用pg_dump實現主機間數據庫間遷移數據

· 文件不落地,實現數據庫遷移

1、配置兩個數據庫之間的信任關系(必須)

host all all 192.168.18.0/24 trust

2、在數據庫之間進行某個數據庫遷移

pg_dump -h pg1 -p 1922 -U postgres testdb|psql -h pg2 -p 5432 -U postgres testdb

3、遷移所有的數據庫到目標數據庫

pg_dumpall -h pg1 -p 1922 -U postgres |psql -h pg2 -p 5432 -U postgres

注意:

1、PG數據庫之間遷移無需配置dblink,只要指定主機名和端口即可。

2、由于用的是管道符,所以必須配置兩個數據庫遠程登錄信任關系。

3、遷移時兩個數據庫必須要有相同的表空間,需要提前創建。


copy概述

· 實現表與文件之間的交互

copy 命令用于數據庫中表與操作系統文件(和標準輸出、標準輸入)之間的相互拷貝,可以由表至文件,也可以由文件至表。

使用copy實現數據庫表和文本文件之間數據的遷移,非常方便,比Oracle的sqlloader易用性好。


copy語法

· 語法

文件到表

COPY table_name [ ( column ...] ) ]

FROM { 'filename' | command' | STDIN }

[ [ WITH ] ( option [, ] ) ]

表到文件

COPY { table_name column_name [, ...] ) ] | ( query ) }

TO { 'filename' | PROGRAM 'command' | STDOUT }

[ [ WITH ] ( option [, ...] ) ]


應用案例

· 文件到表

文件到表時,支持的文本內容格式有兩種,一種是tab制表符作為分隔符(不是空格);一種是逗號做為分隔符。

tab鍵作為分隔符:

1 a

2 b

3 c

逗號作為分隔符:

1,a,"I am students"

2,b,"I am teacher"

3,c,"I am boss"

· 文件到表

文件到表時,支持的文本內容格式有兩種,一種是tab制表符作為分隔符(不是空格);一種是逗號做為分隔符。

tab鍵作為分隔符:

\copy tab_name from /home/postgres/tab.txt;

逗號做為分隔符:

\copy tab_name from /home/postgres/tab.csv with csv;

· 表到文件

表到文件時,支持的文本內容格式有兩種,一種是tab制表符作為分隔符(不是空格);一種是逗號做為分隔符。

tab鍵作為分隔符:

\copy tab_name to /home/postgres/tab.txt;

逗號做為分隔符:

\copy tab_name to /home/postgres/tab.csv with csv;


CUUG PostgreSQL技術大講堂系列公開課,往期視頻及文檔,請聯系CUUG客服。

本文地址:http://m.mudan321.com/pgdjt/35758200309.html 轉載請注明!


PostgreSQL入門到精通 100+ 個學習資料

Oracle培訓機構

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細了解老師]

免費咨詢上課流程 客服在線中

陳衛星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優化 11年Ora...[詳細了解老師]

免費咨詢上課流程 客服在線中

選學校如何選擇適合自己的學校

CUUG -CHINA UNIX USER GROUP,是國際UNIX組織UNIFORUM的中國代表,是國內悠久的專業UNIX培訓機構,被譽為中國UNIX 的搖籃。多年來,以提高教學質量為本,強調素質教育,積極引進、消化國外的新技術,有效的結合中國....[詳情]

一站式服務(從入學到就業一幫到底)

入學

學習

就業

實操

食宿
地址:北京市海淀區田村山南路35號院17號樓
課程咨詢: 400-0909-964
企業服務:137 1818 8639(陳經理)
部分信息來源于網絡,如有錯誤請聯系指正!
版權所有@北京神腦資訊技術有限公司 (CUUG,中國UNIX用戶協會) Copyright 2016 ALL Rights Reserved 京ICP備11008061號-1