問題ID: 34472

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2020-5-5 21:38
fujii0401  一人前   投稿数: 23
pg_dumpコマンドについてなんですけど
この問題の正解の一つが
「任意の指定したテーブルや、スキーマをバックアップできる」

pg_dumpは指定するのがデータベース単位ですよね
この書き方ではオプションにテーブルやスキーマを設定でき、バックアップを取得できるような意味にとらえられませんか?

そもそもpg_dumpはデータベースにおける設定ファイルの内容以外のデータを取得できるという認識でいいですよね?
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-5-6 9:11
arashi1977  長老 居住地: 広島  投稿数: 1715
例えばこんな環境があったとして
$ psql -h localhost -U postgres
psql (12rc1)
Type "help" for help.

postgres=# \d
           List of relations
 Schema |    Name    | Type  |  Owner
--------+------------+-------+----------
 public | pingt_test | table | postgres
(1 row)

postgres=# \dt pingt_test
           List of relations
 Schema |    Name    | Type  |  Owner
--------+------------+-------+----------
 public | pingt_test | table | postgres
(1 row)

postgres=# select * from pingt_test;
 id | name  | comment
----+-------+---------
  1 | 34472 | pg_dump
(1 row)
「任意の指定したテーブルや、スキーマをバックアップできる」というのはこういうことです。ここではpostgresデータベースでのpingt_testテーブルだけを指定してバックアップしています。
$ pg_dump -h localhost -U postgres -t pingt_test
--
-- PostgreSQL database dump
--

-- Dumped from database version 12rc1
-- Dumped by pg_dump version 12rc1

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: pingt_test; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.pingt_test (
    id integer,
    name text,
    comment text
);


ALTER TABLE public.pingt_test OWNER TO postgres;

--
-- Data for Name: pingt_test; Type: TABLE DATA; Schema: public; Owner: postgres
--

COPY public.pingt_test (id, name, comment) FROM stdin;
1	34472	pg_dump
\.


--
-- PostgreSQL database dump complete
--
データを含まない、スキーマだけ(-s:schema only)も指定できます。
$ pg_dump -h localhost -U postgres -t pingt_test -s
--
-- PostgreSQL database dump
--

-- Dumped from database version 12rc1
-- Dumped by pg_dump version 12rc1

SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
SET standard_conforming_strings = on;
SELECT pg_catalog.set_config('search_path', '', false);
SET check_function_bodies = false;
SET xmloption = content;
SET client_min_messages = warning;
SET row_security = off;

SET default_tablespace = '';

SET default_table_access_method = heap;

--
-- Name: pingt_test; Type: TABLE; Schema: public; Owner: postgres
--

CREATE TABLE public.pingt_test (
    id integer,
    name text,
    comment text
);


ALTER TABLE public.pingt_test OWNER TO postgres;

--
-- PostgreSQL database dump complete
--

ですので、
引用:
この書き方ではオプションにテーブルやスキーマを設定でき、バックアップを取得できるような意味にとらえられませんか?
そのように捉えて問題ないと思うのですが、意図が違いますかね?
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2020-5-6 9:53
fujii0401  一人前   投稿数: 23
テーブル単位やスキーマー単位でのバックアップの例やオプションの記載がなかったのでできないものだと思っていましたがキチンとオプションがあるんですね

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.