溫馨提示×

centos lnmp如何實現數據同步

小樊
44
2025-09-14 00:16:13
欄目: 智能運維

在CentOS上使用LNMP(Linux, Nginx, MySQL, PHP)堆棧時,實現數據同步通常涉及以下幾個方面:

  1. 文件同步:確保Nginx的配置文件、網站文件等在多個服務器之間保持一致。
  2. 數據庫同步:確保MySQL或MariaDB數據庫在多個服務器之間保持一致。

以下是一些常見的方法來實現這些同步:

文件同步

使用rsync

rsync是一個非常強大的文件同步工具,可以在本地或遠程服務器之間同步文件。

# 安裝rsync
sudo yum install rsync

# 同步文件
rsync -avz /path/to/source/ user@remote_host:/path/to/destination/

你可以將這個命令添加到cron作業中,定期執行。

使用GlusterFS或Ceph

GlusterFS和Ceph是分布式文件系統,可以在多臺服務器之間共享和同步文件。

# 安裝GlusterFS
sudo yum install glusterfs-server glusterfs-fuse

# 啟動GlusterFS服務
sudo systemctl start glusterd.service

# 創建卷
sudo gluster volume create myvol transport tcp server1:/gluster/brick1 server2:/gluster/brick2 force

# 啟動卷
sudo gluster volume start myvol

數據庫同步

主從復制

MySQL和MariaDB支持主從復制,可以實現讀寫分離和數據備份。

  1. 配置主服務器: 編輯/etc/my.cnf/etc/mysql/my.cnf文件,添加以下內容:

    [mysqld]
    server-id = 1
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = your_database_name
    

    重啟MySQL服務:

    sudo systemctl restart mysqld
    

    創建一個用于復制的用戶:

    CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
    FLUSH PRIVILEGES;
    

    查看主服務器的狀態:

    SHOW MASTER STATUS;
    

    記錄FilePosition的值。

  2. 配置從服務器: 編輯/etc/my.cnf/etc/mysql/my.cnf文件,添加以下內容:

    [mysqld]
    server-id = 2
    relay_log = /var/log/mysql/mysql-relay-bin.log
    log_bin = /var/log/mysql/mysql-bin.log
    binlog_do_db = your_database_name
    read_only = 1
    

    重啟MySQL服務:

    sudo systemctl restart mysqld
    

    配置從服務器連接到主服務器:

    CHANGE MASTER TO
    MASTER_HOST='master_ip',
    MASTER_USER='replicator',
    MASTER_PASSWORD='password',
    MASTER_LOG_FILE='mysql-bin.000001',
    MASTER_LOG_POS=123;
    START SLAVE;
    

使用Galera Cluster

Galera Cluster是一個多主復制解決方案,可以實現實時數據同步。

  1. 安裝Galera Cluster

    sudo yum install galera-4 galera-40 galera-api-40
    
  2. 配置MySQL: 編輯/etc/my.cnf/etc/mysql/my.cnf文件,添加以下內容:

    [mysqld]
    wsrep_provider=/usr/lib64/galera/libgalera_smm.so
    wsrep_cluster_address=gcomm://server1,server2,server3
    wsrep_node_address=server1
    wsrep_node_name=server1
    wsrep_sst_method=xtrabackup-v2
    

    重啟MySQL服務:

    sudo systemctl restart mysqld
    

總結

根據你的具體需求和服務器架構,可以選擇適合的同步方法。對于文件同步,rsync是一個簡單有效的工具;對于數據庫同步,主從復制和Galera Cluster都是不錯的選擇。確保在生產環境中進行充分的測試,以避免數據丟失或不一致。

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