基于BAT指令定时备份Oracle并发送邮件

前言

在企业级应用程序中,数据是非常重要的资源。因此,我们需要定期备份数据以确保其安全性和完整性。在Oracle数据库中,我们可以使用多种方法来备份数据,其中一种方法是使用BAT脚本来进行自动化备份。

在本文中,我们将介绍如何使用BAT脚本在Windows系统上定时备份Oracle数据库,并将备份文件通过电子邮件发送到指定的邮箱地址。

步骤1:创建备份脚本

首先,在Windows系统上创建一个名为backup.bat的文件,该文件将包含我们的备份脚本代码。打开记事本或任何其他文本编辑器,并将以下代码复制粘贴到文件中:

REM 设置日期格式
SET date=%date:~0,4%-%date:~5,2%-%date:~8,2%

REM 设置备份文件名
SET backup_file=backup-%date%.dmp

REM 执行oracle备份命令
expdp username/password@ORACLE_SID directory=data_pump_dir dumpfile=%backup_file% logfile=backup.log full=y

REM 发送备份文件到指定邮箱
blat "%backup_file%" -to admin@example.com -subject "Oracle Backup" -body "Please find the attached file."

请注意,以上代码仅仅是示例,你需要根据自己的情况进行修改。其中,我们使用命令expdp来备份Oracle数据库,该命令将生成一个名为backup-%date%.dmp的备份文件,并将其存储在指定目录中。同时,我们还使用了blat命令来发送电子邮件,将备份文件作为附件发送到指定邮箱。

步骤2:设置定时任务

要定期运行备份脚本,在Windows系统上设置定时任务是非常必要的。你可以使用Windows自带的任务计划程序来设置定时任务。以下是设置定时任务的步骤:

  1. 打开“控制面板”,选择“管理工具”,然后打开“任务计划程序”。

  2. 在任务计划程序中,选择“创建基本任务”选项,然后按照提示输入名称和说明。

  3. 选择备份脚本执行时间和频率。

  4. 选择要运行的程序或脚本,然后输入backup.bat文件的路径。

  5. 点击“完成”完成设置。

现在,你已经成功地设置了一个定时任务,以便自动运行备份脚本。

步骤3:测试备份脚本

在设置定时任务之前,最好先手动测试一下备份脚本是否能正常运行。在备份脚本所在的目录中,双击运行backup.bat文件。如果一切正常,你应该能看到备份文件已经生成,并已经通过电子邮件发送到指定的邮箱地址。

步骤4:设置环境变量

要运行备份脚本,需要设置一些环境变量。打开命令提示符,并输入以下命令:

SET ORACLE_HOME=C:\app\oracle\product\12.2.0\dbhome_1
SET PATH=%PATH%;%ORACLE_HOME%\bin
SET ORACLE_SID=orcl

其中,ORACLE_HOME是Oracle数据库的安装目录,而ORACLE_SID是Oracle实例的名称。

步骤5:设置Blat邮件客户端

blat -install smtp.163.com aikesls@163.com password -f aikesls@163.com

在发送电子邮件时,我们使用了一个名为Blat的命令行邮件客户端。要使用Blat,你需要将其下载并安装到计算机中。然后,在backup.bat文件中设置正确的路径以执行blat.exe。并且要提前执行上述指令

请注意,发送电子邮件时,需要提供SMTP服务器的地址和端口。如果SMTP服务器需要身份验证,则还需要提供用户名和密码。可以在backup.bat文件中设置这些参数以确保邮件成功发送。

总结

本文介绍了如何使用BAT脚本在Windows系统上定时备份Oracle数据库,并将备份文件通过电子邮件发送到指定的邮箱地址。我们还讨论了如何设置定时任务、环境变量、Blat邮件客户端以及对备份文件进行加密。这些技术可以帮助企业保护其重要数据并确保其完整性和安全性。

完整脚本

@echo off

::blat -install smtp.163.com aikesls@163.com password -f aikesls@163.com

set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set filename=E:\aikes_DB\BAK\%BACKUPDATE%.DMP

::邮件 账号、密码、服务端地址、发件人、收件人(逗号分割多个收件人)
set recipient=aikesls@163.com,aikesls@163.com
set server=smtp.163.com
set username=aikesls@163.com
set mail_password=password

echo Generating file...%filename%

::数据库  用户名、密码
set USER=aikes_aikes
set PASSWORD=aikes_aikes
expdp userid=%USER%/%PASSWORD%@192.168.5.147/orcl directory=dump_dir exclude=statistics compression=all schemas=%USER% dumpfile=%BACKUPDATE%.dmp logfile=%BACKUPDATE%.log

echo Sending email...

:SendEmail
if not exist %filename% (
    timeout /t 5
    goto SendEmail
) else (
    blat -to %recipient% -server %server% -u %username% -pw "%mail_password%" -subject "aikes_DB_BACKUP"  -body "<html><body>Hello,<br><br>Today is %BACKUPDATE%.<br><br>This is the new aikes database backup package.</body></html>" -html -attach %filename%
)

::发送成功删除备份包
if errorlevel 1 (
    echo Error sending email.
) else (
    echo Email sent successfully.
::    del %filename%
    echo File deleted successfully.
)

任务计划

 邮件效果

两天备份一次,发送到邮件

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aikes902

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值