sxl_88 2025-05-07 10:12 采纳率: 47.9%
浏览 3
已结题

Linux系统中如何实现自动化脚本备份Oracle数据库

想把在Windows系统上备份Oracle数据库的这段自动化脚本,需要迁移到Linux系统上进行自动备份Oracle数据库(设置备份数据库的时间为凌晨1点),
请问,是否可以修改现有这段在Windows系统上备份Oracle数据库的自动化脚本,应该如何进行完整的操作过程,谢谢!

附,在Windows系统上备份Oracle数据库的这段自动化脚本截图,如下:

img

  • 写回答

3条回答 默认 最新

  • 宝码香车 优质创作者: JavaScript技术领域 2025-05-07 10:14
    关注

    让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
    如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!

    Linux系统中自动化脚本备份Oracle数据库方案

    要将Windows批处理脚本迁移到Linux系统实现Oracle数据库自动备份,需要进行以下完整操作过程:

    1. 脚本转换

    Windows批处理脚本(.bat)需要转换为Linux bash脚本(.sh)。以下是转换后的脚本示例:

    #!/bin/bash
    
    # 设置备份目录和文件名
    DUMP_DIR=/opt/ora_db_backup/pndb
    DUMP_FILE=$(date +"%y%m%d")_pmdb1.dmp
    DUMP_LOG_FILE=$(date +"%y%m%d")_export.log
    DUMP_PATH=$DUMP_DIR/$DUMP_FILE
    DUMP_LOG_PATH=$DUMP_DIR/$DUMP_LOG_FILE
    
    # 删除15天前的备份
    find $DUMP_DIR -name "*.dmp" -mtime +15 -exec rm -f {} \;
    find $DUMP_DIR -name "*.log" -mtime +15 -exec rm -f {} \;
    
    # 删除当天已存在的备份文件
    [ -f "$DUMP_PATH" ] && rm -f "$DUMP_PATH"
    [ -f "$DUMP_LOG_PATH" ] && rm -f "$DUMP_LOG_PATH"
    
    # 开始备份
    expdp system/abc123@pndb directory=pmdb_bk_dir dumpfile=$DUMP_FILE logfile=$DUMP_LOG_FILE schemas=dbo_pmdb
    

    2. 设置脚本权限

    chmod +x /path/to/your_script.sh
    

    3. 配置cron定时任务

    设置每天凌晨1点执行备份:

    # 编辑crontab
    crontab -e
    

    添加以下内容:

    0 1 * * * /path/to/your_script.sh > /path/to/backup_log.log 2>&1
    

    4. 关键修改说明

    1. 路径格式:Windows的反斜杠\改为Linux的正斜杠/
    2. 日期格式%date%改为$(date +"%y%m%d")
    3. 文件删除forfiles改为find命令
    4. 备份命令:保持expdp不变,这是Oracle工具
    5. 环境变量:确保Oracle环境变量已正确设置

    5. 完整操作流程

    1. 在Linux服务器上创建备份目录:

      mkdir -p /opt/ora_db_backup/pndb
      
    2. 创建脚本文件:

      vi /opt/scripts/oracle_backup.sh
      
    3. 粘贴上述转换后的脚本内容并保存

    4. 测试脚本执行:

      /opt/scripts/oracle_backup.sh
      
    5. 设置cron定时任务

    6. 验证备份文件是否生成

    注意事项

    1. 确保Oracle客户端工具(expdp)已安装并配置正确
    2. 确保脚本中使用的Oracle目录对象(pmdb_bk_dir)已创建
    3. 检查备份目录的权限,确保执行脚本的用户有读写权限
    4. 建议添加错误处理和日志记录功能
    5. 考虑备份文件的压缩以节省空间

    如需更详细的错误处理,可以扩展脚本,添加邮件通知等功能。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月15日
  • 已采纳回答 5月7日
  • 创建了问题 5月7日