1.概要
Repmgrは、第2象限のオープンソースストリーミングレプリケーションクラスター管理ツールのセットです。公式の概要をご覧ください。
repmgrは、PostgreSQLサーバーのクラスターでレプリケーションとフェイルオーバーを管理するためのオープンソースのツールスイートです。PostgreSQLに組み込まれたホットスタンバイ機能を拡張し、スタンバイサーバー、レプリケーションを監視するツール、および管理タスク(フェイルオーバーや手動切り替え操作など)をセットアップします。
repmgrdeの機能:
拡張が容易な分散管理クラスターノードは、クラスターノードをオンラインで追加および削除できます。
構造は次のとおりです。
2.導入
マスターノード:
- 関連パラメーターを構成する
- データベースを起動します
- 「repmgr primary register」コマンドを使用して、プライマリノードを登録します。(この登録の目的は、構成ファイルのいくつかの主要なパラメーターをメタデータテーブルに書き込み、repmgrシステムがクラスターノードなどを識別できるようにすることです。
- repmgrdデーモンを起動します。
スタンバイノード:
- 関連パラメーターを構成する
- 「repmgr standby clone」コマンドを使用して、マスターノードを物理的にコピーします。
- データベースを起動します
- 「repmgr standby register」コマンドで待機ノードを登録します。
- repmgrdデーモンを起動します。
クラスター内の各ノードが正常にデプロイされた後、フェイルオーバーを処理して監視データを記録できるrepmgrdデーモンが開始されます。
3.実際の運用
動作環境:
centos7.6
3.1。pg12をインストールします(前の投稿を参照)
3.2。repmgrインストールパッケージを取得する
https:// yum.postgresql.org/12/redhat/rhel-7-x86_64/repoview/
3.3。remggrをインストールする
rpm -ivh repmgr12- 5.1。0 - 1 .rhel7.x86_64.rpm
3.4.repmgrパラメータ設定
vim / etc / repmgr / 12 / repmgr.conf ##必要な構成項目を入力します node_id = 1 node_name = node1 conninfo = ' host = 192.168.101.9 port = 5432 user = postgres dbname = postgres ' data_directory = ' / var / lib / pgsql / 12 /データ'
3.5。データベースパラメータの設定
vim / var / lib / pgsql / 12 / data / postgresql.conf #構成 パラメーター shared_preload_libraries = ' repmgr '
listen_addresses = '*'
vim /var/lib/pgsql/12/data/pg_hba.conf#構成
パラメーター
#IPv4ローカル接続:
すべて0.0.0.0/0の信頼をすべてホスト#新增
3.6。データベースに再接続した後、データベースに接続してプラグインを作成します(./psql -Upostgres -dpostgres)
CREATE EXTENSION repmgr;
3.7。メインデータベースを登録する
[postgres @ localhost bin] $ ./ repmgr primary register INFO:プライマリデータベースに接続しています... INFO:" repmgr " 拡張がすでにインストールされています 注意:プライマリノードレコード(ID:1)が登録されています
3.8。クラスターステータスビュー
[postgres @ localhost bin] $ ./ repmgr cluster show ID | 名前| 役割| ステータス| 上流| ロケーション| 優先順位| タイムライン| 接続文字列 ---- + ------- + --------- + ----------- + ---------- +- -------- + ---------- + ---------- + ------------------- ------------------------------------------ 1 | node1 | プライマリ| *実行中| | デフォルト| 100 | 1 | host = 192.168。101.9ポート= 5432ユーザー= postgres dbname = postgres
登録スタンバイデータベースについては、次のセクションで説明します。。