MySQL/Oracle/DB2/SQLServer/PostgreSQL等技术:
一、关于MySQL:
由于项目要定期导出mysql数据库,于是写了个脚本。
该脚本导出的文件名格式为bak-[年-月-日-时-分-秒.厘秒]-db.sql,例如bak-[2008-02-20-10-27-06.58]-db.sql,因此每次导出的文件名都不重复。导出的文本文件将被保存到当月的文件夹内,每月1号会自动创建本月的文件夹。
注意的几点
1.该脚本仅在Windows XP+SP2中文版操作系统下测试可用,在Windows Server 2003环境下运行前,请先在命令行中键入echo %date%%time%,查看日期格式,如果是“yyyy-mm-dd 星期N 时:分:秒.厘秒”,例如“2008-02-20 星期三10:30:43.90”,则可用。
2.添加到任务计划时将脚本最后一行的@pause删除(带上pause仅为测试时方便查看错误信息,并且dos窗口不关闭)。
附:脚本
1 ::文件名: 任务导出.bat
2 ::作者:daybug 创建日期:2008-2-20
3 ::功能:将数据库备份导出到以当前日期和时间命名的文件中,并保存到该月的文件夹下。
4 ::注意:脚本仅在Windows XP中文版操作系统下测试可用,其他环境下请先测试是否可用。
5
6 ::启动mysql服务
7 @net start mysql
8 ::根据当前的日期时间,生成备份的文件名。
9 @set FileName=bak-[%date:~0,10%-%time:~0,2%-%time:~3,2%-%time:~6,2%.%
time:~9,2%]-warmsupply.sql
10 ::生成当月的文件夹名
11 @set DirName=%date:~0,7%
12 ::每月1号创建新的文件夹
13 @if %date:~8,2%==01 (md %DirName%)
14 ::如果没有本月文件夹(初次运行时如果不是1号),则创建本月文件夹
15 @if not exist %DirName% (md %DirName%)
16 ::执行导出
17 @mysqldump --default-character-set=gbk -uUSERNAME -pPASSWORD yourdb >%
DirName%\%FileName%
18 @echo 导出成功
19 @pause
20