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データベースを今すぐ始めましょう!