sqlserver免费版每天备份数据库
linux
1、新建sh文件,按需修改
BACKUP_DIR
DATABASE_NAME
USERNAME
PASSWORD
#!/bin/bash
# 定义备份文件保存路径BACKUP_DIR="/opt/backup/mssql"
# 定义数据库名称DATABASE_NAME="DataTest"# 定义备份文件名称格式
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/$DATABASE_NAME-backup-$DATE.bak"
# 定义SQL Server的用户名和密码
USERNAME="sa"
PASSWORD="xxxx"# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIRchown -R mssql.mssql $BACKUP_DIR
# 执行备份命令
/opt/mssql-tools/bin/sqlcmd -S localhost -U $USERNAME -P $PASSWORD -Q "BACKUP DATABASE [$DATABASE_NAME] TO DISK = N'$BACKUP_FILE' WITH NOFORMAT, NOINIT, NAME = '$DATABASE_NAME-full-backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"# 检查备份是否成功
if [ $? -eq 0 ]; thenecho "备份成功: $BACKUP_FILE"
elseecho "备份失败" >&2
fichmod -R 777 $BACKUP_DIR
2、给sh文件添加执行权限
3、添加crontab设置每天备份
crontab -e
0 2 * * * /opt/backup/mssql/mssqlback.sh
windows server
1、新建txt文件,按需修改以下内容:
DB_NAME
BACKUP_PATH
SQL_USER
SQL_PASS
@echo off
setlocalset DB_NAME=Data
set BACKUP_PATH=D:\sqlserverbackup
set SQL_USER=sa
set SQL_PASS=xxxx:: 获取当前日期(格式:YYYYMMDD)
for /f %%i in ('wmic os get localdatetime ^| find "."') do set dt=%%i
set YYYY=%dt:~0,4%
set MM=%dt:~4,2%
set DD=%dt:~6,2%
set HH=%dt:~8,2%
set MIN=%dt:~10,2%set TODAY=%YYYY%-%MM%-%DD%
set TIME_NOW=%HH%%MIN%
set BACKUP_NAME=%DB_NAME%_%TODAY%_%TIME_NOW%.bakif not exist "%BACKUP_PATH%" (mkdir "%BACKUP_PATH%"
)sqlcmd -S localhost -U %SQL_USER% -P%SQL_PASS% -Q "BACKUP DATABASE [%DB_NAME%] TO DISK = N'%BACKUP_PATH%\%BACKUP_NAME%' WITH INIT"
::sqlcmd -S localhost -U %SQL_USER% -P%SQL_PASS% -Q "BACKUP DATABASE [%DB_NAME%] TO DISK = N'%BACKUP_PATH%\%BACKUP_NAME%' WITH INIT" >> "%BACKUP_PATH%\sqlcmd_output.txt" 2>&1echo [%DATE% %TIME%] Backup of %DB_NAME% to %BACKUP_NAME% completed >> "%BACKUP_PATH%\backup_log.txt"endlocal
2、更改txt文件为bat
3、执行bat文件查看备份文件是否正常
4、把bat文件添加到任务计划里面