热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者比较重要的内容,希望大家能够喜欢,不足之处请大家多提宝贵地意见,我们一起提升,守住自己的饭碗。
一、说明
脚本内容中备份数据存储的磁盘是C盘,目录是DBBackup,全量备份的时间是周日,大家可以根据自己的时间情况进行对应项的修改。
二、脚本执行
使用Windows计划任务执行脚本
1. 保存SQL脚本:
• 将上述SQL脚本保存为sqlserver_backup.sql文件。
2. 创建批处理文件:
• 创建一个批处理文件
RunBackup.bat
,用于调用SQL Server命令行工具sqlcmd
来执行SQL脚本
@echo off
sqlcmd -S LAPTOP-25D4U18P -i C:\sqlserver_backup.sql -o C:\check\1.txt
说明:带有账号密码的格式为sqlcmd -S YourServerName -U YourUsername -P YourPassword -i "C\ScheduledBackup.sql";1.txt为备份日志,可作为备份巡检佐证。
三、脚本内容
DECLARE @DBNAME NVARCHAR(100)
DECLARE @DriveName NVARCHAR(100)
DECLARE @SQL NVARCHAR(MAX)
DECLARE @CurrentTime VARCHAR(50),@FileName VARCHAR(200)
--Backup drive specification
SET @DriveName='C'
--Get current date and time for file naming
SET @CurrentTime= REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(),120),'-','_'),' ','_'),':','')
--Determine backup type based on the day of the week
--Full backups are scheduled forSundays
DECLARE @BackupType NVARCHAR(10)
SET @BackupType= CASE WHEN DATEPART(dw, GETDATE())=1 THEN 'FULL' ELSE 'DIFFERENTIAL'END
DECLARE CurDBName CURSOR
FOR
SELECT name
FROM sys.databases
WHERE name LIKE '%%'
AND [name] NOT IN ('MASTER','MODEL','TEMPDB','MSDB','ReportServer','ReportServerTempDB','distribution')
OPEN CurDBName
FETCH NEXT FROM CurDBName INTO @DBNAME
WHILE @@FETCH_STATUS=0
BEGIN
SET @FileName=@DriveName+':\DBBackup\' + @DBNAME + '_' + @BackupType + 'Backup_' + @CurrentTime + '.bak'
IF @BackupType = 'FULL'
BEGIN
SET @SQL = N'BACKUP DATABASE [' + @DBNAME + ']
TO DISK =''' + @FileName + ''' WITH FORMAT, COMPRESSION, STATS =10'
END
ELSE
BEGIN
-- Execute a differential backup
SET @SQL = N'BACKUP DATABASE [' + @DBNAME + ']
TO DISK =''' + @FileName + ''' WITH DIFFERENTIAL, COMPRESSION, STATS =10'
END
EXEC(@SQL)
FETCH NEXT FROM CurDBName INTO @DBNAME
END
CLOSE CurDBName
DEALLOCATE CurDBName
四、过程截图


文中的概念来源于互联网,如有侵权,请联系我删除。
欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。如果觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。
文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




