ITPub博客

首页 > 数据库 > MySQL > MySQL:Windows下分库备份脚本

MySQL:Windows下分库备份脚本

原创 MySQL 作者:Ryan_Bai 时间:2024-01-17 13:22:35 0 删除 编辑

新获取到一个需求,就是要按库进行备份,写了份脚本和大家分享一下吧

@echo off
for /f "Tokens=1-3 Delims=/ " %%i in ('date /t') do set dt=%%i-%%j-%%k-
for /f "Tokens=1-2 Delims=: " %%i in ('time /t') do set tm=%%i-%%j
set tm=%dt%%tm%
set bkupdir=D:\back
set mysql_host=127.0.0.1
set mysql_user=backup
set mysql_password=backup123
set expir_date=7
 
rem 获取所有数据库名称并逐个备份
e:
cd %bkupdir%
for /f "tokens=*" %%i in ('mysql -h %mysql_host% -u %mysql_user% -p%mysql_password% --skip-column-names -e "show databases;"') do (
    if "%%i" equ "mysql" (
        echo mysql:系统库不备份
    ) else if "%%i" equ "information_schema" (
        echo information_schema:系统库不备份
    ) else if "%%i" equ "performance_schema" (
        echo performance_schema:系统库不备份
    ) else if "%%i" equ "sys" (
        echo sys:系统库不备份
    ) else (
        echo 开始备份%dbname%数据库
        if exist %bkupdir%\%mysql_host% (
            echo 目录%bkupdir%\%mysql_host%已存在,无需创建
        ) else (
            echo 创建%bkupdir%\%mysql_host%目录
            mkdir %bkupdir%\%mysql_host%
        )
        rem 导出数据库内容到sql文件
        mysqldump -u%mysql_user% -p%mysql_password% -h%mysql_host% %%i>%bkupdir%\%mysql_host%\%%i-%tm%.sql
        
    ) 
)
rar a -r -s -m1 %mysql_host%-%tm%.rar %mysql_host% && (
    rd /s/q %mysql_host%
    forfiles /p "%bkupdir%" /s /m %mysql_host%*.rar /d -%expir_date% /c "cmd /c del @path
    forfiles /p "%mysql_log%" /s /m *.* /d -%expir_date% /c "cmd /c del @path
)


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31490526/viewspace-3004199/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE Pro; PostgreSQL ACE; Oracle 10g OCE、OCA、OCP; Oracle 11g OCP、OCM; MySQL 5.6 OCP; Oracle、MySQL OCP 讲师; PostgreSQL PGCE 获得者;

注册时间:2017-09-18

  • 博文量
    347
  • 访问量
    730400