溫馨提示×

Debian中PostgreSQL復制怎么實現

小樊
38
2025-10-17 05:10:37
欄目: 云計算

在Debian系統中實現PostgreSQL的復制,通常有兩種方式:流復制(Streaming Replication)和邏輯復制(Logical Replication)。以下是這兩種方法的簡要說明和步驟:

流復制(Streaming Replication)

流復制是一種物理復制方法,其中一個PostgreSQL實例(主服務器)將其數據實時地流式傳輸到另一個實例(從服務器)。

步驟:

  1. 配置主服務器

    • 編輯/etc/postgresql/<version>/main/postgresql.conf文件,確保以下參數被設置:
      wal_level = replica
      max_wal_senders = 10
      wal_keep_segments = 64
      hot_standby = on
      
    • 編輯/etc/postgresql/<version>/main/pg_hba.conf文件,添加從服務器的連接權限:
      host    replication     replicator     <從服務器IP>/32    md5
      
  2. 重啟主服務器

    sudo systemctl restart postgresql
    
  3. 創建復制用戶: 在主服務器上,使用psql創建一個用于復制的用戶:

    CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;
    
  4. 配置從服務器

    • 編輯/etc/postgresql/<version>/main/postgresql.conf文件,設置listen_addresses為主服務器的IP地址:
      listen_addresses = '<主服務器IP>'
      
    • 編輯/etc/postgresql/<version>/main/pg_hba.conf文件,添加主服務器的連接權限:
      host    all             all             <主服務器IP>/32            md5
      
  5. 恢復備份: 在從服務器上,恢復主服務器的備份??梢允褂?code>pg_basebackup工具:

    sudo -u postgres pg_basebackup -h <主服務器IP> -U replicator -D /var/lib/postgresql/<version>/main -X stream -P
    
  6. 啟動從服務器: 在從服務器上,編輯/var/lib/postgresql/<version>/main/recovery.conf文件,添加以下內容:

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

    然后啟動從服務器:

    sudo systemctl start postgresql
    

邏輯復制(Logical Replication)

邏輯復制是一種基于發布和訂閱的復制方法,適用于跨版本和跨平臺的復制。

步驟:

  1. 配置主服務器

    • 編輯/etc/postgresql/<version>/main/postgresql.conf文件,確保以下參數被設置:
      wal_level = logical
      max_replication_slots = 4
      max_wal_senders = 4
      
    • 編輯/etc/postgresql/<version>/main/pg_hba.conf文件,添加從服務器的連接權限:
      host    replication     replicator     <從服務器IP>/32    md5
      
  2. 重啟主服務器

    sudo systemctl restart postgresql
    
  3. 創建復制用戶: 在主服務器上,使用psql創建一個用于復制的用戶:

    CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN;
    
  4. 創建發布: 在主服務器上,創建一個發布:

    CREATE PUBLICATION my_publication FOR TABLE my_table;
    
  5. 配置從服務器

    • 編輯/etc/postgresql/<version>/main/postgresql.conf文件,設置listen_addresses為主服務器的IP地址:
      listen_addresses = '<主服務器IP>'
      
    • 編輯/etc/postgresql/<version>/main/pg_hba.conf文件,添加主服務器的連接權限:
      host    all             all             <主服務器IP>/32            md5
      
  6. 啟動從服務器: 在從服務器上,創建一個訂閱:

    CREATE SUBSCRIPTION my_subscription
    CONNECTION 'host=<主服務器IP> dbname=postgres user=replicator password=your_password'
    PUBLICATION my_publication;
    

通過以上步驟,你可以在Debian系統中實現PostgreSQL的復制。根據你的具體需求選擇合適的復制方法。

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