pg12中pg_dump/pg_dumpall新增選項介紹

瀚高PG實驗室發表於2022-06-02

瀚高資料庫
目錄
文件用途
詳細資訊

文件用途
本文主要用於介紹與 pg10.5 相比,pg_dump/pg_dumpall 命令的新增選項介紹。

詳細資訊

一、pg_dump

1、新增選項

pg_dump 命令主要增加了以下選項

序號 選項 說明
1 –on-conflict-do-nothing 此選項自動將 ON CONFLICT DO NOTHING 子句分配給輸出 INSERT 語句。 必須在使用–inserts 選項或–column-inserts 選項指定。
2 –extra-float-digits 如果為此引數指定了整數值,則在使用 pg_dump 命令獲取資料之前執行 “SET extra_float_digits = 指定值” 語句。 轉儲檔案不包含 SET 語句。 可以指定的值的範圍是 - 15 至 3。如果指定了非數字值,則將其視為 0。
3 –rows-per-insert This option is used with the --inserts option. Multiple tuples can be inserted in a single INSERT statement. The range of values is 1 to 2,147,483,647.

2、示例

① --on-conflict-do-nothing

[postgres@host1 ~]$ pg_dump -t test --inserts --on-conflict-do-nothing---- PostgreSQL database dump--                -- Dumped from database version 12.4-- Dumped by pg_dump version 12.4                ......                ---- Name: test; Type: TABLE; Schema: public; Owner: postgres--                CREATE TABLE public.test (
    id integer NOT NULL,
    name text);                ALTER TABLE public.test OWNER TO postgres;                ---- Data for Name: test; Type: TABLE DATA; Schema: public; Owner: postgres--                INSERT INTO public.test VALUES (1, 'Li Ming') ON CONFLICT DO NOTHING;INSERT INTO public.test VALUES (2, 'Han Meimei') ON CONFLICT DO NOTHING;INSERT INTO public.test VALUES (3, 'Zhang Qiang') ON CONFLICT DO NOTHING;                ---- Name: test test_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres--                ALTER TABLE ONLY public.test    ADD CONSTRAINT test_pkey PRIMARY KEY (id);                ---- PostgreSQL database dump complete--

② --rows-per-insert

[postgres@host1 ~]$ pg_dump -t test2 --inserts --rows-per-insert=2---- PostgreSQL database dump--                -- Dumped from database version 12.4-- Dumped by pg_dump version 12.4                ......                -- Name: test2; Type: TABLE; Schema: public; Owner: postgres--                CREATE TABLE public.test2 (
    id integer NOT NULL,
    demark character varying(20));                ALTER TABLE public.test2 OWNER TO postgres;                ---- Data for Name: test2; Type: TABLE DATA; Schema: public; Owner: postgres--                INSERT INTO public.test2 VALUES
 (1, 'postgres'),
 (2, 'postgres');INSERT INTO public.test2 VALUES
 (3, 'postgres'),
 (4, 'postgres');INSERT INTO public.test2 VALUES
 (5, 'postgres'),
 (6, 'postgres');......

二、pg_dumpall

1、新增選項

pg_dumpall 命令主要增加了以下選項

序號 選項 說明
1 –extra-float-digits 如果為此引數指定了整數值,則在使用 pg_dump 命令獲取資料之前執行 “SET extra_float_digits = 指定值” 語句。 轉儲檔案不包含 SET 語句。 可以指定的值的範圍是 - 15 至 3。如果指定了非數字值,則將其視為 0。
2 –exclude-database 在 PostgreSQL 12 中,新增了–exclude-database 選項。 此選項指定要從備份中排除的資料庫。 指定多個資料庫時,請使用與 psql 命令相同的模式。 也可以多次指定相同的選項。
3 –oids 這個選項已經被移除.
4 增加註釋 註釋已新增到輸出檔案中,用於使用者設定(ALTER USER SET 語句)和資料庫設定。

2、示例

① --exclude-database

##排除單個資料庫                [postgres@host1 ~]$ pg_dumpall --exclude-database='test1' -f alldump.sql                
##排除多個名字相近資料庫                [postgres@host1 ~]$ pg_dumpall --exclude-database='test[12]' -f alldump.sql                
##排除多個名字完全不同資料庫                [postgres@host1 ~]$ pg_dumpall --exclude-database='a' --exclude-database='b' -f alldump.sql

②增加的註釋,以下內容部分會出現在 pg_dumpall 匯出的文字檔案中.

-- User Configurations                -- User Config {User_name}                -- Databases                -- Database {Database_name} dump


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994931/viewspace-2898630/,如需轉載,請註明出處,否則將追究法律責任。

相關文章