溫馨提示×

Ubuntu PostgreSQL 復制功能如何使用

小樊
35
2025-09-03 00:36:25
欄目: 云計算

以下是在Ubuntu上使用PostgreSQL復制功能的步驟(以流復制為例):

一、環境準備

  • 兩臺Ubuntu服務器(主庫、從庫),安裝相同版本的PostgreSQL(如15.x)。
  • 確保服務器間網絡互通,主庫IP假設為192.168.1.10,從庫IP為192.168.1.11。

二、配置主庫

  1. 修改配置文件

    • 編輯/etc/postgresql/15/main/postgresql.conf
      wal_level = replica          # 啟用WAL日志
      max_wal_senders = 5          # 允許最大復制連接數
      wal_keep_size = 128MB        # 保留WAL日志大小
      hot_standby = on             # 允許從庫只讀
      listen_addresses = '*'       # 監聽所有IP
      
    • 編輯/etc/postgresql/15/main/pg_hba.conf
      host replication replicator 192.168.1.11/32 md5  # 允許從庫IP通過復制用戶連接
      
    • 重啟主庫:
      sudo systemctl restart postgresql
      
  2. 創建復制用戶

    sudo -u postgres psql
    CREATE ROLE replicator WITH REPLICATION LOGIN PASSWORD 'your_password';
    \q
    

三、配置從庫

  1. 清空數據目錄并拉取主庫數據

    sudo systemctl stop postgresql
    sudo rm -rf /var/lib/postgresql/15/main/*
    sudo -u postgres pg_basebackup -h 192.168.1.10 -D /var/lib/postgresql/15/main -U replicator -P --wal-method=stream
    

    (需輸入復制用戶密碼)

  2. 配置postgresql.conf

    hot_standby = on
    

    (PostgreSQL 12+無需recovery.conf,參數直接寫入主配置文件)

  3. 啟動從庫

    sudo systemctl start postgresql
    

四、驗證復制狀態

  • 主庫查看復制狀態
    sudo -u postgres psql
    SELECT * FROM pg_stat_replication;  # 查看從庫連接信息
    
  • 從庫驗證數據同步
    在主庫創建測試表并插入數據,從庫執行查詢確認數據同步。

五、可選:邏輯復制(按需選擇表同步)

  1. 主庫啟用邏輯復制:
    wal_level = logical
    max_replication_slots = 5
    
  2. 創建發布和訂閱:
    -- 主庫:創建發布
    CREATE PUBLICATION pub_all FOR ALL TABLES;
    
    -- 從庫:創建訂閱
    CREATE SUBSCRIPTION sub_all CONNECTION 'host=192.168.1.10 port=5432 dbname=postgres user=replicator password=your_password'
    PUBLICATION pub_all;
    
    (邏輯復制需在從庫手動創建表結構,僅同步數據變更)

注意事項

  • 主從庫PostgreSQL版本需一致,建議使用Ubuntu官方倉庫的穩定版本。
  • 生產環境中建議配置archive_mode和WAL歸檔,防止數據丟失。
  • 同步復制需設置synchronous_commit = onsynchronous_standby_names,但可能影響主庫性能。

參考來源:

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