PostgreSQLデータベースをバックアップして復元する方法
生産環境では、 PostgreSQLデータベースがどんなに大きくても小さくても、定期的なバックアップはデータベース管理の重要な側面です。この記事では、PostgreSQLデータベースをバックアップして復元する方法を学びます。
既にPostgreSQLデータベースシステムを機能させていると仮定しています。そうでない場合は、以下の記事を読んで、LinuxディストリビューションにPostgreSQLをインストールしてください。
あなたも好きかもしれません:
- LinuxのソースからPostgreSQLをインストールする方法
- Ubuntu 20.04にPostgreSQLとPGADMIN4をインストールする方法
- Rhel 9にpostgresql 15とpgadminをインストールする方法
- centos 8にpostgresqlとpgadminをインストールする方法
- RHEL 8にPostgreSQLとPGADMINをインストールする方法
始めましょう…
単一のpostgreSQLデータベースをバックアップします
PostgreSQLは、データベースをバックアップするのに役立つPG_DUMPユーティリティを提供します。将来的に簡単に復元できる形式でSQLコマンドを備えたデータベースファイルを生成します。
PostGreSQLデータベースをバックアップするには、データベースサーバーにログインしてからPOSTGRESユーザーアカウントに切り替えて、次のようにPG_DUMPを実行することから始めます( tecmintdb
バックアップするデータベースの名前に置き換えます)。デフォルトでは、出力形式はプレーンテキストSQLスクリプトファイルです。
<code>$ pg_dump <strong>tecmintdb</strong> > <strong>tecmintdb.sql</strong></code>
PG_DUMPは、他の出力形式もサポートしています。 -F
オプションを使用して出力形式を指定できます。ここで、 c
カスタムフォーマットアーカイブファイル、 d
ディレクトリフォーマットアーカイブを意味し、 t
tarフォーマットアーカイブファイルを意味します。すべての形式はpg_restoreへの入力に適しています。
例えば:
<code>$ pg_dump -F c tecmintdb > tecmintdb.dump OR $ pg_dump -F t tecmintdb > tecmintdb.tar</code>
ディレクトリ出力形式に出力をダンプするには、 -f
フラグ(出力ファイルを指定するために使用される)を使用して、ファイルの代わりにターゲットディレクトリを指定します。 pg_dumpによって作成されるディレクトリは存在してはなりません。
<code>$ pg_dump -F d tecmintdb -f tecmintdumpdir</code>
すべてのpostgreSQLデータベースをバックアップするには、図のようにPG_Dumpallツールを使用します。
<code>$ pg_dumpall > all_pg_dbs.sql</code>
図のようにPSQLを使用してダンプを復元できます。
<code>$ psql -f all_pg_dbs.sql postgres</code>
PostgreSQLデータベースの復元
PostgreSQLデータベースを復元するには、 PSQLまたはPG_RESTOREユーティリティを使用できます。 PSQLはPG_DUMPによって作成されたテキストファイルを復元するために使用されますが、 PG_RESTOREは、PG_DUMPによって作成されたアーカイブからPG_DUMPによって作成されたアーカイブ(カスタム、TAR、またはディレクトリ)から作成されたアーカイブからPostgRESQLデータベースを復元するために使用されます。
プレーンテキストファイルダンプを復元する方法の例は次のとおりです。
<code>$ psql <strong>tecmintdb</strong> tecmintdb.sql</code>
上記のように、カスタムフォーマットダンプはPSQLのスクリプトではないため、図のようにPG_Restoreで復元する必要があります。
<code>$ pg_restore -d tecmintdb tecmintdb.dump OR $ pg_restore -d tecmintdb tecmintdb.tar OR $ pg_restore -d tecmintdb tecmintdumpdir</code>
圧縮PostgreSQLデータベースバックアップ
バックアップしているデータベースが大きく、かなり小さい出力ファイルを生成する場合は、圧縮ダンプを実行して、GZIPなどの圧縮ツールを介してPG_DUMPの出力をフィルタリングする必要がある場合:
<code>$ pg_dump <strong>tecmintdb</strong> | gzip > <strong>tecmintdb.gz</strong></code>
データベースが非常に大きい場合は、図のように-j
フラグを使用してnumber_of_jobsテーブルを同時にダンプすることで並行してダンプできます。
<code>$ pg_dump -F d -j 5 -f tecmintdumpdir</code>
パラレルダンプオプションはダンプの時間を短縮することに注意することが重要ですが、一方で、データベースサーバーの負荷も増加します。
バックアップリモートPostgreSQLデータベース
PG_DUMPは通常のPostgreSQLクライアントツールであり、リモートデータベースサーバーでの操作をサポートしています。リモートデータベースサーバーPG_DUMPを指定するには、コマンドラインオプション-h
を使用してリモートホストを指定し、 -p
データベースサーバーがリモートしているリモートポートを指定します。また、 -U
フラグを使用して、データベースのロール名を指定して接続します。
それぞれ10.10.20.10および5432とTecmintDBをリモートホストIPアドレスまたはホスト名、データベースポート、およびデータベース名に置き換えることを忘れないでください。
<code>$ pg_dump -U tecmint -h 10.10.20.10 -p 5432 tecmintdb > tecmintdb.sql</code>
リモートで接続するユーザーがデータベースにアクセスするために必要な特権を持っていることを確認し、適切なデータベース認証方法がデータベースサーバーで構成されていることを確認してください。そうしないと、次のスクリーンショットに表示されているようなエラーが表示されます。
また、データベースをあるサーバーから別のサーバーに直接ダンプし、図のようにPG_DUMPおよびPSQLユーティリティを使用することもできます。
<code>$ pg_dump -U tecmint -h 10.10.20.10 tecmintdb | pqsl -U tecmint -h 10.10.20.30 tecmintdb</code>
CRONジョブを使用したAuto Backup PostgreSQLデータベース
Cronジョブを使用して、定期的にバックアップを実行できます。 CRONジョブは、サーバーで実行するためにさまざまな種類のタスクをスケジュールするための一般的に使用される手段です。
次のように、 PostgreSQLデータベースのバックアップを自動化するようにCronジョブを構成できます。 PostgreSQLスーパーユーザーとして次のコマンドを実行する必要があることに注意してください。
<code>$ mkdir -p /srv/backups/databases</code>
次に、次のコマンドを実行してCrontabを編集して新しいCronジョブを追加します。
<code>$ crontab -e</code>
クロンタブの終わりに次の行をコピーして貼り付けます。上記で説明したダンプ形式のいずれかを使用できます。
<code>0 0 * * * pg_dump -U postgres tecmintdb > /srv/backups/postgres/tecmintdb.sql</code>
ファイルを保存して終了します。
Cronサービスは、再起動せずにこの新しいジョブの実行を自動的に開始します。そして、このクロンの仕事は真夜中に毎日実行され、バックアップタスクの最小ソリューションです。
Cronジョブのスケジュール方法の詳細については、LinuxでCronジョブを作成および管理する方法を参照してください
今のところそれだけです!バックアップデータをデータベース管理ルーチンの一部にすることをお勧めします。質問やコメントについては、以下のフィードバックフォームを使用してください。詳細については、PG_DUMPおよびPG_RESTOREリファレンスページを参照してください。
以上がPostgreSQLデータベースをバックアップして復元する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

linuxcanrunonModesthardwarewithspecificminimumrequirements.a1ghzprocessor(x86orx86_64)が必要であり、 amshouldbeatleast512mbforcommand-lineuseor2gbfordesktopenvironments.diskspacerequiresaminimumof5–10gb、25gbisbetterforad

CentosプロジェクトからCentos Streamへの焦点のシフトにより、現在はRhelの上流として機能するようになり、Centosを置き換えるためにいくつかのCentosの代替案が提案されています。

ターゲットハードディスクデバイス名( /dev /sdaなど)を確認して、システムディスクの誤って削除しないようにします。 2。sudoddif=/dev/zeroof =/dev/sdxbs = 1mStatus = 1mStatusを使用して、ほとんどのシナリオに適したフルディスクのゼロ値を上書きします。 3. 3つのランダムデータ上書きにSudoshred-V-N3/DEV/SDXを使用して、復元できないことを確認します。 4.オプションで、破壊的な書き込みテストのためにsudobadblocks-wsv/dev/sdxを実行します。最後に、sudohexdump-c/dev/sdx |ヘッドを使用して、それがすべてゼロで完全な安全な消去であるかを確認します。

Deepin OSは、Linux分布の重要な進化を表しています。明確にさせてください - 私は「革新的」に少し誇張したかもしれませんが、正直なところ、私が本当に感銘を受けたLinuxディストリビューションに遭遇してからしばらく経ちました。

自宅とオフィスでのインターネット接続の速度を常に確認する必要があります。これについてどうしますか? SpeedTest.netなどのWebサイトに移動し、テストを開始します。 WebブラウザにJavaScriptをロードし、pingに基づいて最適なサーバーを選択します

ポートノッキングは、サーバーで実行されているサービスへの正当なユーザーアクセスのみを可能にすることにより、ポートへのアクセスを制御する気の利いたテクニックです。接続試行の正しいシーケンスが行われると、喜んでファイアウォールが行われるように機能します

Linuxでコマンドヘルプを取得するには4つの方法があります。まず、使用して基本的な使用法を表示します。これは、コマンドの一般的なオプションとパラメーターを迅速に理解するのに適しています。第二に、Manを使用して完全なManページを表示し、詳細なコマンドの説明と例を提供します。第三に、情報を使用して構造化されたヘルプを表示します。これは、GCCやMakeなどの複雑なコマンドの情報ナビゲーションに適しています。第4に、Linux China、Stackoverflow、その他のプラットフォームなどのネットワークリソースとコミュニティを参照して、中国の材料を取得したり、特定の問題を解決したりします。初心者が - ヘルプとマンから段階的にそれを習得することをお勧めします。

Linuxのユーザーが一般的に使用するUserAddまたはAdduserコマンドを追加します。 1. userAddを使用する場合、パスワードとホームディレクトリを手動で設定する必要があります。 -mパラメーターを追加して、ホームディレクトリを作成します。 2。-s、-g、および-uなどのパラメーターを使用して、シェル、グループ、およびUIDを指定できます。 3. Adduserはインタラクティブなコマンドであり、初心者が構成を自動的に完了するのに適しています。 4。権限、ユーザー名の一意性、およびホームディレクトリの権限に注意してください。 5。ユーザーデルを使用して、誤ってユーザーとホームディレクトリを削除できます。これらの重要なポイントをマスターすると、ユーザーを効率的かつ安全に管理できます。
