mysql备份
网络知识整理
进行数据备份时, 一般需要暂停mysql 服务。备份完成后 再打开服务。 这是因为如果在数据库备份时, 有客户正在操作数据表,这时是不能复制的, 因为表被锁定。所以暂停mysql 服务 是安全完整备份的前提。除非你有确切把握,备份时不会有别人操作数据库的情况发生。 则可以不关闭暂停mysql 服务
rem net stop mysql
xcopy D:\cloudServer\heatvalley\PHPnow-1.5.6\MySQL-5.0.90\data\v3-all\*.* E:\HuBinWorkBakeWD500\cloudServer\v3-all%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%\ /y
C:\progra~1\WinRAR\WinRAR.exe a -k -r -s E:\HuBinWorkBakeWD500\cloudServer\v3-all%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%.rar E:\HuBinWorkBakeWD500\cloudServer\v3-all%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%\
rd "E:\HuBinWorkBakeWD500\cloudServer\v3-all%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%\" \S \Q
rem net start mysql
代码解释:
net stop mysql
停止Mysql服务
xcopy D:\cloudServer\heatvalley\PHPnow-1.5.6\MySQL-5.0.90\data\v3-all\*.* E:\HuBinWorkBakeWD500\cloudServer\v3-all%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%\ /y
把v3-all数据库拷贝到E:\HuBinWorkBakeWD500\cloudServer\ 以v3-all时间命名的文件夹里
C:\progra~1\WinRAR\WinRAR.exe a -k -r -s E:\HuBinWorkBakeWD500\cloudServer\v3-all%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%.rar E:\HuBinWorkBakeWD500\cloudServer\v3-all%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%\
调用winrar的命令行模式压缩刚刚拷贝出来的文件夹并保存在月份的文件夹下
rd "E:\HuBinWorkBakeWD500\cloudServer\v3-all%date:~2,2%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%\" \S \Q
删除备份出来以日期命名的文件夹image,最后只保留一个压缩文件
net start mysql
重新启动Mysql服务
一般情况下,我们手工备份MySQL数据库,会使用下面的命令:
1. mysqldump --opt --add-locks -u root --password=xxxx db_name>x:/db_backup/db_name.sql
2. mysqldump.exe "要备份的数据库名" -u(接用户名) -p(接密码) > "备份文件存放的路径及文件名"
建立 db_bak.bat文件,也就是windows下常用的批处理文件.内容为:
@echo
mysqldump --opt --add-locks -u root --password=xxxx db_name>x:/db_backup/db_name.sql
然后保存,接下来在window 的定时任务中,定义windows的定时任务,每天备份多少次都可以.注意mysqldump.exe的路径要正确
删除7天以前备份的文件
FORFILES 命令 :
FORFILES [/P pathname] [/M searchmask] [/S]
[/C command] [/D [+ | -] {yyyy-MM-dd | dd}]
方法1:
描述:可以删除7天以前的后缀名为log的日志文件。如今天是6.29,那么会删除6.22
号以前创建的文件。不会删除到回收站。
指定路径为要删除的文件夹路径,该批处理可以放在任意文件夹下。
forfiles /p D:\aizzw\LOG /m *.log /d -7 /c "cmd /c del /f @path"
参数解释:
这里的/p 指的是要删除的备份文件路径 ,没有提供该参数,则默认是当前文件夹下的匹配文件。
/m 指的是要匹配的字符,通配符为*号,后缀名可以根据实际情况修改。
如zzw*.log;*.bak;*.txt
/d 指的是日期,“/d -7”指的是从当前日期往前减7天。
/c 指的是执行命令
@path 返回文件完整路径
二:自动创建每周运行一次的计划任务
Windows Vista / 7 可以通过 计算机,右键,管理,系统工具,任务计划程序,任务计划程序库,进入计划任务管理界面。
手动运行该任务,查看备份目录来确认下备份是否成功。
--------------------------------------------------------------------------------------
@echo off
:start
CLS
set dt=%time:~0,2%
if %dt% lss 10 set dt=%dt: =0%
set file_name=%date:~0,4%%date:~5,2%%date:~8,2%_%dt%_%time:~3,2%
set bin_path="c:\MySQL\MySQL Server 5.5\bin\"
set save_path="c:\mysql_backup\data"
set zip_path="C:\progra~1\WinRAR\WinRAR.exe "
set bak_path="d:\mysql_backup\data"
echo export_starting
%bin_path%mysqldump.exe -u root -p 123 db1> %save_path%\db1_%file_name%.sql
%bin_path%mysqldump.exe -u root -p 123 db2> %save_path%\db2_%file_name%.sql
echo export_end
echo zip_starting
%zip_path% a -k -r %save_path%\db1_%file_name%.rar %save_path%\db1_%file_name%.sql
%zip_path% a -k -r %save_path%\db2_%file_name%.rar %save_path%\db2_%file_name%.sql
echo zip_end
echo copy_starting
copy %save_path%\db1_%file_name%.rar %bak_path%\db1_%file_name%.rar
copy %save_path%\db2_%file_name%.rar %bak_path%\db2_%file_name%.rar
echo copy_end
echo rm_starting
del %save_path%\db1_%file_name%.sql
del %save_path%\db2_%file_name%.sql
echo rm_end
echo rm_history_starting
set DaysAgo=10
forfiles /p %save_path% /s /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"
forfiles /p %bak_path% /s /m *.* /d -%DaysAgo% /c "cmd /c del /f /q /a @path"
echo rm_history_end
echo ok
-------------------------------------------------------
备份到的FTP服务器
ftp -n -s:"bakftpotherserver.ftp"
--------------------------------------------
bakftpotherserver.ftp:
open ftp.xxx.yyyy.com //Your Ftp Server 你要备份到的服务器的ip
user uaaaaa pxxx //Your Ftp username Your Ftp password
bin
prompt
mput yyyy.sql
bye
quit
exit