SQL
 Computer >> コンピューター >  >> プログラミング >> SQL

ステップバイステップ ガイド:CentOS 8 での PostgreSQL 12 ストリーミング レプリケーションのセットアップ

PostgreSQL ストリーミング レプリケーションは、先行書き込みログ (WAL) データをプライマリ (マスター) ノードからスタンバイ (スレーブ) ノードに継続的にストリーミングし、高可用性とフォールト トレランスを実現するほぼリアルタイムのデータベース コピーを作成します。

マスター 読み取り/書き込み WAL スレーブ 1 スレーブ 2 読み取り専用 読み取り専用

マスター ノードの構成

1. WAL アーカイブを有効にする

postgresql.conf を編集します ?

archive_mode = on
archive_command = 'cp %p /var/lib/pgsql/12/archive/%f'
wal_level = replica
max_wal_senders = 3

2.レプリケーション接続を許可する

pg_hba.conf を編集します ?

# TYPE DATABASE USER ADDRESS METHOD
host replication repluser 192.168.1.20/32 md5

3.レプリケーション ユーザーの作成

CREATE ROLE repluser WITH REPLICATION LOGIN PASSWORD 'securepass';

これらの変更後、マスター上で PostgreSQL を再起動します。

スレーブ ノードの構成

1.マスターからのベースバックアップ

sudo -u postgres pg_basebackup -h master_ip -D /var/lib/pgsql/12/data -U repluser -P -R

2. Recovery.conf を構成する

/var/lib/pgsql/12/data/recovery.conf を作成します ?

standby_mode = 'on'
primary_conninfo = 'host=master_ip port=5432 user=repluser password=securepass'
restore_command = 'cp /var/lib/pgsql/12/archive/%f "%p"'

3.スレーブを開始

sudo systemctl start postgresql-12
sudo systemctl enable postgresql-12

レプリケーションの検証

マスター上で実行して、接続されているレプリカを確認しますか?

SELECT client_addr, state, sync_state
FROM pg_stat_replication;
 client_addr | state | sync_state
----------------+-----------+------------
 192.168.1.20 | streaming | async

手動フェイルオーバー

マスターに障害が発生した場合

  • 障害が発生したマスターからレプリケーションを切断する
  • スレーブでは、recovery_target_timeline = 'latest' を設定します。 recovery.conf
  • 昇格したスレーブで PostgreSQL を再起動します
  • pg_stat_replication を使用して他のスレーブが新しいマスターに接続していることを確認します。

結論

CentOS 8 上の PostgreSQL 12 ストリーミング レプリケーションには、マスター上で WAL アーカイブとレプリケーション アクセスを構成し、スレーブ上でベース バックアップと Recovery.conf を作成し、pg_stat_replication で検証することが含まれます。 。手動フェイルオーバーは、必要に応じてスレーブをマスターに昇格させます。

ステップバイステップ ガイド:CentOS 8 での PostgreSQL 12 ストリーミング レプリケーションのセットアップ


  1. 初期のデータベースモデル

    データベースモデルは、データベースの論理構造を決定し、基本的にデータを保存、整理、および操作する方法を決定します。データベースが設計される前は、データを保存する唯一の方法はファイルストレージでした。これにより、プログラマーはデータを抽出するために非常に長い時間を費やす必要があり、プログラムは複雑な解析と関連付けを実行する必要があったため、複雑さが増しました。 Perlのようなさまざまな言語は、その強力な正規表現により、より簡単な方法でテキストを処理します。ただし、ファイルからデータにアクセスすることは依然として複雑な作業です。システムがエラーを起こしやすく、開発が遅く、保守が難しいため、デー

  2. マスター SQL Server:包括的なコース、リソース、エキスパート チュートリアル

    グリーンフィールド プロジェクトに取り組むということは、ゼロから始めることを意味します。使用するデータベースの種類を選択しなければならないチームの一員となるのは一般的です。 トランザクションの完了時に利用可能なデータにアクセスできることが重要な場合は、構造化照会言語 (SQL) データベースを使用している可能性があります。 SQL Server は、リレーショナル データの保存に使用できる最も一般的な SQL データベースの 1 つです。この記事では、SQL Server とは何か、SQL Server の用途、SQL Server の使い方を学ぶ方法について説明します。さらに、S