暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

10分钟搞定达梦数据库灾备!Linux神器rsync高阶玩法全解析

361

 

rsync为何成为运维必备工具?

rsync作为Linux系统下的"数据同步瑞士军刀",凭借增量备份、低带宽占用和多种传输协议支持三大特性,成为服务器数据备份与同步的首选方案。无论是日常文件同步还是大规模数据迁移,都能轻松应对。


5分钟掌握rsync核心用法

基本格式:

rsync [选项] 源位置 目标位置

常用选项速查表:

选项
功能说明
-a
归档模式(保留所有属性)
-v
显示详细同步过程
-z
传输时压缩节省带宽
--delete
智能删除多余文件
--exclude
排除指定文件/目录

经典组合:

rsync -avz --delete source/ user@remote:/dest/

两种同步方式深度解析

本次案例数据同步流向如下所示:

方式1:SSH安全通道(推荐新手)

配置步骤:

  1. 1. 服务端创建专用账号
useradd syncuser && passwd syncuser
  1. 2. 设置目录ACL权限
setfacl -m u:syncuser:rwx dmdata/dmbak
  1. 3. 客户端执行同步
# 下行同步
rsync -avz syncuser@server_ip:/data/ local_backup/

# 上行同步
rsync -avz local_data/ syncuser@server_ip:/remote_backup/

案例演示

这里使用dmdba用户演示,没有用户可以根据步骤创建

  1. 1. 设置目录ACL权限
setfacl -m u:dmdba:rwx dmdata/dmbak
  1. 2. 客户端执行同步

在25.132端执行文件同步到/dmdata下

rsync -avz dmdba@192.168.25.118:/dmdata/dmbak/  /dmdata/

root@rgy-vmwarevirtualplatform:/dmdata# rsync -avz dmdba@192.168.25.118:/dmdata/dmbak/  /dmdata/

Authorized users only. All activities may be monitored and reported.
dmdba@192.168.25.118's password:    #输入密码
receiving incremental file list
./
dbfull20250414/
dbfull20250414/dbfull20250414.bak
dbfull20250414/dbfull20250414.meta
dbfull20250414/dbfull20250414_0/
dbfull20250414/dbfull20250414_0/dbfull20250414_0.bak
dbfull20250414/dbfull20250414_0/dbfull20250414_0.meta
dbfull20250414/dbfull20250414_1/
dbfull20250414/dbfull20250414_1/dbfull20250414_1.bak
dbfull20250414/dbfull20250414_1/dbfull20250414_1.meta
dbfull20250414/dbfull20250414_2/
dbfull20250414/dbfull20250414_2/dbfull20250414_2.bak
dbfull20250414/dbfull20250414_2/dbfull20250414_2.meta
dbfull20250414/dbfull20250414_3/
dbfull20250414/dbfull20250414_3/dbfull20250414_3.bak
dbfull20250414/dbfull20250414_3/dbfull20250414_3.meta
dbfull20250414/dbfull20250414_4/
dbfull20250414/dbfull20250414_4/dbfull20250414_4.bak
dbfull20250414/dbfull20250414_4/dbfull20250414_4.meta
dbfull20250414/dbfull20250414_5/
dbfull20250414/dbfull20250414_5/dbfull20250414_5.bak
dbfull20250414/dbfull20250414_5/dbfull20250414_5.meta
dbfull20250414/dbfull20250414_6/
dbfull20250414/dbfull20250414_6/dbfull20250414_6.bak
dbfull20250414/dbfull20250414_6/dbfull20250414_6.meta
dbfull20250414/dbfull20250414_7/
dbfull20250414/dbfull20250414_7/dbfull20250414_7.bak
dbfull20250414/dbfull20250414_7/dbfull20250414_7.meta
dbfull2025041402/
dbfull2025041402/dbfull2025041402.bak
dbfull2025041402/dbfull2025041402.meta
dbfull2025041402/dbfull2025041402_0/
dbfull2025041402/dbfull2025041402_0/dbfull2025041402_0.bak
dbfull2025041402/dbfull2025041402_0/dbfull2025041402_0.meta
dbfull2025041402/dbfull2025041402_1/
dbfull2025041402/dbfull2025041402_1/dbfull2025041402_1.bak
dbfull2025041402/dbfull2025041402_1/dbfull2025041402_1.meta
dbfull2025041402/dbfull2025041402_2/
dbfull2025041402/dbfull2025041402_2/dbfull2025041402_2.bak
dbfull2025041402/dbfull2025041402_2/dbfull2025041402_2.meta
dbfull2025041402/dbfull2025041402_3/
dbfull2025041402/dbfull2025041402_3/dbfull2025041402_3.bak
dbfull2025041402/dbfull2025041402_3/dbfull2025041402_3.meta
dbfull2025041402/dbfull2025041402_4/
dbfull2025041402/dbfull2025041402_4/dbfull2025041402_4.bak
dbfull2025041402/dbfull2025041402_4/dbfull2025041402_4.meta
dbfull2025041402/dbfull2025041402_5/
dbfull2025041402/dbfull2025041402_5/dbfull2025041402_5.bak
dbfull2025041402/dbfull2025041402_5/dbfull2025041402_5.meta
dbfull2025041402/dbfull2025041402_6/
dbfull2025041402/dbfull2025041402_6/dbfull2025041402_6.bak
dbfull2025041402/dbfull2025041402_6/dbfull2025041402_6.meta
dbfull2025041402/dbfull2025041402_7/
dbfull2025041402/dbfull2025041402_7/dbfull2025041402_7.bak
dbfull2025041402/dbfull2025041402_7/dbfull2025041402_7.meta

sent 855 bytes  received 1,698,102,628 bytes  15,944,633.64 bytes/sec
total size is 1,715,384,320  speedup is 1.01
root@rgy-vmwarevirtualplatform:/dmdata# 

# 目标端检查

root@rgy-vmwarevirtualplatform:/dmdata# ll
总计 4
drwxrwxr-x  4 dmdba dmdba   52  4月14日 20:22 ./
drwxr-xr-x 24 root  root  4096  1月12日 15:47 ../
drwxrwxr-x 10 dmdba dmdba  251  4月14日 19:03 dbfull20250414/
drwxrwxr-x 10 dmdba dmdba  271  4月14日 20:23 dbfull2025041402/
root@rgy-vmwarevirtualplatform:/dmdata#

从25.118将dbfull2025041402文件同步到25.132目录下

rsync -avz dmdata/dmbak/dbfull2025041402 dmdba@192.168.25.132:/dmdata

[dmdba@localhost dmbak]$ rsync -avz dmdata/dmbak/dbfull2025041402 dmdba@192.168.25.132:/dmdata
The authenticity of host '192.168.25.132 (192.168.25.132)' can't be established.
ECDSA key fingerprint is SHA256:plCm367+JtVGIoDe9M7pqwsWPZK2b+sH5SmrXNdAXvw.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '
192.168.25.132' (ECDSA) to the list of known hosts.
dmdba@192.168.25.132'
s password: 
sending incremental file list
dbfull2025041402/
dbfull2025041402/dbfull2025041402.bak
dbfull2025041402/dbfull2025041402.meta
dbfull2025041402/dbfull2025041402_0/
dbfull2025041402/dbfull2025041402_0/dbfull2025041402_0.bak
dbfull2025041402/dbfull2025041402_0/dbfull2025041402_0.meta
dbfull2025041402/dbfull2025041402_1/
dbfull2025041402/dbfull2025041402_1/dbfull2025041402_1.bak
dbfull2025041402/dbfull2025041402_1/dbfull2025041402_1.meta
dbfull2025041402/dbfull2025041402_2/
dbfull2025041402/dbfull2025041402_2/dbfull2025041402_2.bak
dbfull2025041402/dbfull2025041402_2/dbfull2025041402_2.meta
dbfull2025041402/dbfull2025041402_3/
dbfull2025041402/dbfull2025041402_3/dbfull2025041402_3.bak
dbfull2025041402/dbfull2025041402_3/dbfull2025041402_3.meta
dbfull2025041402/dbfull2025041402_4/
dbfull2025041402/dbfull2025041402_4/dbfull2025041402_4.bak
dbfull2025041402/dbfull2025041402_4/dbfull2025041402_4.meta
dbfull2025041402/dbfull2025041402_5/
dbfull2025041402/dbfull2025041402_5/dbfull2025041402_5.bak
dbfull2025041402/dbfull2025041402_5/dbfull2025041402_5.meta
dbfull2025041402/dbfull2025041402_6/
dbfull2025041402/dbfull2025041402_6/dbfull2025041402_6.bak
dbfull2025041402/dbfull2025041402_6/dbfull2025041402_6.meta
dbfull2025041402/dbfull2025041402_7/
dbfull2025041402/dbfull2025041402_7/dbfull2025041402_7.bak
dbfull2025041402/dbfull2025041402_7/dbfull2025041402_7.meta

sent 849,069,763 bytes  received 430 bytes  16,172,765.58 bytes/sec
total size is 857,708,032  speedup is 1.01
[dmdba@localhost dmbak]$ 

# 目标端检查
root@rgy-vmwarevirtualplatform:/dmdata# ll
总计 4
drwxrwxr-x  3 dmdba dmdba   30  5月 2日 18:10 ./
drwxr-xr-x 24 root  root  4096  1月12日 15:47 ../
drwxrwxr-x 10 dmdba dmdba  271  4月14日 20:23 dbfull2025041402/
root@rgy-vmwarevirtualplatform:/dmdata# 

方式2:rsync原生协议(适合批量操作)

配置流程:

  1. 1. 创建配置文件/etc/rsyncd.conf
address = 192.168.25.118
port = 873
[data_share]
    path = dmdata
    comment = 重要数据仓库
    read only = no
    auth users = dmdba
    secrets file = etc/rsyncd.secrets

  1. 2. 设置密码文件(权限必须600)
echo "dmdba:Dameng123" > etc/rsyncd.secrets
chmod 600 etc/rsyncd.secrets

  1. 3. 启动服务
rsync --daemon

案例演示

服务端配置:
1.创建配置文件

[root@localhost dmbak]# cat /etc/rsyncd.conf 
address = 192.168.25.118
port 873
pid file = var/run/rsyncd.pid
log file = var/log/rsyncd.log

[share]
        comment = soft
        path = dmdata
        read only = yes
        dont compress =
        auth users = dmdba
        secrets file = etc/rsyncd_users.db
[root@localhost dmbak]# 

  1. 2. 设置密码文件
[root@localhost dmbak]# echo "dmdba:Dameng123" > etc/rsyncd.secrets
[root@localhost dmbak]# chmod 600 etc/rsyncd.secrets
[root@localhost dmbak]# cat /etc/rsyncd.secrets
dmdba:Dameng123
[root@localhost dmbak]# 

配置xinetd管理rsync

[root@localhost dmdata]#  vim etc/xinetd.d/rsync
[root@localhost dmdata]# cat  etc/xinetd.d/rsync
# default: off
# description: The rsync server is a good addition to an ftp server, as it \
#       allows crc checksumming etc.
service rsync
{
        disable = yes
        flags           = IPv6
        socket_type     = stream
        wait            = no
        user            = root
        server          = usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
[root@localhost dmdata]# systemctl restart rsyncd

  1. 3. 启动服务
rsync --daemon

[root@localhost dmbak]# rsync --daemon
[root@localhost dmbak]# netstat -pantul | grep 873
tcp        0      0 192.168.25.118:873      0.0.0.0:*               LISTEN      1781888/rsync       
[root@localhost dmbak]# 

客户端执行同步
2.执行同步操作:

dmdba@rgy-vmwarevirtualplatform:/dmdata$ cd /dmdata/
dmdba@rgy-vmwarevirtualplatform:/dmdata$ rsync -avzP dmdba@192.168.25.118::share/statcmd-1.2.7.jar dmdata
Password: 
receiving incremental file list
statcmd-1.2.7.jar
      1,183,092 100%   25.07MB/s    0:00:00 (xfr#1, to-chk=0/1)

sent 43 bytes  received 1,181,456 bytes  15,859.05 bytes/sec
total size is 1,183,092  speedup is 1.00
#数据同步成功
dmdba@rgy-vmwarevirtualplatform:/dmdata$ ls
dbfull2025041402  statcmd-1.2.7.jar
dmdba@rgy-vmwarevirtualplatform:/dmdata$ 

下行同步已完成,接下来我将演示上行同步:
服务端

#在执行上行同步前一定要修改模块权限和ACL权限
[root@localhost rsync]# vim etc/rsyncd.conf 
[root@localhost rsync]# cat /etc/rsyncd.conf
address = 192.168.25.118
port 873
log file = var/log/rsyncd.log

[share]
        comment = soft
        path = dmdata
        read only = no #这里一定要改为no
        dont compress =
        auth users = dmdba
        secrets file = etc/rsyncd.secrets
[root@localhost rsync]# setfacl -m u:nobody:rwx dmdata #设置ACL权限
[root@localhost rsync]# pkill rsync #关闭rsync
[root@localhost rsync]# rsync --daemon #启动rsync

客户端

dmdba@rgy-vmwarevirtualplatform:/dmdata$ touch client.txt
dmdba@rgy-vmwarevirtualplatform:/dmdata$ rsync -avzP dmdata/client.txt  dmdba@192.168.25.118::share
Password: 
sending incremental file list
client.txt
              0 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)

sent 102 bytes  received 35 bytes  4.35 bytes/sec
total size is 0  speedup is 0.00
dmdba@rgy-vmwarevirtualplatform:/dmdata$ 
#上行同步成功
在服务端查看:
[root@localhost dmdata]# ls -l client.txt 
-rw-rw-r-- 1 nobody nobody 0  5月  2 18:48 client.txt
[root@localhost dmdata]# 


免密同步黑科技

场景1:SSH密钥验证

# 生成密钥对
ssh-keygen -t rsa


# 上传公钥
ssh-copy-id dmdba@server_ip

# 免密同步测试
rsync -avz data dmdba@192.168.25.118:/dmdata/dmbak/

场景2:rsync密码变量

# 临时生效
export RSYNC_PASSWORD='Dameng123' #Dameng123为虚拟用户dmdba的密码

# 永久生效(写入~/.bashrc)
echo "export RSYNC_PASSWORD='Dameng123'" >> ~/.bashrc

案例演示

[dmdba@localhost ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/dmdba/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/dmdba/.ssh/id_rsa
Your public key has been saved in /home/dmdba/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:OmkldwsGH9rDgbQ4Sg6/ssWvVBYdpOnm7sh3PSBe+wo dmdba@localhost.localdomain
The key's randomart image is:
+---[RSA 3072]----+
|     .+          |
|     * +         |
|. . * = o        |
| = o o * o       |
|  + = o S .      |
| . *. oB + .     |
|. =.Eo=+  .      |
| * +ooo.o        |
|. +++..o..       |
+----[SHA256]-----+
[dmdba@localhost ~]$ 

ssh-copy-id dmdba@192.168.25.132

[dmdba@localhost ~]$ ssh-copy-id dmdba@192.168.25.132
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/dmdba/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
dmdba@192.168.25.132's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '
dmdba@192.168.25.132'"
and check to make sure that only the key(s) you wanted were added.

[dmdba@localhost ~]$ 

验证登录

[dmdba@localhost ~]$ ssh dmdba@192.168.25.132  # 直接登录目标服务器
Welcome to openKylin 2.0 (GNU/Linux 6.6.0-1-generic x86_64)

 * Support:        https://openkylin.top
You do not have any new mail.
Last login: Fri May  2 21:20:02 2025 from 192.168.25.118
/opt/kaiming/exports/share:/usr/local/share:/usr/share
dmdba@rgy-vmwarevirtualplatform:~$ 

拷贝文件

 rsync -avz dmdata/client.txt dmdba@192.168.25.132:/dmdata
 
[dmdba@localhost dmdata]$ rsync -avz dmdata/client.txt dmdba@192.168.25.132:/dmdata
sending incremental file list

sent 66 bytes  received 12 bytes  52.00 bytes/sec
total size is 0  speedup is 0.00
[dmdba@localhost dmdata]$ 

dmdba@rgy-vmwarevirtualplatform:/dmdata$ rm client.txt 
dmdba@rgy-vmwarevirtualplatform:/dmdata$ ls -l
总计 1156
-rw-rw-r--  1 dmdba dmdba          0  5月 2日 18:48 client.txt
drwxrwxr-x 10 dmdba dmdba        271  4月14日 20:23 dbfull2025041402
-rwxrwxr-x  1 dmdba dinstall 1183092 2024年 5月31日 statcmd-1.2.7.jar
dmdba@rgy-vmwarevirtualplatform:/dmdata$ 


实战案例


数据库增量备份与同步方案

场景说明
• 源服务器:192.168.25.118(数据库主机)
• 备份目标:192.168.25.132:/dmdata
• 数据库类型:以达梦数据库(DMDB)为例

备份策略说明
• 全量备份:每周日凌晨0点执行,保留2个周期(14天)
• 增量备份:每日凌晨0点执行,保留2个周期(14天)
• 备份目录结构:

/dmdata/dmback/
├── full/     # 全量备份
└── incr/     # 增量备份


一、备份脚本配置

1. 创建备份目录

# 在源服务器创建备份存储路径
mkdir -p ${BACKUP_DIR}/{full,incr,logs,scripts}
chown -R dmdba:dinstall dmdata/dmback

2. 编写备份脚本 (/dmdata/dmback/scripts/db_backup.sh
)

#!/bin/bash
# 文件名:/dmdata/dmback/scripts/db_backup.sh
# 功能:达梦数据库在线备份(支持并行压缩)

# 全局配置
BACKUP_DIR="/dmdata/dmback"          # 本地备份目录
DB_USER="SYSDBA"                     # 数据库用户
DB_PASS="SYSDBA"                     # 数据库密码
DB_HOST="localhost:5236"             # 数据库连接地址
REMOTE_HOST="192.168.25.132"         # 远程备份服务器
DB_HOME="/home/dmdba/dmdbms"         # 达梦安装路径
PARALLEL_THREADS=4                   # 并行线程数
COMPRESS_LEVEL=5                     # 压缩级别(1-9)
LOG_RETAIN_DAYS=7                    # 日志保留天数

# 初始化环境
export LD_LIBRARY_PATH=$DB_HOME/bin:$PATH
TIMESTAMP=$(date +%Y%m%d%H%M%S)
LOG_FILE="${BACKUP_DIR}/logs/db_backup_${TIMESTAMP}.log"

# 创建目录结构
#mkdir -p ${BACKUP_DIR}/{full,incr,logs}

# --------------------------
# 全量备份函数(每周六执行)
# --------------------------
full_backup() {
    local backup_name="full_$(date +%Y%m%d)"
    echo"[$(date +'%F %T')] 开始全量备份: $backup_name" >> ${LOG_FILE}
    
    $DB_HOME/bin/disql ${DB_USER}/${DB_PASS}@${DB_HOST} <<EOF >> ${LOG_FILE} 2>&1
    BACKUP DATABASE FULL BACKUPSET '${BACKUP_DIR}/full/${backup_name}'
     COMPRESSED LEVEL ${COMPRESS_LEVEL} PARALLEL ${PARALLEL_THREADS};
EOF


    # 保留策略:保留最近2个全量
    ls -dt ${BACKUP_DIR}/full/* | tail -n +3 | xargs rm -rf
}

# --------------------------
# 增量备份函数(周一到周五&周日)
# --------------------------
incr_backup() {
    local backup_name="incr_$(date +%Y%m%d)"
    echo"[$(date +'%F %T')] 开始增量备份: $backup_name" >> ${LOG_FILE}
    
    $DB_HOME/bin/disql ${DB_USER}/${DB_PASS}@${DB_HOST} <<EOF >> ${LOG_FILE} 2>&1
    BACKUP DATABASE INCREMENT WITH BACKUPDIR '${BACKUP_DIR}/full'
    BACKUPSET '${BACKUP_DIR}/incr/${backup_name}'
     COMPRESSED LEVEL ${COMPRESS_LEVEL} PARALLEL ${PARALLEL_THREADS};
EOF


    # 保留策略:保留14天内的增量
    find ${BACKUP_DIR}/incr -mtime +14 -execrm -rf {} \;
}

# --------------------------
# 日志清理函数
# --------------------------
log_clean() {
    find ${BACKUP_DIR}/logs -name "db_backup_*.log" -mtime +${LOG_RETAIN_DAYS} -execrm -f {} \;
}

# --------------------------
# 远程同步函数
# --------------------------
remote_sync() {
    rsync -avzP --bwlimit=100M --delete --partial \
        -e "ssh -i home/dmdba/.ssh/dm_rsa" \
        ${BACKUP_DIR}/{full,incr} \
        dmdba@${REMOTE_HOST}:/dmdata/backup/ >> ${LOG_FILE} 2>&1
}

# --------------------------
# 主流程控制
# --------------------------
case"$1"in
    full)
        full_backup
        remote_sync
        log_clean
        ;;
    incr)
        incr_backup
        remote_sync
        log_clean
        ;;
    *)
        echo"Usage: $0 {full|incr}"
        exit 1
esac

exit 0

并给脚本授权

[dmdba@localhost ~]$ chmod +x dmdata/dmback/scripts/db_backup.sh

二、定时任务配置

# 编辑crontab
crontab -e

# 每周日0点全量备份
0 0 * * 0  /dmdata/dmback/scripts/db_backup.sh full

# 每日0点增量备份
0 0 * * * dmdata/dmback/scripts/db_backup.sh incr

[root@localhost ~]# crontab -l
# 每周日0点全量备份
0 0 * * 0  /dmdata/dmback/scripts/db_backup.sh full

# 每日0点增量备份
0 0 * * * dmdata/dmback/scripts/db_backup.sh incr
[root@localhost ~]# 


流程图:增量备份同步流程

全量

增量

启动定时任务
备份类型
生成全量备份文件
基于最近全量生成增量
清理14天前全量
清理14天前增量
rsync加密同步到远程
记录操作日志
验证备份完整性

三、监控与验证

1. 实时同步监控

tail -f  /dmdata/dmback/logs/db_backup_20250502224059*.log
# 关键日志标记:
# [FULL] Backup completed in 02:15:00
# [INCR] Transferred 15MB (delta 3%)

.....
incr/incr_20250502/incr_20250502_3/
incr/incr_20250502/incr_20250502_3/incr_20250502_3.meta
         99,840 100%  306.60kB/s    0:00:00 (xfr#19, to-chk=0/32)

sent 6,442,130,383 bytes  received 506 bytes  14,492,982.88 bytes/sec
total size is 14,522,784,256  speedup is 2.25

# 检查远程备份完整性
ssh dmdba@192.168.25.132 "ls -lh dmdata/backup/"

[dmdba@localhost ~]$ ls -lh /dmdata/dmback/full/
总用量 0
drwxrwxr-x 6 dmdba dmdba 149  5月  2 22:37 full_20250502
drwxrwxr-x 2 dmdba dmdba  37  5月  2 22:15 full_20250502221508
[dmdba@localhost ~]$ /dmdata/dmback/scripts/db_backup.sh incr
[dmdba@localhost ~]$ 


故障处理速查表

现象
解决方案
备份文件无法同步
检查~/.ssh/dm_rsa
权限是否为600
增量备份不识别变化
确认全量备份路径WITH BACKUPDIR
正确
目标磁盘空间不足
添加--max-size=10G
限制单个文件大小
同步速度过慢
使用--compress
启用压缩传输

四、备份保留策略验证

备份类型
保留规则
清理命令
全量备份
保留最近2周(14天)
find /backup/full -mtime +14 -exec rm -rf {} \;
增量备份
保留最近2周(14天)
find /backup/incr -mtime +14 -exec rm -rf {} \;

五、操作验证步骤

  1. 1. 手动执行全量备份:
 /dmdata/dmback/scripts/db_backup.sh full
 ls -lh /backup/full/
 
 [dmdba@localhost ~]$ /dmdata/dmback/scripts/db_backup.sh full
[dmdba@localhost ~]$ ls -lh /dmdata/dmback/full/
总用量 0
drwxrwxr-x 6 dmdba dmdba 149  5月  2 22:37 full_20250502
drwxrwxr-x 2 dmdba dmdba  37  5月  2 22:15 full_20250502221508
[dmdba@localhost ~]$ 

  1. 2. 手动执行增量备份:
/dmdata/dmback/scripts/db_backup.sh incr
ls -lh /dmdata/dmback/full/

[dmdba@localhost ~]$ /dmdata/dmback/scripts/db_backup.sh incr
[dmdba@localhost ~]$  ls -lh /dmdata/dmback/incr/
总用量 0
drwxrwxr-x 6 dmdba dmdba 149  5月  2 22:41 incr_20250502
[dmdba@localhost ~]$ 

  1. 3. 检查远程同步:
ssh dmdba@192.168.25.132 "ls -lh /dmdata/backup/"

[dmdba@localhost ~]$ ssh dmdba@192.168.25.132 "ls -lh /dmdata/backup/"
总计 0
drwxrwxr-x 4 dmdba dinstall 54  5月 2日 22:33 full
drwxrwxr-x 3 dmdba dinstall 27  5月 2日 22:41 incr
[dmdba@localhost ~]$ 


六、注意事项

  1. 1. 备份链完整性:
    增量备份依赖最近的全量备份,删除旧全量备份时其关联的增量备份将失效。
  2. 2. 存储空间监控:
    建议添加磁盘空间监控;
  3. 3. 恢复演练:
    每季度执行一次全流程恢复测试,验证备份有效性。

避坑指南

  1. 1. 权限陷阱:确保目标目录nobody用户有写权限
  2. 2. 防火墙配置:开放873端口(rsync)或22端口(SSH)
  3. 3. 大文件处理:添加--partial
    支持断点续传
  4. 4. 日志分析:定期检查/var/log/rsyncd.log

结语

rsync就像数据世界的"时光机",通过本文的:
✅ 双模式同步方案
✅ 免密验证技巧
✅ 六大实战场景
您已掌握数据同步的核心技能!现在立即动手,让您的数据在服务器间安全起舞吧!

TIP:生产环境操作前,建议先在测试环境验证命令!

 


文章转载自国产数据库学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论