GNU/Linux >> Linux の 問題 >  >> Linux

PostgreSQLでデータベースをバックアップおよび復元する方法

PostgreSQLは無料でオープンソースであり、最も人気のあるリレーショナルデータベース管理システムの1つであり、何百万ものアプリケーションに電力を供給しています。実稼働環境でPostgreSQLを使用しているデータベース管理者の場合、データベースが失われた場合にシステムをすばやく復元できるように、データベースをバックアップすることが不可欠です。

このチュートリアルでは、LinuxでPostgreSQLデータベースをバックアップおよび復元する方法を示します。

前提条件

  • Atlantic.netクラウドプラットフォームにPostgreSQLがインストールされた新しいUbuntu20.04VPS。
  • PostgreSQLをまだインストールしていない場合は、このブログをチェックして、Postgresのインストールと構成の方法を学ぶことができます。
  • サーバーで構成されているrootパスワード。

1 –Atlantic.Netクラウドサーバーを作成する

まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu20.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。

Ubuntu 20.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。

apt-get update -y

2 –pg_dumpの基本構文を理解する

PostgreSQLには、バックアップを簡単に作成および復元するためのpg_dumpと呼ばれる組み込みユーティリティが付属しています。

pg_dumpコマンドの基本的な構文を以下に示します。

pg_dump [OPTION]... [DBNAME]

各オプションの簡単な説明を以下に示します:

-d、–dbname =DATABASENAME: バックアップするデータベースを指定するために使用されます。
-h、–host =HOSTNAME: データベースサーバーのホスト名を指定するために使用されます。
-U、–username =USERNAME: PostgreSQLのユーザー名を指定するために使用されます。
-w、–no-password: パスワードプロンプトを無視するために使用されます。
-p、–port =PORT: PostgreSQLサーバーのポート番号を指定するために使用されます。
-W、–password: パスワードプロンプトを強制するために使用されます。
–role =ROLENAME: ダンプの前に役割を設定します。

3 –単一のデータベースのバックアップと復元

pg_dumpユーティリティを使用して、単一のデータベースをバックアップおよび復元できます。単一のデータベースをバックアップするための基本的な構文を以下に示します。

pg_dump -d [source-database] -f [database_backup.sql]

たとえば、testdbという名前の単一のデータベースをバックアップし、testdb_backup.sqlという名前のバックアップファイルを生成するには、次のコマンドを実行します。

su - postgres
pg_dump -d testdb -f testdb_backup.sql

psqlコマンドを使用して単一のデータベースを復元することもできます。単一のデータベースを復元するための基本的な構文を以下に示します。

psql -d [destination_database] -f [database_backup.sql]

たとえば、testdb_backup.sqlという名前のバックアップファイルからtestdbという名前の単一のデータベースを復元するには、次のコマンドを実行します。

su - postgres
psql -d testdb -f testdb_backup.sql

次の出力が得られるはずです:

SET
SET
SET
SET
SET
 set_config
------------

(1 row)

SET
SET
SET
SET

エラーが発生した場合にデータベースの復元プロセスを停止する場合は、次のコマンドを実行します。

psql -d testdb --set ON_ERROR_STOP=on -f testdb_backup.sql

注: データベースを復元する前に、そのデータベースへのすべての接続を終了し、バックアップファイルを準備することをお勧めします。

すべてのデータベースのバックアップと復元

pg_dumpallユーティリティを使用して、PostgreSQLのすべてのデータベースをバックアップできます。以下に示すように、すべてのデータベースをバックアップするための基本的な構文:

pg_dumpall -f [alldatabase_backup.sql]

たとえば、PostgreSQLのすべてのデータベースをバックアップし、alldb_backup.sqlという名前のバックアップファイルを生成するには、次のコマンドを実行します。

pg_dumpall -f alldb_backup.sql

alldb_backup.sqlという名前のバックアップファイルからすべてのデータベースを復元するには、次のコマンドを実行します。

psql -f alldb_backup.sql

単一のテーブルのバックアップと復元

PostgreSQLでは、特定のデータベースから単一のテーブルをバックアップすることもできます。これは、次の構文を使用して実現できます。

pg_dump -d [source-database] -t [table_name]-f [dbtable_backup.sql]

たとえば、testdbという名前のデータベースからmytabという名前のテーブルをバックアップし、testdb_mytab.sqlという名前のバックアップファイルを生成するには、次のコマンドを実行します。

pg_dump -d testdb -t mytab  -f testdb_mytab_backup.sql

バックアップファイルからこのテーブルを復元する場合は、次のコマンドを実行します。

psql -d testdb -f testdb_mytab_backup.sql

圧縮データベースのバックアップと復元

PostgreSQLデータベースをバックアップし、それを.gz形式で圧縮して、バックアップサイズを減らすこともできます。

testdbという名前のデータベースのバックアップを取り、testdb_compressed.sql.gzという名前の圧縮バックアップファイルを生成するには、次のコマンドを実行します。

pg_dump -d testdb | gzip > testdb_compressed.sql.gz

次のコマンドを使用して、圧縮ファイルからバックアップを復元することもできます。

gunzip -c testdb_compressed.sql.gz | psql  -d testdb

結論

上記のガイドでは、PostgreSQLデータベースをバックアップおよび復元して、日常のデータベースバックアップ操作を実行するのに役立ついくつかの方法を学びました。 Atlantic.NetからのVPSホスティング上のPostgreSQLデータベースを今すぐ始めましょう!


Linux
  1. MySQL:mysqldumpを使用してデータベースをバックアップ(ダンプ)および復元する方法

  2. LinuxでSVNリポジトリをバックアップおよび復元する方法

  3. Postgresデータベースをバックアップおよび復元する方法

  1. RabbitMQデータと構成をバックアップおよび復元する方法

  2. コマンドラインを使用してMySQLデータベースをバックアップおよび復元する方法

  3. Pleskでバックアップを作成および復元する方法

  1. WindowsにPostgreSQLをダウンロードしてインストールする方法

  2. Pleskでサイトをバックアップおよび復元する方法

  3. mysqlhotcopy を使用した MySQL データベースのバックアップと復元