Postgres初心者です。
教えてください。
pg_dumpコマンドでdump拡張しのバックアップファイルを生成し、
tarコマンドで****.tar.gzファイルに圧縮しました。
このtar.gzのファイルを直接リストアするコマンドがあれば
教えていただけないでしょうか?
-bash-3.2$pg_restore -U postgres -d (データベース名) < ****.tar.gz
と実行すると、以下のエラーメッセージが表示されます。
→pg_restore: [アーカイバ] 入力ファイルが有効なアーカイブではないようです。
-bash-3.2$gunzip -C ****.tar.gz | pg_restore -d (データベース名)
と実行すると、以下のエラーメッセージが表示されます。
→pg_restore: [tarアーカイバ] tarアーカイブ内でファイルtoc.dat用のファイルヘッダがありませんでした
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
tarコマンドで.tar.gzにした、ということは、 tarでアーカイブ(複数のファイルを一つの書庫に入れる。
無圧縮ZIPみたいなもの)した後、gzipで圧縮した状態になっています。pg_restore -U postgres -d (データベース名) < ****.tar.gz
では、その圧縮されたままの入力になるので、不正となります。
gunzip -C ****.tar.gz | pg_restore -d (データベース名)
これでも、 gzipの展開はされていますが、tar形式のアーカイブになっています。
元のダンプファイルではありません。
pg_restoreで使うためには、アーカイブの中にあるファイルを取り出す必要があります。
GNUtarの場合、 -Oオプションで標準出力に出力、というのがあるので
tar -O zxvf ****.tar.gz | pg_restore -d (データベース名)
でできるかと思います(実験はしていません)
本来のtar等、標準出力オプションが無い場合は、 tar.gzから元のダンプファイルをファイルに展開→そのファイルをpg_restore となります。
そもそも、tar+gzipでアーカイブして圧縮するのが間違いです。
単にgzipで圧縮すればいいでしょう。そうしていれば
gunzip -c ****.gz | pg_restore -d (データベース名)
で使えたはずです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Android tar.ファイルのインストールについて知りたいです 2 2022/07/23 15:34
- UNIX・Linux Linuxのtarコマンドで同一ディレクトリに解凍するコマンドは何でしょうか? 1 2022/04/25 12:59
- UNIX・Linux cpio使ってた人はtarが流行りだしてから焦ったり驚いたりしたか 1 2023/05/07 10:10
- その他(プログラミング・Web制作) Linuxについて質問です。 引数に指定されたアクセスログのファイルからアクセス数が多い順に上位3つ 1 2023/02/03 03:46
- UNIX・Linux Linux(Fedora30)のブートディスクの交換について 2 2023/05/16 13:17
- ソフトウェア Aimpに関する質問です。 1 2022/09/08 11:11
- その他(プログラミング・Web制作) linuxについて質問です 1 2023/02/06 19:55
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- Windows 10 ネットワークプリンターにファイルを直接送る方法・コマンドないですか?(´・ω・`) 3 2023/03/13 23:15
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows版 pg_dumpの結果をログ...
-
oracle spool SJIS → UTF-8
-
コマンドと関数の違い
-
AWSのcloud9で「 ls -l ~/.ssh/...
-
アクセスのフォームで10件づつ...
-
tar.gzファイルのリストアについて
-
Query OK, 0 rows affected
-
CentOS7でPostgreSQLのデータベ...
-
AS400でのライブラリ配下の全て...
-
InnoDB ClusterとGroup Replica...
-
shellからpostgresqlへの変数の...
-
psql ser -U postgresって何で...
-
OSQLの起動について
-
ヤフーショッピングでPayPay支...
-
ディスク上のサイズの乖離が大...
-
エクセルのデータをアクセスに...
-
複数カラムを跨いだCOUNTができ...
-
createdbでいきなりつまづいて...
-
HI-TECH Cのエラーについて
-
LinuxからWindowsへのリストア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
oracle spool SJIS → UTF-8
-
Windows版 pg_dumpの結果をログ...
-
tar.gzファイルのリストアについて
-
shellからpostgresqlへの変数の...
-
Query OK, 0 rows affected
-
CSVファイルをBULK INSERTでSQL...
-
ファイルに記述されている複数...
-
psql でのエラー出力について
-
OSQLの起動について
-
Oracle / UNIX ファイルコマン...
-
AWSのcloud9で「 ls -l ~/.ssh/...
-
date型に空白を入れるとエラー...
-
ACCESS VBA;コマンドボックス...
-
teraterm上でsqlplusにログイン...
-
PostgreSQL リストアエラー
-
アクセスのフォームで10件づつ...
-
psql ser -U postgresって何で...
-
SQL+Plusの訂正
-
Insert文 で 変数を使いたい
-
Oracle初心者です。 shutdownコ...
おすすめ情報