Debian Informix如何备份与恢复
导读:Debian Informix数据库备份与恢复指南 一、备份方法 1. ontape工具(原生分级备份) ontape是Informix官方提供的备份工具,支持0级(完整备份)、1级(增量备份)、2级(差异备份),适用于大规模生产环境。...
Debian Informix数据库备份与恢复指南
一、备份方法
1. ontape工具(原生分级备份)
ontape是Informix官方提供的备份工具,支持0级(完整备份)、1级(增量备份)、2级(差异备份),适用于大规模生产环境。
- 0级完整备份(覆盖所有数据及逻辑日志):
参数说明:sudo -u informix ontape -s -L 0 -d database_name -o /backup/informix/dbname_$(date +%F).bak
-s
(静默模式,减少输出)、-L 0
(0级备份)、-d
(指定数据库名)、-o
(输出文件路径)。 - 1级增量备份(仅备份0级后修改的数据):
sudo -u informix ontape -s -L 1 -d database_name -o /backup/informix/dbname_inc_$(date +%F).bak
- 2级差异备份(仅备份1级后修改的数据):
sudo -u informix ontape -s -L 2 -d database_name -o /backup/informix/dbname_diff_$(date +%F).bak
2. dbexport/dbimport工具(ASCII格式,灵活可编辑)
dbexport将数据库导出为ASCII文本文件(包含数据结构和数据),适合需要手动修改数据的场景(如迁移至其他数据库)。
- 备份命令(需切换至informix用户):
参数说明:sudo -u informix dbexport database_name -ss -c "informix" -f /backup/informix/dbname_export.dmp
-ss
(抑制统计信息输出)、-c
(指定连接密码)、-f
(输出文件路径)。 - 恢复命令:
参数说明:sudo -u informix dbimport database_name -i /backup/informix/dbname_export.dmp -c "informix"
-i
(指定导入文件路径)。
3. onunload命令(二进制格式,高效灵活)
onunload以页为单位卸出数据,备份效率高于dbexport,适合备份单个表或特定数据(如大表)。
- 备份单表:
参数说明:sudo -u informix onunload -l -t -b -s database_name:table_name -o /backup/informix/table_name.unl
-l
(加载模式,用于后续恢复)、-t
(文本格式,可读性强)、-b
(二进制格式,效率高)、-s
(静默模式)。 - 恢复单表:
参数说明:sudo -u informix onload -d database_name -i /backup/informix/table_name.unl
-d
(指定数据库名)、-i
(指定卸出文件路径)。
4. tar命令(物理备份,简单快速)
tar命令可将Informix的数据目录、配置文件打包成压缩文件,适合快速备份整个数据库实例。
- 备份命令:
参数说明:sudo tar -czvf /backup/informix/full_backup_$(date +%F).tar.gz /opt/IBM/informix/data /opt/IBM/informix/etc/onconfig.*
-c
(创建归档)、-z
(gzip压缩)、-v
(显示进度)、-f
(指定输出文件)。 - 恢复命令:
参数说明:sudo tar -xzvf /backup/informix/full_backup_$(date +%F).tar.gz -C /
-x
(解压)、-C
(指定解压目录)。
5. 自动定时备份(避免人工遗漏)
通过Debian的cron定时任务,定期执行备份脚本(如每日0级备份+每周增量备份)。
- 创建备份脚本(
/opt/informix/scripts/auto_backup.sh
):#!/bin/bash BACKUP_DIR="/backup/informix" DATE=$(date +%Y%m%d) LOG_FILE="$BACKUP_DIR/backup_$(date +%F).log" # 执行0级备份 echo "[$(date)] Starting 0-level backup..." > > "$LOG_FILE" sudo -u informix ontape -s -L 0 -d database_name -o "$BACKUP_DIR/dbname_$(date +%F).bak" > > "$LOG_FILE" 2> & 1 if [ $? -eq 0 ]; then echo "[$(date)] 0-level backup completed successfully." > > "$LOG_FILE" else echo "[$(date)] 0-level backup failed!" > > "$LOG_FILE" fi # 删除30天前的备份 find "$BACKUP_DIR" -name "dbname_*.bak" -type f -mtime +30 -exec rm -rf { } \; > > "$LOG_FILE" 2> & 1
- 设置cron任务(每天凌晨2点执行):
添加以下内容:sudo crontab -e
注意:脚本需赋予执行权限(0 2 * * * /opt/informix/scripts/auto_backup.sh
chmod +x /opt/informix/scripts/auto_backup.sh
),并定期检查日志文件(/backup/informix/backup_*.log
)确认备份是否成功。
二、恢复方法
1. ontape工具(全量/增量恢复)
- 全量恢复(数据严重损坏):
sudo -u informix ontape -r /backup/path # 恢复整个系统(需指定备份目录) sudo -u informix ontape -r -D /data/space # 恢复指定数据空间
- 增量恢复(结合逻辑日志):
若进行了增量备份,需先恢复0级备份,再依次恢复增量备份,并应用逻辑日志:sudo -u informix ontape -r -L 0 -d database_name -i /backup/informix/dbname_20250101.bak # 恢复0级 sudo -u informix ontape -r -L 1 -d database_name -i /backup/informix/dbname_inc_20250102.bak # 恢复1级 sudo -u informix ontape -r -L 2 -d database_name -i /backup/informix/dbname_diff_20250103.bak # 恢复2级
2. onbar工具(大型系统并行恢复)
onbar支持并行备份和恢复,适用于大规模系统,且支持时间点恢复(恢复到某个特定时间)。
- 0级恢复(全量):
onbar -r -L 0 # 恢复0级备份(需先配置逻辑日志自动备份)
- 增量恢复(结合逻辑日志):
onbar -r -l # 基于最近全量备份+逻辑日志前滚恢复
3. dbimport工具(单库恢复)
若使用dbexport备份,可通过dbimport恢复单库:
sudo -u informix dbimport database_name -i /backup/informix/dbname_export.dmp -c "informix"
4. 表级恢复(误删数据)
- 卸出需恢复的表数据:
sudo -u informix onunload -l -t -b -s database_name:table_name -o /tmp/table_backup.unl
- 导入表数据:
sudo -u informix onload -d database_name -i /tmp/table_backup.unl
5. 系统配置恢复(配置文件损坏)
若onconfig
等配置文件损坏,从备份中恢复并重启数据库:
cp /backup/onconfig /etc/onconfig.dbname # 恢复配置文件
oninit -vy # 重启数据库(-v显示详细信息,-y自动应答yes)
三、关键注意事项
-
备份前准备:
- 确保备份文件存储在外部介质(如外部硬盘、云端),避免本地磁盘故障导致备份丢失。
- 备份前验证
onconfig
配置文件(如TAPEDEV
、TAPEBLK
、TAPESIZE
)的正确性,确保ontape工具能正常写入备份设备。 - 大规模备份前,建议停止非关键业务,减少对生产环境的影响。
-
恢复前准备:
- 恢复前停止Informix服务(
onmode -ky
),避免数据冲突。 - 确保恢复环境的
onconfig
配置与备份时一致(如数据目录路径、块大小、共享内存参数)。 - 测试备份文件的完整性:使用
ontape -t
命令验证备份是否能正常读取。
- 恢复前停止Informix服务(
-
权限与路径:
- 所有备份和恢复操作需使用informix用户权限(
sudo -u informix
),避免权限不足导致失败。 - 恢复时需确保备份路径与原路径一致(如数据目录、配置文件路径),若路径变更需修改
onconfig
文件。
- 所有备份和恢复操作需使用informix用户权限(
-
日志管理:
- 恢复后检查逻辑日志状态(
onstat -l
),确保逻辑日志未满,避免数据库无法正常运行。 - 定期清理过期逻辑日志(
onmode -l
),释放磁盘空间。
- 恢复后检查逻辑日志状态(
-
定期测试:
- 每季度进行一次恢复演练,模拟数据丢失场景(如误删表、磁盘故障),验证备份的有效性和恢复流程的可行性。
- 记录恢复过程中的问题(如备份文件损坏、路径错误),及时优化备份策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Informix如何备份与恢复
本文地址: https://pptw.com/jishu/729831.html