批处理一键备份sqlserver数据库

@echo off

set "server_name=."
set "database_name=MyDB"
set "backup_path=D:\test"

REM 获取当前日期和时间
set dt=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%

echo 正在备份数据库 %database_name% 到 %backup_path%...

sqlcmd -S %server_name% -Q "BACKUP DATABASE [%database_name%] TO DISK = N'%backup_path%\%database_name%_%dt%.bak' WITH INIT, FORMAT"

if %errorlevel% neq 0 (
    echo 备份过程中发生错误。
) else (
    echo 数据库备份已完成。
)

pause

 以下是备份并通过winrar自动压缩成rar文件的:

@echo off

set "server_name=."
set "database_name=MyDB"
set "backup_path=D:\test"

REM 获取当前日期和时间
set dt=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%

echo 正在备份数据库 %database_name% 到 %backup_path%...

sqlcmd -S %server_name% -Q "BACKUP DATABASE [%database_name%] TO DISK = N'%backup_path%\%database_name%_%dt%.bak' WITH INIT, FORMAT"

if %errorlevel% neq 0 (
    echo 备份过程中发生错误。
) else (
    echo 数据库备份已完成。
    
    REM 使用 WinRAR 压缩备份文件
    "C:\Program Files\WinRAR\WinRAR.exe" a -r "%backup_path%\%database_name%_%dt%.rar" "%backup_path%\%database_name%_%dt%.bak"
    
    REM 删除源文件
    del "%backup_path%\%database_name%_%dt%.bak"
    
    echo 备份文件已压缩并源文件已删除。
)

pause

 

posted on 2023-06-30 14:56  空明流光  阅读(204)  评论(0编辑  收藏  举报

导航