在Linux下可以通过crontab来设置定时执行数据库的备份脚本,同样Windows下可以通过设定任务计划程序来设定要执行的自动备份脚本。具体的设定过程不再详述,下面分别为Oracle和MySQL的备份脚本:
1.Windows 下Oracle的备份脚本:
@echo off
echo
数据库开始进行备份...
cd e:\ORACLE\BIN
set filename=%e:\backup_bat\local%date:~0,10%
exp giftsdev/giftsdev@local file=%filename%.dmp log=%filename%.log owner=giftsdev compress=y grants=y indexes=y constraints=y
jar cvf %filename%.jar %filename%.*
del %filename%.dmp
del %filename%.log
copy %filename%.jar e:\exp_data\local%date:~0,10%.jar
del %filename%.jar
echo
数据库备份完成
echo.& pause
2.Windows 下MySQL的备份脚本
@echo off
echo
数据库开始备份...
set dirname=bak%date:~0,4%%date:~5,2%
if not exist F:\OA_BACKUP\%dirname% md F:\OA_BACKUP\%dirname%
set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%
set filename=tdoa-%nowdate%.rar
mysqldump -uroot -pmyoa888 td_oa > td_oa.sql
::E:\MYOA\mysql\bin\mysqldump.exe -uroot -pmyoa888 td_oa > td_oa.sql
rar a %filename% td_oa.sql
::%windir%\System32\WinRAR.exe a %filename% td_oa.sql
move %filename% F:\OA_BACKUP\%dirname%
del td_oa.sql
echo
数据库备份完成!
echo.& pause
备份过程中遇到的问题:
(1) 创建文件夹失败。在windows 2008
下,默认的日期格式为类似 2010/12/27
的样式,在根据日期创建文件夹或者文件时由于windows
不允许有“/
”特殊字符的存在,故报创建错误。这里使用“set nowdate=%date:~0,4%%date:~5,2%%date:~8,2%
”分别取得年、月、日拼凑的形式变相实现。
(2) 环境变量问题。在写完上述脚本后,双击bat
文件可以无误顺利的执行,但是扔到计划任务执行时就总是报错,具体为rar
和mysqldump
命令不存在。我怀疑是环境变量的设置没有生效,由于在服务器上不能轻易的执行服务器的重启,这里用rar
和mysqldump
的完整路径来代替(代码中的红色字体)
附:常见dos命令
1.dos
下的复制和移动
c
盘下的a.txt
文件复制或移动到d
盘
命令为:
复制copy c:\a.txt d:\a.txt
移动move c:\a.txt d:\a.txt
2.dos
下的条件判断
if not exist F:\OA_BACKUP\%dirname% md F:\OA_BACKUP\%dirname%
(判断目录是否存在)
3.dos
下的目录创建和删除
MD——
建立子目录
RD——
删除子目录
4.
关于%DATE:~4,10%
的格式
这个命令的意思就是在DATE
的输出中,取4-10
中间的字符。
对于不同的机器,可能有不同的时间格式,这个可以在控制面板里设置。
可以通过ECHO
命令察看当前设置,如:
C:>echo %DATE%
星期一 2002-10-28
当然,我们可以同样取到星期的值:
C:>echo %DATE:~0,3%
星期一
当然也可以从不同方向来:
C:>echo %DATE:~-10%
2002-10-28
C:>echo %DATE:~0,-10%
星期一
5. rar
命令解压缩文件前要进行的操作:
1
〉将winRAR.exe
文件拷贝到system32
文件夹下;
2
〉将winRAR
的安装路径放到环境变量中
rar
打包文件:
rar a %filename%.rar %filename%.*
rar
解压缩文件
rar e %filename%.rar
6.
用jar
打包解压文件必须在当前系统中装有jre
环境
jar
打包文件:
jar cvf %filename%.jar %filwname%.*
jar
解压缩文件:
jar xvf %filename%.jar