溫馨提示×

centos postgresql主從復制

小樊
81
2025-04-13 00:09:19
欄目: 云計算

在CentOS上設置PostgreSQL的主從復制(Master-Slave Replication)可以確保數據的高可用性和讀取負載的均衡。以下是一個基本的步驟指南:

1. 準備工作

在主服務器上:

  1. 安裝PostgreSQL

    sudo yum install postgresql-server postgresql-contrib
    
  2. 初始化數據庫

    sudo systemctl start postgresql
    sudo systemctl enable postgresql
    sudo postgresql-setup initdb
    
  3. 配置主服務器: 編輯 /var/lib/pgsql/data/postgresql.conf 文件:

    listen_addresses = '*'  # 允許所有IP連接
    wal_level = replica    # 設置為replica級別
    max_wal_senders = 10   # 最大WAL發送者數量
    wal_keep_segments = 64 # 保留的WAL段數量
    
    編輯 `/var/lib/pgsql/data/pg_hba.conf` 文件,添加從服務器的連接權限:
    ```bash
    host    replication     replicator     <從服務器IP>/32    md5
    
  4. 重啟PostgreSQL服務

    sudo systemctl restart postgresql
    
  5. 創建復制用戶

    CREATE ROLE replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;
    
  6. 獲取當前日志位置

    SELECT pg_current_wal_lsn();
    

在從服務器上:

  1. 安裝PostgreSQL

    sudo yum install postgresql-server postgresql-contrib
    
  2. 初始化數據庫

    sudo systemctl start postgresql
    sudo systemctl enable postgresql
    sudo postgresql-setup initdb
    
  3. 配置從服務器: 編輯 /var/lib/pgsql/data/postgresql.conf 文件:

    listen_addresses = '*'  # 允許所有IP連接
    hot_standby = on       # 啟用熱備模式
    
    編輯 `/var/lib/pgsql/data/pg_hba.conf` 文件,添加主服務器的連接權限:
    ```bash
    host    all             all             <主服務器IP>/32            md5
    
  4. 重啟PostgreSQL服務

    sudo systemctl restart postgresql
    

2. 設置復制

在主服務器上:

  1. 創建復制槽

    SELECT * FROM pg_create_physical_replication_slot('replication_slot_name', 'pgoutput');
    
  2. 記錄日志位置: 記錄下之前獲取的日志位置。

在從服務器上:

  1. 恢復數據庫: 如果從服務器是新初始化的,需要從主服務器備份并恢復數據。

  2. 配置恢復命令: 編輯 /var/lib/pgsql/data/recovery.conf 文件(CentOS 7及以下)或 /var/lib/pgsql/data/recovery.conf 文件(CentOS 8及以上):

    standby_mode = 'on'
    primary_conninfo = 'host=<主服務器IP> dbname=postgres user=replicator password=your_password'
    restore_command = 'cp /var/lib/pgsql/archive/%f %p'
    trigger_file = '/tmp/postgresql.trigger.5432'
    
  3. 啟動從服務器

    sudo systemctl start postgresql
    

3. 驗證復制

在主服務器上:

SELECT * FROM pg_stat_replication;

在從服務器上:

SELECT * FROM pg_stat_replication;

如果一切正常,你應該能看到從服務器正在接收來自主服務器的數據。

注意事項

  • 確保防火墻允許PostgreSQL端口(默認5432)的通信。
  • 定期檢查復制狀態,確保數據同步正常。
  • 考慮使用更高級的復制方案,如邏輯復制或流復制,以滿足更復雜的需求。

通過以上步驟,你應該能夠在CentOS上成功設置PostgreSQL的主從復制。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女