文章目录

上位机数据备份的自动定时任务

发布于 2026-03-25 17:35:45 · 浏览 9 次 · 评论 0 条

上位机数据备份的自动定时任务

工控上位机(如 WinCC、组态王、Intouch)运行时产生的数据是企业的核心资产。一旦硬盘损坏或系统崩溃,没有备份将导致巨大的生产损失。本文介绍如何利用 Windows 自带的任务计划程序和批处理脚本,实现数据“无人值守”的自动定时备份,无需安装任何第三方软件。


第一阶段:规划备份路径与策略

在编写脚本前,需明确数据从哪里来、要存到哪里去。

  1. 确认 上位机软件的数据存储路径。
    • 常见位置通常位于 D:\Project\DataC:\Program Files\SoftwareName\Project
    • 若使用 SQL Server 数据库,需记录 .mdf.ldf 文件的物理路径。
  2. 准备 备份存储位置。
    • 建议 使用外置移动硬盘、映射网络磁盘(NAS)或除系统盘(C盘)以外的本地分区。
    • 创建 一个新的文件夹,例如 E:\Auto_Backup
  3. 估算 所需存储空间。
    • 为了避免备份盘写满,需计算保留周期内的数据总量。
    • 使用公式估算:$V_{total} = V_{daily} \times N_{days}$
    • 其中,$V_{total}$ 为总容量,$V_{daily}$ 为日均数据增量,$N_{days}$ 为希望保留的天数。

第二阶段:编写自动备份脚本

使用 robocopy(Robust File Copy)命令编写批处理脚本。该工具是 Windows 内置的,具备断点续传和镜像同步功能,比普通的复制命令更可靠。

  1. 右键 桌面空白处。选择 “新建” -> “文本文档”。

  2. 打开 该文本文档。输入 以下代码:

    @echo off
    setlocal
    
    :: --- 配置区域 ---
    :: 设置源路径(请根据实际情况修改,确保最后有反斜杠)
    set "source_dir=D:\SCADA_Project\Data\"
    
    :: 设置目标路径(备份存放位置,建议使用移动硬盘或网络盘)
    set "target_dir=E:\Auto_Backup\"
    
    :: 设置日志文件路径
    set "log_file=E:\Auto_Backup\backup_log.txt"
    :: ----------------
    
    echo ======================================== >> "%log_file%"
    echo 开始备份时间: %date% %time% >> "%log_file%"
    
    :: 执行镜像备份 (/MIR): 如果源文件删除了,目标也会删除,保持完全一致
    :: /R:3 失败重试 3 次
    :: /W:5 每次重试等待 5 秒
    :: /NP 不显示进度百分比(日志更清晰)
    :: /LOG+: 追加日志而不是覆盖
    robocopy "%source_dir%" "%target_dir%" /MIR /R:3 /W:5 /NP /LOG+:"%log_file%"
    
    echo 备份结束时间: %date% %time% >> "%log_file%"
    echo ======================================== >> "%log_file%"
    
    endlocal
  3. 修改 脚本中的 source_dirtarget_dir 为实际路径。

  4. 保存 文件。按下 Ctrl + S 关闭编辑器。

  5. 重命名 该文件。将后缀名从 .txt 改为 .bat(例如 AutoBackup.bat)。

    • 若看不见后缀名,点击 窗口顶部的“查看”选项卡。勾选 “文件扩展名”。

第三阶段:设置定时任务

将脚本挂载到 Windows 任务计划程序中,让系统按时间自动执行。

  1. 按下 Win + R 键。输入 taskschd.msc按下 回车键打开任务计划程序。
  2. 点击 右侧操作栏的 “创建基本任务”。
  3. 输入 名称 上位机每日自动备份点击 “下一步”。
  4. 选择 触发器。勾选 “每天”。点击 “下一步”。
  5. 设置 开始时间。
    • 建议 设置在生产低峰期,如 02:00:00
    • 重复 间隔选择 “1” 天。点击 “下一步”。
  6. 选择 操作。勾选 “启动程序”。点击 “下一步”。
  7. 配置 程序路径。
    • 点击 “浏览” 按钮。选中打开 第二阶段创建的 .bat 文件。
    • “起始于(可选)” 一栏 填写 脚本所在的目录(例如 C:\Users\Admin\Desktop),这能防止路径找不到的问题。
  8. 点击 “下一步”。勾选 “当单击完成时,打开此任务属性的对话框”。
  9. 点击 “完成” 按钮。
  10. 切换 到 “条件” 选项卡。
    • 勾选 “唤醒计算机运行此任务”(防止电脑休眠导致备份失败)。
    • 建议 勾选 “只有在计算机使用交流电源时才启动此任务”(针对笔记本上位机)。
  11. 点击 “确定” 保存设置。

第四阶段:功能原理与逻辑解析

为了确保数据传输的可靠性,任务执行流程遵循严格的逻辑顺序。

graph TD A["定时触发器到达"] --> B{源路径是否
可访问?} B -- 否 --> C["记录错误日志至文件"] B -- 是 --> D["执行 Robocopy 镜像同步"] D --> E{复制是否成功?} E -- 重试3次后仍失败 --> C E -- 成功 --> F["记录完成时间与状态"] F --> G["任务结束"]

脚本的核心参数决定了备份的行为,以下是 robocopy 关键参数对照表:

参数代码 功能说明 实际作用
/MIR 镜像目录树 完全同步:目标文件夹将与源文件夹一模一样。源中删除的文件,目标中也会被删除。
/R:3 重试次数 遇到文件被占用(如正在记录的数据库文件)时,尝试读取 3 次,不立即报错放弃。
/W:5 等待时间 每次重试之间等待 5 秒,给系统一点喘息时间,释放文件锁定。
/LOG+: 日志追加 将每次运行的结果追加写入同一个日志文件,方便长期追踪。

第五阶段:验证与监控

设置完成后,必须进行人工验证,确保任务在未来能正常执行。

  1. 右键 列表中的 上位机每日自动备份 任务。选择 “运行”。
  2. 等待 几秒钟。打开 备份目标文件夹(E:\Auto_Backup)。
  3. 检查 文件是否出现,且文件大小与源文件一致。
  4. 打开 日志文件(backup_log.txt)。
  5. 查看 末尾是否显示 错误的文件数 = 0。如果不是 0,需检查源文件是否被上位机软件独占锁定,或者路径是否错误。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文