例如mysql数据库有200个数据库,如下
data
--database1
--database2
--database3
--database4
--database5
--database6
.....................
.....................
.....................
--database200
逐个的手动备份每个数据库很费时间
希望可以改进如下改进:
1、每个数据库备份文件对于数据库名字例如database1备份成database1.sql;  database2备份成database2.sql?
2、怎样将还有innodb引擎的表的数据库选出来,单独备份为sql呢?
3、压缩备份的sql文件,减少占用硬盘空间
4、如果备份文件太大,将备份文件分成多个小文件?
求、可以满足上面需求的软件,或者自动化的脚本写法更佳,多谢了。

解决方案 »

  1.   

    我从MSSQL改的,你看合用不。不能识别INNODB表,全备。
    @ECHO ON
    set d=%date:~0,4%%date:~5,2%%date:~8,2%
    set t=%time:~0,8%
    set stamp=%p%%d%
    set bakupfolder=E:\DatabaseBackup\
    rem    1按子目录保存备份文件;0不按
    set lay_in_subfolder=1call :backup1 testgoto :EOF  @ECHO OFF:backup1
    setlocal 
    echo %1 
    set dbname=%1
    if not exist %bakupfolder%%dbname% mkdir %bakupfolder%%dbname%if %lay_in_subfolder%==1 (
    set subfolder=%dbname%\
    )else set subfolder=
    rem echo %bakupfolder%%subfolder%%dbname%%stamp%.sql
    mysqldump -uroot -p‘password' -B test > %bakupfolder%%subfolder%%dbname%%stamp%.sql
    "C:\Program Files\WinRAR\RAR.exe" a -ep1 -r -o+ -m5 -s -df "%bakupfolder%%subfolder%%dbname%%stamp%".rar "%bakupfolder%%subfolder%%dbname%%stamp%.sql"endlocal&goto :EOF