騰訊雲帳號註冊服務 騰訊雲不同地區伺服器如何進行資料同步:架構設計與操作方法

騰訊雲國際 / 2026-10-10 20:39:58

# 騰訊雲不同地區伺服器如何進行資料同步:架構設計與操作方法

騰訊雲帳號註冊服務 在騰訊雲上部署業務時,很多人會把伺服器分散在不同地域,例如北京、上海、廣州、香港,甚至中國內地與海外節點同時部署。實際操作中,跨地域部署之後最常遇到的問題不是建立實例,而是**資料怎麼同步、延遲怎麼控制、網路怎麼打通、故障時怎麼切換**。

這篇文章不談概念,直接從實際操作角度出發,解決以下幾類常見場景:

- 兩台騰訊雲 CVM 位於不同地域,需要同步網站檔案
- 不同地域的 MySQL 資料庫需要主從同步或遷移
- 應用伺服器與資料庫分佈在不同地域,需要低風險打通私網或公網
- 已經建立好伺服器,但跨地域同步速度慢、連不上、資料不一致

---

## 一、先明確需求:你到底要同步什麼資料

在動手之前,先確認同步目標,因為不同資料類型對應的架構完全不同。

常見同步對象有 3 類:

1. **網站程式碼與靜態檔案**
- 例如 Nginx 網站目錄、上傳圖片、附件資料
- 常見方式:`rsync`、`scp`、定時任務、物件儲存中轉

2. **業務資料庫**
- 例如 MySQL、MariaDB、Redis
- 常見方式:主從複製、DTS 資料傳輸服務、備份恢復、雙寫架構

3. **整台伺服器資料或系統遷移**
- 例如舊地域整台業務搬到新地域
- 常見方式:快照、鏡像、遷移工具、應用層同步

騰訊雲帳號註冊服務 如果你還沒確定方案,可以按下面的方式快速選擇:

- **同步網站目錄**:選 `rsync + SSH`
- **同步 MySQL 資料**:選 `MySQL 主從` 或 `DTS`
- **一次性跨地域搬遷**:選 `快照/鏡像 + 數據恢復`
- **長期多地容災**:選 `資料庫複製 + 檔案定時同步 + DNS 切流`

---

## 二、架構設計:跨地域同步前要先決定網路路徑

騰訊雲不同地域之間做資料同步,先不要急著裝軟體,第一步要先確定連線方式。通常有兩種:

### 方案 A:公網同步

適合場景:

- 兩台伺服器都已分配公網 IP
- 臨時同步、低頻同步
- 操作簡單優先

架構示意:

- 廣州地域 CVM(源端)
- 上海地域 CVM(目標端)
- 通過公網 IP + SSH / MySQL Port 進行同步

優點:

- 建立快
- 不需要額外打通複雜網路
- 適合測試與中小型業務

注意點:

- 安全組必須精準開放端口
- 公網延遲較高
- 若大量資料傳輸,流量成本要提前評估

### 方案 B:私網互通後同步

適合場景:

騰訊雲帳號註冊服務 - 生產環境長期同步
- 對安全要求高
- 不希望資料庫直接暴露到公網

常見做法:

- 使用雲聯網 CCN 打通不同地域 VPC
- 或通過 VPN / 專線實現私網互通

優點:

- 安全性高
- 延遲與穩定性更可控
- 更適合資料庫、內部服務同步

騰訊雲帳號註冊服務 注意點:

- 要規劃好 VPC 網段,避免 CIDR 衝突
- 路由表、安全組、NACL 都要同步檢查

**實務建議**:

- 檔案同步、臨時遷移:優先公網
- 資料庫同步、生產長期運行:優先私網互通

---

## 三、建立跨地域同步前的基礎配置

以下操作以騰訊雲 CVM 為主,先把兩台伺服器準備好。

### 1. 購買或建立實例時的配置建議

如果你還沒建立伺服器,選型時注意這幾點:

#### 地域與可用區選擇

- 主業務在哪個城市,就把主站放在接近使用者的地域
- 備份站、容災站可以放另一個地域
- 跨中國內地與香港、海外同步時,要特別關注延遲與帶寬

騰訊雲帳號註冊服務 #### CPU / 記憶體選擇

同步任務主要吃以下資源:

- 檔案同步:CPU 壓力不高,但磁碟 IO 會明顯增加
- MySQL 複製:記憶體、磁碟、網路都要穩定
- 大批量資料遷移:建議至少 2 核 4G 起步

#### 硬碟選擇

- 資料庫同步:優先高性能雲硬碟或 SSD
- 檔案同步:如果是大批量小檔案,IOPS 很重要
- 系統碟不要塞滿,至少保留 20% 空間

### 2. 作業系統安裝建議

- Linux 伺服器同步最常見,建議選 Ubuntu 20.04/22.04 或 CentOS 7 / Rocky Linux
- Windows 適合特定應用,但跨地域檔案與資料庫同步配置相對繁瑣

如果你要跑 `rsync`、`mysqldump`、`cron`、`scp`,Linux 更方便。

---

## 四、安全組與防火牆配置:很多同步失敗都卡在這一步

跨地域同步最常見的故障不是工具有問題,而是**端口沒開、來源 IP 沒放行、防火牆攔截**。

### 1. SSH 檔案同步需要開哪些端口

如果你用 `rsync` 或 `scp`,通常只需要:

- TCP 22:SSH 連線

騰訊雲帳號註冊服務 在騰訊雲控制台中操作:

1. 進入 **CVM 控制台**
2. 選擇目標伺服器
3. 進入 **安全組**
4. 新增入站規則:
- 類型:自訂 TCP
- 端口:22
- 來源:源端伺服器公網 IP 或私網網段

不要直接開 `0.0.0.0/0` 給 SSH,尤其是生產環境。

### 2. MySQL 同步需要開哪些端口

如果你要做 MySQL 主從複製,一般需要:

- TCP 3306:MySQL 連線端口

安全組規則建議:

- 只允許從庫伺服器 IP 連到主庫的 3306
- 不要把 3306 對全網開放

### 3. Linux 防火牆同步檢查

除了安全組,系統內部防火牆也要檢查。

騰訊雲帳號註冊服務 #### firewalld

```bash
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
```

#### ufw

```bash
sudo ufw allow 22/tcp
sudo ufw allow 3306/tcp
sudo ufw reload
```

### 4. 連線測試方法

在源端伺服器上測試目標端口是否可達:

```bash
telnet 目標IP 22
```

或:

```bash
nc -zv 目標IP 22
nc -zv 目標IP 3306
```

若不通,依序檢查:

- 安全組
- 系統防火牆
- MySQL 是否監聽對外 IP
- 是否綁定了錯誤網卡

---

騰訊雲帳號註冊服務 ## 五、不同地域 CVM 之間同步網站資料:rsync 操作實戰

這是最常見的需求:A 地域伺服器的網站資料,同步到 B 地域伺服器。

### 場景

- 源端:廣州 CVM,IP `1.1.1.1`
- 目標端:上海 CVM,IP `2.2.2.2`
- 同步目錄:`/data/wwwroot/`

### 1. 目標端建立接收目錄

```bash
mkdir -p /data/wwwroot
```

### 2. 確認 SSH 可登入

在源端執行:

```bash
ssh [email protected]
```

若首次連線正常,再進行免密設定。

### 3. 配置 SSH 金鑰免密登入

在源端建立金鑰:

```bash
ssh-keygen -t rsa
```

把公鑰傳到目標端:

```bash
ssh-copy-id [email protected]
```

### 4. 執行 rsync 同步

```bash
rsync -avz --delete /data/wwwroot/ [email protected]:/data/wwwroot/
```

參數說明只講實用部分:

- `-a`:保留檔案屬性
- `-v`:顯示過程
- `-z`:傳輸壓縮
- `--delete`:目標端多餘檔案會刪除,避免資料殘留

### 5. 建立定時同步任務

如果要每 5 分鐘同步一次:

```bash
crontab -e
```

加入:

```bash
*/5 * * * * /usr/bin/rsync -avz --delete /data/wwwroot/ [email protected]:/data/wwwroot/ >/var/log/rsync_sync.log 2>&1
```

### 6. 常見問題排查

#### 問題 1:Permission denied

處理方法:

- 檢查 SSH 金鑰是否已寫入 `~/.ssh/authorized_keys`
- 檢查目標端目錄權限
- 確認 SELinux 是否限制寫入

#### 問題 2:同步很慢

處理方法:

- 測試兩地 ping / traceroute
- 避免同步大量臨時檔
- 對大檔案可以關掉 `-z` 減少 CPU 壓縮開銷
- 優先在低峰期同步

#### 問題 3:刪錯檔案

`--delete` 很危險,第一次建議先預演:

```bash
rsync -avzn --delete /data/wwwroot/ [email protected]:/data/wwwroot/
```

`-n` 表示只模擬不實際執行。

---

## 六、不同地域 MySQL 資料同步:主從複製操作方法

如果你要同步的是業務資料,而不是網站檔案,最常見方案是 MySQL 主從複製。

### 適用場景

- 主站在廣州,備站在上海
- 主庫寫入,從庫只讀
- 容災備份或報表查詢分流

騰訊雲帳號註冊服務 ### 架構規劃

騰訊雲帳號註冊服務 - 主庫:廣州 CVM / TencentDB for MySQL
- 從庫:上海 CVM / TencentDB for MySQL
- 通過公網或私網互通

### 1. 主庫修改 MySQL 配置

編輯 `my.cnf`:

```ini
[mysqld]
server-id=1
log-bin=mysql-bin
binlog_format=ROW
bind-address=0.0.0.0
```

重啟 MySQL:

```bash
systemctl restart mysqld
```

或:

```bash
systemctl restart mysql
```

### 2. 建立同步帳號

登入主庫:

```sql
CREATE USER 'repl'@'從庫IP' IDENTIFIED BY 'StrongPassword123!';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'從庫IP';
FLUSH PRIVILEGES;
```

查看主庫狀態:

```sql
SHOW MASTER STATUS;
```

記下:

- `File`
- `Position`

### 3. 匯出主庫初始資料

```bash
mysqldump -uroot -p --all-databases --master-data=2 --single-transaction > full.sql
```

把檔案傳到從庫:

```bash
scp full.sql root@從庫IP:/root/
```

### 4. 從庫匯入資料

```bash
mysql -uroot -p < /root/full.sql
```

### 5. 從庫配置 replication

編輯從庫 `my.cnf`:

```ini
[mysqld]
server-id=2
relay-log=relay-log
read_only=1
```

重啟 MySQL 後登入執行:

```sql
CHANGE MASTER TO
MASTER_HOST='主庫IP',
MASTER_USER='repl',
MASTER_PASSWORD='StrongPassword123!',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
```

啟動同步:

```sql
START SLAVE;
```

MySQL 8 部分環境可使用:

```sql
START REPLICA;
```

檢查狀態:

```sql
SHOW SLAVE STATUS\G
```

騰訊雲帳號註冊服務 重點看兩個欄位:

- `Slave_IO_Running: Yes`
- `Slave_SQL_Running: Yes`

只要有一個不是 `Yes`,同步就沒成功。

### 6. 常見報錯排查

#### 問題 1:主從連不上

檢查:

- 主庫 3306 是否放行給從庫 IP
- `bind-address` 是否為 `0.0.0.0` 或正確內網 IP
- 從庫是否能 telnet 主庫 3306

#### 問題 2:報權限錯誤

重新檢查同步帳號授權:

```sql
SHOW GRANTS FOR 'repl'@'從庫IP';
```

#### 問題 3:資料不一致導致 SQL 執行失敗

處理思路:

- 先停同步
- 檢查錯誤位置
- 視情況重新導入主庫快照
- 避免在從庫手動修改資料

#### 問題 4:跨地域延遲很高

優化方向:

- 減少大交易
- 拆分批量寫入
- 調整 binlog 格式與提交策略
- 優先走私網或雲聯網

---

## 七、使用騰訊雲 DTS 做跨地域資料同步

如果你不想手工配置 MySQL 主從,或者源端與目標端類型不同,可以直接考慮騰訊雲 **DTS 資料傳輸服務**。

### 適合場景

- CVM 自建 MySQL 遷移到 TencentDB
- 不同地域資料庫同步
- 需要增量遷移、平滑切換

### 基本操作流程

1. 進入騰訊雲控制台
2. 打開 **資料傳輸服務 DTS**
3. 建立遷移或同步任務
4. 選擇源實例與目標實例
5. 填寫連線資訊
6. 選擇遷移對象(整庫、表、部分資料)
7. 執行預檢查
8. 啟動全量遷移
9. 視需求啟用增量同步

### 預檢查失敗常見原因

騰訊雲帳號註冊服務 - 帳號權限不足
- 安全組未放行 DTS 節點
- 源庫 binlog 未開啟
- 表結構不符合要求
- 字元集或主鍵設計有異常

### 使用建議

- 切換正式業務前先做一次演練
- 全量同步完成後觀察增量延遲
- 切換窗口內暫停寫入,避免最終資料不一致

如果你的目標是**快速、穩定、少改配置**,DTS 通常比手工主從更省時間。

---

## 八、跨地域私網互通:雲聯網 CCN 的實作思路

如果你不希望資料經過公網,跨地域同步最好把不同 VPC 打通。

騰訊雲帳號註冊服務 ### 典型場景

- 廣州 VPC:`10.10.0.0/16`
- 上海 VPC:`10.20.0.0/16`
- 兩地 CVM 需要走私網同步資料

### 配置重點

1. 兩個 VPC 網段不能衝突
2. 建立雲聯網實例
3. 把不同地域的 VPC 關聯到同一個 CCN
4. 檢查路由表是否自動或手動下發
5. 安全組放行對端私網網段

### 驗證方法

在廣州 CVM 上:

```bash
ping 10.20.0.10
nc -zv 10.20.0.10 3306
```

如果私網可達,再把 `rsync` 或 MySQL 主從的目標 IP 改成私網 IP。

### 常見問題

騰訊雲帳號註冊服務 #### 問題 1:VPC 網段衝突

例如兩邊都用了 `10.0.0.0/16`,這種情況下無法正確路由,必須先調整 VPC 規劃。

#### 問題 2:CCN 已建立但不通

重點檢查:

- 路由表有沒有對端網段路由
- 安全組是否允許對端私網來源
- 作業系統防火牆是否攔截

---

## 九、同步速度慢怎麼辦:性能與網路優化方法

不同地域伺服器資料同步,最容易出現的體感問題就是慢。可按下面方式逐步優化。

### 1. 先測網路延遲與帶寬

```bash
ping 目標IP
traceroute 目標IP
```

如果是 Linux,也可以做簡單吞吐測試,例如 `iperf3`。

目標端啟動:

```bash
iperf3 -s
```

源端測試:

```bash
iperf3 -c 目標IP
```

### 2. 檔案同步優化

- 大量小檔案:先打包再傳輸
- 大檔案:關閉壓縮測試 CPU 是否成瓶頸
- 避免全量重傳,盡量做增量同步

例如先打包:

```bash
tar czf site.tar.gz /data/wwwroot/
scp site.tar.gz root@目標IP:/root/
```

### 3. MySQL 同步優化

- 避免長交易
- 調整 `sync_binlog`
- 減少不必要索引更新
- 把報表查詢從主庫轉走
- 使用 SSD 降低 relay log 與 binlog IO 壓力

### 4. 公網同步成本評估

跨地域如果長期走公網,要注意:

- 公網流量費用
- 帶寬上限
- 高峰時段抖動

如果資料量大、同步頻繁,改用私網互通通常更穩定。

---

## 十、資料一致性與備份:同步不是備份,這點一定要分清

很多人在部署跨地域同步後就不做備份,這是非常危險的。

### 原因

同步會把正確資料同步過去,也可能把錯誤操作同步過去。

例如:

- 誤刪資料表
- 程式 Bug 導致錯誤寫入
- 勒索或惡意刪除檔案

這些都可能在同步鏈路中被快速放大。

### 正確做法

#### 1. 伺服器快照

對重要 CVM 磁碟建立定期快照,至少保留最近幾個恢復點。

#### 2. 資料庫定時備份

例如 MySQL:

```bash
mysqldump -uroot -p --all-databases > /backup/mysql_$(date +%F).sql
```

配合 `cron` 每天執行。

#### 3. 異地備份與同步分開保存

- 同步副本:用於容災切換
- 備份副本:用於歷史恢復

兩者不要混為一談。

---

## 十一、常見故障排查清單

當你發現跨地域同步失敗,可以按這份清單快速定位。

### 1. SSH 無法連線

檢查順序:

- 公網 IP 是否正確
- 安全組是否開放 22
- 系統防火牆是否允許 22
- SSH 服務是否啟動

```bash
systemctl status sshd
```

### 2. rsync 報錯 code 12 / code 255

通常是以下原因:

- SSH 連線異常
- 帳號權限問題
- 路徑不存在
- 目標端磁碟滿了

先檢查磁碟:

```bash
df -h
```

### 3. MySQL 主從不同步

執行:

```sql
SHOW SLAVE STATUS\G
```

主要看:

- `Last_IO_Error`
- `Last_SQL_Error`
- `Seconds_Behind_Master`

### 4. 私網互通不生效

檢查:

- CCN 關聯狀態
- 路由表
- 安全組來源網段
- 目標服務監聽 IP

查看服務監聽:

騰訊雲帳號註冊服務 ```bash
ss -lntp
```

### 5. 同步後網站異常

可能原因:

- 檔案權限不一致
- PHP / Java / Python 執行環境不同
- 上傳目錄沒同步完整
- 快取未清理

建議同步後執行:

```bash
chown -R www:www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} \;
find /data/wwwroot/ -type f -exec chmod 644 {} \;
```

---

## 十二、推薦的實戰方案組合

根據不同業務場景,可以直接套用以下組合。

騰訊雲帳號註冊服務 ### 方案 1:小型網站跨地域備份

- 伺服器:2 台騰訊雲 CVM
- 檔案同步:`rsync + cron`
- 資料庫同步:每日 `mysqldump` 備份傳輸
- 網路:公網

適合:

- 公司官網
- 展示站
- 更新頻率不高的系統

### 方案 2:中型業務異地容災

- 主站與備站分佈不同地域
- 檔案:增量同步
- MySQL:主從複製
- 網路:CCN 私網互通
- 備份:快照 + SQL 備份

適合:

- 電商
- CRM
- 內部業務平台

### 方案 3:平滑遷移到新地域

- 舊地域保留線上服務
- 用 DTS 全量 + 增量遷移資料庫
- 檔案用 `rsync`
- 驗證完成後再切 DNS

適合:

- 機房搬遷
- 業務重構
- 新地域擴容

---

騰訊雲帳號註冊服務 ## 十三、操作總結

在騰訊雲不同地區伺服器之間進行資料同步,核心不是單一工具,而是**先做好架構選型,再按資料類型選同步方式**。

你可以直接按下面的思路落地:

1. 先確認同步的是檔案、資料庫,還是整機遷移
2. 評估使用公網還是私網互通
3. 配置安全組、防火牆、端口放行
4. 檔案同步用 `rsync`
5. MySQL 同步用主從或 DTS
6. 建立快照與備份,避免把同步當備份
7. 用監控與日誌持續觀察延遲與錯誤

如果你的場景是短期遷移,優先考慮 **rsync + DTS**;如果是長期生產容災,則更建議 **CCN 私網互通 + MySQL 複製 + 定時備份**。

真正影響同步效果的,往往不是命令本身,而是這幾個細節:

- 地域延遲是否可接受
- 安全組是否放對來源
- 磁碟 IO 是否足夠
- 是否有備份兜底
- 是否在正式切換前做過演練

只要把這幾步做到位,騰訊雲跨地域伺服器資料同步就能穩定落地。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系