Windows下自动备份Oracle数据库

封面

原文链接:Windows下自动备份Oracle数据库 | Elvin

前言

编写这边文章的初衷与上一篇文章一样,一些细节问题这里不在赘述,更详细的解释可以看上一篇文章:Windows下自动备份MySQL数据库

一、数据库备份的脚本文件

1、脚本处理文件

先使用txt文档把下面内容复制进去,然后修改后缀.txt为.bat即可

@echo off
echo ================================================
echo Windows环境下Oracle11.2g数据库的自动备份脚本
echo  1. 使用data_当前日期命名备份文件
echo  2. 自动删除7天前的备份,防止文件越来越多
echo ================================================

::以“YYYYMMDD”格式取出当前时间。
echo =====================当天时间=====================  
set BACKUPDATE=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2%%Time:~6,2%
echo ================================================

::设置用户名、密码和要备份的数据库
set USER=robot
set PASSWORD=robot123456
set DATABASE=134.175.59.49/orcl

::创建备份目录  
if not exist "C:\oraclebackup\data"    mkdir C:\oraclebackup\data
if not exist "C:\oraclebackup\log"     mkdir C:\oraclebackup\log
set DATADIR=C:\oraclebackup\data
set LOGDIR=C:\oraclebackup\log

echo =====================开始备份=====================
exp %USER%/%PASSWORD%@%DATABASE%  file=%DATADIR%\data_%BACKUPDATE%.dmp log=%LOGDIR%\log_%BACKUPDATE%.log‘
echo ================================================
echo 备份完成

::删除7天前的备份
forfiles /p "%DATADIR%" /s /m *.* /d -7 /c "cmd /c del @path"
forfiles /p "%LOGDIR%" /s /m *.* /d -7 /c "cmd /c del @path"
::exit
pause>nul

⚠️:log=’%LOGDIR%\log_%BACKUPDATE%.log‘=后面这里的变量一定要用英文单引号‘’括起来

2、脚本处理文件解析

  • ::以“YYYYMMDD”格式取出当前时间。

解释:该命令与rem是同一个,使用::比rem命令更严谨

  • exp

解释:该命令执行后会生成一个dmp文件,里面是保存的数据库数据;具体自行百度了解

  • exit

解释:使用exit会直接退出执行窗口,使用pause>nul则需要按任意键退出

3、脚本需要更改处

  • ::设置用户名、密码和要备份的数据库

USER、PASSWORD、DATABASE这三个参数分别要改为自己的数据库用户名、密码和要备份的数据库

  • ::创建备份目录

自己定义好存放备份文件和日志文件的位置

4、脚本执行乱码错误

如果出现乱码错误,可以使用文档编辑.bat文件,选择功能另存为,选择编码格式为ANSI

如果还是出现中文乱码,可以文件内容最顶部加入以下代码,即@echo off这一行代码上面

rem 标注为使用936编码格式编译中文

chcp 936

@echo off

5、空表没有保存到dmp文件

我们在备份时可能会出现没有数据的表没有办法保存到dmp文件,所以我们需要搞点别的操作来确保空的表也能正常保存到文件中,具体可以参考这篇文章《Oracle 11g导出空表、少表的解决办法

我自己这里的表比较多,然后选择了文章中的方法三

二、Windows定时任务

详细参考上一篇文章:Windows下自动备份MySQL数据库

那里有很详细的定时任务设置

借鉴链接

windows中oracle自动备份


更多知识持续更新中!!!


声明

借鉴部分均注明了原文出处,可在文章的借鉴链接处获取原文出处

文中若内容有涉及原版权,请邮件联系[email protected],涉及的相关文章或内容将会及时更改或取消发布

猜你喜欢

转载自blog.csdn.net/weixin_42464282/article/details/130991394