ホームページ  >  記事  >  コンピューターのチュートリアル  >  PostgreSQL マスター/スレーブ レプリケーション ソリューション

PostgreSQL マスター/スレーブ レプリケーション ソリューション

王林
王林転載
2024-03-16 15:07:121020ブラウズ

PostgreSQL 主从复制方案

PostgreSQL は、データのバックアップ、障害回復、負荷分散に使用できるさまざまなマスター/スレーブ レプリケーション スキームをサポートしています。以下は一般的なマスター/スレーブ レプリケーション スキームであり、ニーズに応じて適切な方法を選択できます。

  1. メインデータベースを構成します:

    • プライマリ データベース サーバーで、PostgreSQL がインストールされ、正しく構成されていることを確認します。
    • メインデータベースの設定ファイルpostgresql.confを編集し、レプリケーション機能を有効にします。次のパラメータを設定します:

      wal_level = レプリカマックス_wal_senders = 10
    • pg_hba.conf ファイルを編集して、スレーブ サーバーがマスター サーバーに接続できるようにします。次の行を追加します:

      ホスト レプリケーション <スレーブ サーバー IP アドレス> trust
    • メイン データベース サーバーを再起動して、構成を有効にします。
  2. スレーブデータベースの作成:

    • スレーブ データベース サーバーで、PostgreSQL がインストールされ、正しく構成されていることを確認します。
    • セカンダリ データベースの構成ファイル postgresql.conf で、レプリケーション機能を有効にします。次のパラメータを設定します:

      wal_level = レプリカ
    • メイン データベースと同じデータ ディレクトリを作成し、それが空であることを確認します。
    • スレーブ データベースの pg_hba.conf ファイルに次の行を追加して、スレーブ サーバーがスレーブ サーバーに接続できるようにします。

      ホスト レプリケーション トラスト
      
      
    • スレーブ データベース サーバーを再起動して、構成を有効にします。
  3. マスター/スレーブ レプリケーションの構成:

    • プライマリ データベース サーバーで、レプリケーション用のユーザー ロールを作成します。 psql ターミナルで次のコマンドを実行します:

      CREATE ROLE replicator REPLICATION LOGIN CONNECTION LIMIT 10 ENCRYPTED PASSWORD 'password';
      「パスワード」を実際のパスワードに置き換えてください。 

    • プライマリ データベース サーバーで、レプリケーション スロットを作成します。 psql ターミナルで次のコマンドを実行します:

      SELECT * FROM pg_create_physical_replication_slot('replication_slot_name');
      「replication_slot_name」を実際のレプリケーション スロット名に置き換えることに注意してください。 

    • メイン データベース サーバーで、複製されたユーザー ロールの接続を許可するように pg_hba.conf ファイルを変更します。次の行を追加します:

      ホスト レプリケーション レプリケーター 0eb7370c64068585905899dde202aa9f トラスト
      
      
    • メイン データベース サーバーを再起動して、構成を有効にします。
  4. マスター/スレーブ レプリケーションを開始します:

    • スレーブ データベース サーバーで、次のコマンドを使用してマスター データベースに接続し、レプリケーションを開始します。

      pg_basebackup -h -U replicator -p 5432 -D /path/to/data_directory -P -R -X stream -c fast

       「<マスター サーバー IP アドレス>」は実際のマスター サーバーの IP アドレスに置き換えられ、「/path/to/data_directory」はスレーブ データベースのデータ ディレクトリ パスに置き換えられることに注意してください。 

    • セカンダリ データベースの構成ファイル postgresql.conf で、次のパラメータを設定します。
    • primary_conninfo = 'host=<プライマリサーバーのIPアドレス> port=5432 user=replicatorpassword=password'primary_slot_name = 'replication_slot_name'

      「314a57417c71d229e3fd24e9f29211a9」、「パスワード」、および「replication_slot_name」を実際の値に置き換えることに注意してください。

    • スレーブデータベースサーバーを起動します。

上記の手順を完了すると、マスター/スレーブ レプリケーションが開始されます

###走る。マスター データベース上のデータ変更はスレーブ データベースに自動的にレプリケートされ、スレーブ データベースはマスター データベースとの一貫性を維持します。監視ツールを使用してマスター/スレーブ レプリケーションのステータスを監視し、正しく機能していることを確認できます。

上記はマスター/スレーブ レプリケーション ソリューションの概要にすぎず、実際の実装は特定の環境やニーズに応じて調整する必要がある場合があることに注意してください。より詳細なガイダンスと手順については、PostgreSQL の公式ドキュメントやその他の信頼できるリソースを参照することをお勧めします。

以上がPostgreSQL マスター/スレーブ レプリケーション ソリューションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はmryunwei.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。