ontape是Informix官方提供的备份工具,支持0级(完整备份)、1级(增量备份)、2级(差异备份),适用于大规模生产环境。
sudo -u informix ontape -s -L 0 -d database_name -o /backup/informix/dbname_$(date +%F).bak
参数说明:-s(静默模式,减少输出)、-L 0(0级备份)、-d(指定数据库名)、-o(输出文件路径)。sudo -u informix ontape -s -L 1 -d database_name -o /backup/informix/dbname_inc_$(date +%F).bak
sudo -u informix ontape -s -L 2 -d database_name -o /backup/informix/dbname_diff_$(date +%F).bak
dbexport将数据库导出为ASCII文本文件(包含数据结构和数据),适合需要手动修改数据的场景(如迁移至其他数据库)。
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(指定导入文件路径)。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(指定卸出文件路径)。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(指定解压目录)。通过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
sudo crontab -e
添加以下内容:0 2 * * * /opt/informix/scripts/auto_backup.sh
注意:脚本需赋予执行权限(chmod +x /opt/informix/scripts/auto_backup.sh),并定期检查日志文件(/backup/informix/backup_*.log)确认备份是否成功。sudo -u informix ontape -r /backup/path # 恢复整个系统(需指定备份目录)
sudo -u informix ontape -r -D /data/space # 恢复指定数据空间
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级
onbar支持并行备份和恢复,适用于大规模系统,且支持时间点恢复(恢复到某个特定时间)。
onbar -r -L 0 # 恢复0级备份(需先配置逻辑日志自动备份)
onbar -r -l # 基于最近全量备份+逻辑日志前滚恢复
若使用dbexport备份,可通过dbimport恢复单库:
sudo -u informix dbimport database_name -i /backup/informix/dbname_export.dmp -c "informix"
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
若onconfig等配置文件损坏,从备份中恢复并重启数据库:
cp /backup/onconfig /etc/onconfig.dbname # 恢复配置文件
oninit -vy # 重启数据库(-v显示详细信息,-y自动应答yes)
备份前准备:
onconfig配置文件(如TAPEDEV、TAPEBLK、TAPESIZE)的正确性,确保ontape工具能正常写入备份设备。恢复前准备:
onmode -ky),避免数据冲突。onconfig配置与备份时一致(如数据目录路径、块大小、共享内存参数)。ontape -t命令验证备份是否能正常读取。权限与路径:
sudo -u informix),避免权限不足导致失败。onconfig文件。日志管理:
onstat -l),确保逻辑日志未满,避免数据库无法正常运行。onmode -l),释放磁盘空间。定期测试: