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

王林
リリース: 2024-03-16 15:07:12
転載
1077 人が閲覧しました

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 ファイルに次の行を追加して、スレーブ サーバーがスレーブ サーバーに接続できるようにします。

      ホスト レプリケーション <マスター サーバー IP アドレス> トラスト
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
    • スレーブ データベース サーバーを再起動して、構成を有効にします。
  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 ファイルを変更します。次の行を追加します:

      ホスト レプリケーション レプリケーター <スレーブ サーバー IP アドレス> トラスト
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
      ログイン後にコピー
    • メイン データベース サーバーを再起動して、構成を有効にします。
  4. マスター/スレーブ レプリケーションを開始します:

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

      pg_basebackup -h <マスターサーバーの IP アドレス> -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'
      ログイン後にコピー

      「<マスターサーバー IP アドレス>」、「パスワード」、および「replication_slot_name」を実際の値に置き換えることに注意してください。

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

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

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

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

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

関連ラベル:
ソース:mryunwei.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート