
1) 【一句话结论】:针对船舶动力设备控制系统,构建分层多级备份体系,结合本地RAID存储与远程云备份,针对运行数据(实时数据库、消息队列)、配置文件、系统环境分别采用全量/增量/日志备份,确保在船舶复杂环境(网络中断、设备振动)下快速恢复,满足RTO≤1小时、RPO≤1小时的要求。
2) 【原理/概念讲解】:老师口吻,解释数据备份与系统备份。数据备份分为运行数据(动态高频变化的传感器数据、控制日志,存储在实时数据库或消息队列中)和配置文件(静态或低频变化的系统参数、设备配置,存储在文件系统);系统备份是操作系统(如CentOS 8)、应用软件(控制算法、监控界面)及系统配置的完整镜像。类比:运行数据像“实时流动的流水账”,配置文件像“固定的操作手册”,系统备份像“整个控制系统的完整“快照”。船舶环境特殊,需考虑网络不稳定、设备振动等影响,备份策略需容错。
3) 【对比与适用场景】:用表格对比不同备份类型。
| 备份类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 全量备份 | 备份所有目标数据(文件/系统) | 完整但占用空间大,恢复速度快 | 配置文件(如系统参数)、不常变动的运行数据(如设备初始状态) | 需定期执行,占用存储空间 |
| 增量备份 | 仅备份自上次备份以来发生变更的数据 | 占用空间小,备份速度快,对系统性能影响小(高频执行) | 频繁变化的运行数据(如实时传感器数据、控制日志,每小时变化) | 需结合全量备份恢复,恢复流程稍复杂 |
| 日志备份(事务日志) | 记录数据库/系统的事务操作日志 | 可精确恢复到故障前任意时间点(如分钟级) | 数据丢失或系统崩溃时,需精确恢复到故障前状态(如RPO≤1小时) | 需持续记录,日志文件需定期归档,避免日志文件过大导致备份失败 |
| 消息队列日志备份 | 备份消息队列的日志文件(如Kafka的log.dir) | 可重播消息,恢复到故障前状态 | 消息队列中的控制指令、状态更新(如Kafka) | 需保留日志文件,避免日志文件滚动导致数据丢失 |
4) 【示例】:假设船舶动力设备控制系统使用CentOS 8,运行数据包括MySQL数据库(存储传感器数据)和Kafka消息队列(存储控制指令),配置文件为系统配置文件(/etc/目录),系统备份为系统镜像。备份策略:
mysqldump --incremental --master-data=2 --database sensor_data > /backup/mysql_incremental_$(date +%H).sql),每日0点全量备份(mysqldump --all-databases > /backup/mysql_full_$(date +%F).sql),每周0点日志备份(mysqldump --log-bin --master-data=2 --database sensor_data > /backup/mysql_log_$(date +%U).sql)。rsync -avz /var/lib/kafka-logs/ /backup/kafka_logs_$(date +%H)),每日0点全量备份(备份整个Kafka日志目录)。tar -czf /backup/config_$(date +%F).tar.gz /etc)。system_backup_$(date +%U).img),存储在本地RAID 5阵列(容错)。恢复流程:
tar -xzf /backup/config_$(date +%F).tar.gz -C /)。mysql -u root -p sensor_data < /backup/mysql_full_$(date +%F).sql),再按时间顺序应用增量备份(mysql -u root -p sensor_data < /backup/mysql_incremental_$(date +%H).sql),最后应用日志备份(mysql -u root -p sensor_data < /backup/mysql_log_$(date +%U).sql),处理锁表(如使用FLUSH TABLES WITH READ LOCK;锁定表,恢复后执行UNLOCK TABLES;)。rsync -avz /backup/kafka_logs_$(date +%H) /var/lib/kafka-logs/),重启Kafka服务(systemctl restart kafka),确保消息重播。dd if=/backup/system_backup_$(date +%U).img of=/dev/sda),启动系统,验证应用(如控制算法、监控界面)是否正常运行,检查传感器数据是否同步。5) 【面试口播版答案】:面试官您好,针对船舶动力设备控制系统的备份与恢复方案,核心是构建容错型分层备份体系,结合本地RAID存储与远程云备份,确保在船舶复杂环境(网络中断、设备振动)下快速恢复。具体来说,运行数据(如传感器实时数据、控制指令)分为数据库和消息队列,分别采用增量/日志备份(RPO≤1小时),配置文件每日全量备份(RPO≤24小时),系统每周做完整镜像备份。恢复流程上,先恢复配置文件,再恢复数据库(结合全量、增量、日志备份处理锁表),恢复消息队列日志,最后恢复系统镜像,确保系统在故障后1小时内恢复,满足船舶动力设备对系统稳定性的要求。
6) 【追问清单】:
FLUSH TABLES WITH READ LOCK;锁定表,恢复后执行UNLOCK TABLES;,或使用事务日志恢复到锁表前的时间点。7) 【常见坑/雷区】: