温馨提示×

Ubuntu Informix如何进行数据备份与恢复演练

小樊
45
2025-10-12 18:25:51
栏目: 智能运维

Ubuntu Informix数据备份与恢复演练指南

一、备份演练:常用工具与步骤

Informix在Ubuntu上的备份可通过**ontape/onbar(物理备份)、dbexport(逻辑备份)、tar/rsync(文件级备份)**三类方式实现,以下是详细演练步骤:

1. ontape/onbar物理备份(推荐用于生产环境)

ontape是Informix原生物理备份工具,支持**0级(全量)、1级(增量)、2级(累积增量)**备份;onbar是其增强版,支持并行备份和恢复到指定时间点,适用于大规模数据库。

(1)准备工作

  • 确认TAPEDEV(备份设备路径,如/dev/st0或目录)、TAPEBLK(块大小,默认64)、TAPESIZE(磁带大小,默认10240MB)等参数已在$INFORMIXDIR/etc/onconfig中正确配置;
  • 确保备份目录存在且有**Informix用户(如informix)**写入权限:
    sudo mkdir -p /backup/informix
    sudo chown informix:informix /backup/informix
    

(2)ontape零级备份(全量)

# 启动ontape备份,指定备份目录和标签
sudo -u informix ontape -s -L 0 -t /backup/informix/full_backup_$(date +%Y%m%d)
  • -s:表示备份模式;
  • -L 0:零级备份(全量);
  • -t:备份标签(可选,用于标识备份集)。

(3)onbar备份(更灵活)

若已配置onbar,需先初始化备份环境(参考Informix官方文档),然后执行:

# 执行全量备份
sudo -u informix onbar -b -c -f /backup/informix/bar_full_$(date +%Y%m%d)

# 执行增量备份(需先完成0级备份)
sudo -u informix onbar -b -c -f /backup/informix/bar_incr_$(date +%Y%m%d)
  • -b:备份模式;
  • -c:创建备份集。

(4)自动定时备份(可选)

通过cron每天凌晨2点执行备份脚本(如/data/db_backup/auto_back.sh):

# 编辑cron任务
crontab -e

添加以下内容:

0 2 * * * /data/db_backup/auto_back.sh

脚本示例(auto_back.sh):

#!/bin/bash
BACKUP_DIR="/backup/informix"
LOG_FILE="$BACKUP_DIR/backup_$(date +%Y%m%d).log"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)

# 执行ontape零级备份
echo "[$TIMESTAMP] Starting ontape full backup..." >> $LOG_FILE
sudo -u informix ontape -s -L 0 -t "$BACKUP_DIR/full_$TIMESTAMP" >> $LOG_FILE 2>&1
if [ $? -eq 0 ]; then
    echo "[$TIMESTAMP] Backup completed successfully." >> $LOG_FILE
    # 删除30天前的备份
    find "$BACKUP_DIR" -name "full_*" -type f -mtime +30 -exec rm -f {} \;
else
    echo "[$TIMESTAMP] Backup failed!" >> $LOG_FILE
fi

赋予执行权限:

chmod +x /data/db_backup/auto_back.sh

2. dbexport逻辑备份(适用于小规模数据库)

dbexport将数据库导出为ASCII文本文件(包含表结构和数据),适合跨平台迁移或小库备份。

(1)备份命令

# 导出数据库(如mydb),输出到指定目录
dbexport -c "informix@localhost:mydb" -o /backup/informix/mydb_export_$(date +%Y%m%d)
  • -c:连接字符串(格式:username@hostname:database);
  • -o:输出目录。

(2)恢复命令

# 创建空数据库(如mydb_restore)
dbaccess - - <<EOF
CREATE DATABASE mydb_restore WITH BUFFERED LOG;
EOF

# 导入备份数据
dbimport -d mydb_restore -i /backup/informix/mydb_export_$(date +%Y%m%d) -c -l buffered
  • -i:输入目录;
  • -l buffered:使用缓冲日志模式(提升恢复性能)。

3. 文件级备份(tar/rsync)

适用于备份Informix配置文件和数据目录(需停机,避免数据不一致)。

(1)备份命令

# 备份数据目录和配置文件
tar -czvf /backup/informix/informix_files_$(date +%Y%m%d).tar.gz \
    /opt/IBM/informix/data \
    /opt/IBM/informix/etc/onconfig
  • -z:gzip压缩;
  • -v:显示进度。

(2)恢复命令

# 解压到目标目录(需停止Informix服务)
sudo systemctl stop informix
tar -xzvf /backup/informix/informix_files_$(date +%Y%m%d).tar.gz -C /
sudo systemctl start informix

二、恢复演练:工具与步骤

恢复需根据备份类型选择对应工具,以下是常见场景的演练步骤:

1. ontape/onbar恢复(物理恢复)

(1)准备工作

  • 停止Informix服务(避免数据冲突):
    sudo systemctl stop informix
    
  • 确保备份文件完整(可通过ls -lh /backup/informix检查)。

(2)ontape恢复(零级备份)

# 启动ontape恢复,指定备份标签
sudo -u informix ontape -r -t /backup/informix/full_backup_20250915
  • -r:恢复模式;
  • -t:备份标签(需与备份时一致)。

(3)onbar恢复(全量+增量)

# 恢复全量备份
sudo -u informix onbar -r -f /backup/informix/bar_full_20250915

# 恢复增量备份(若有)
sudo -u informix onbar -r -f /backup/informix/bar_incr_20250916
  • -f:指定备份文件路径。

(4)启动服务

恢复完成后启动Informix:

sudo systemctl start informix

2. dbimport恢复(逻辑恢复)

若数据库损坏或需迁移,可使用dbimport恢复逻辑备份:

# 创建目标数据库
dbaccess - - <<EOF
CREATE DATABASE mydb_restore WITH BUFFERED LOG;
EOF

# 导入备份数据
dbimport -d mydb_restore -i /backup/informix/mydb_export_20250915 -c -l buffered

恢复后可通过dbaccess mydb_restore验证数据完整性。

3. 文件级恢复(tar/rsync)

若数据目录损坏,可通过备份文件恢复:

# 停止Informix服务
sudo systemctl stop informix

# 解压备份文件
tar -xzvf /backup/informix/informix_files_20250915.tar.gz -C /

# 启动Informix服务
sudo systemctl start informix

三、演练注意事项

  1. 测试备份有效性:每季度至少执行一次恢复演练,验证备份文件是否能成功恢复;
  2. 备份完整性检查:定期检查备份文件的修改时间和大小(如ls -lh /backup/informix);
  3. 避免写入操作:备份/恢复过程中停止数据库服务或锁定表,防止数据不一致;
  4. 保留多版本备份:保留近30天的备份文件(如通过find命令自动删除旧备份);
  5. 文档记录:记录备份时间、路径、恢复步骤,便于故障排查。

通过以上演练,可确保Ubuntu环境下Informix数据库的备份与恢复流程可靠,有效应对数据丢失风险。

0