本人的兴趣一直都是oracle数据库的管理,最近公司上电子商务系统,现在还处于测试状态,不出意外应该没有大问题,因为程序是 php+mysql的,这就涉及到程序的维护、数据库的维护和管理。虽然mysql数据库在一般情况下,直接复制数据库下的data文件夹下面的数据库名 的文件夹可以备份
如 上图,这里我选中的每一文件夹其实是mysql数据库的一个数据库,只要直接复制就可以备份相应的数据库了,但是考虑到系统实时性可能比较高,如果这样备 份,肯定会导致数据的丢失,还有就是因为系统里面的数据库有60多张表,一张表又有三个文件,如果数据量大的时候,备份起来时间比较长
所有决定写一个脚本使用命令mysqldump+windows系统的任务自动定时执行备份,并实现为了方便转移,打包压缩功能
@echo off echo 批发网中文版和英文版数据库备份 echo. echo 程序启动时间:%date% %time% echo. set "Name=%date:~,4%%date:~5,2%%date:~8,2%_%random%" set "Path=e:\MySql_BackUp\%Name%" md %Path% echo 保存备份数据库文件路径为:%Path% echo *********************************************************** echo. echo %time%:开始备份db_glasses_en数据库…… echo. e:\AppServ\MySQL\bin\mysqldump --opt -u root --password=4020894 -F -B --default-character-set=utf8 db_glasses_en_bak > %Path%\db_glasses_en_bak.sql echo 文件:%Path%\db_glasses_en_bak.sql echo %time%:db_glasses_en数据库备份完成 echo. echo *********************************************************** echo. echo %time%:开始备份db_glasses_cn数据库…… echo. e:\AppServ\MySQL\bin\mysqldump --opt -u root --password=4020894 -F -B --default-character-set=utf8 db_glasses_cn > %Path%\db_glasses_cn_bak.sql echo 文件:%Path%\db_glasses_cn_bak.sql echo %time%:db_glasses_cn数据库备份完成 echo. echo *********************************************************** echo. echo 批发网中英文数据库备份完成…… echo. echo *********************************************************** echo. echo %time%:备份数据库进行压缩…… cd C:\Program Files\WinRAR WinRAR.exe a -m5 e:\MySql_BackUp\%Name%.rar %Path% echo. echo %time%:e:\MySql_BackUp\%Name%.rar压缩完成 echo 请检查文件并做好数据转移…… echo. echo 程序结束时间:%date% %time% echo. echo *********************************************************** pause
通过上面的脚本实现数据库的备份,结果如下图:
上图即为执行备份后的结果,至于mysql的备份命令mysqldump的相关参数请见mysql的相关文档。
补充说明:
在 mssql里面日志是自动启动的;在oracle归档日志默认情况下是关闭的,可以在mount模式下,使用alter database archivelog开启重做日志归档模式;在mysql中,日志默认情况下也是关闭的,但是它是通过修改my.ini配置文件实现修改的,具体参数如 下:
log-bin=F:\AppServ\MySQL\log\log_bin.log
log=F:\AppServ\MySQL\log\log.log
log-update= F:\AppServ\MySQL\log\update.log
log-slow-queries=F:\AppServ\MySQL\log\mysql-slow.log
log-error=F:\AppServ\MySQL\log\error.log
各日志参数说明:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
注:如果日志参数后面直接跟文件名,那日志文件会放置在mysql/data文件夹下