暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Sql server数据库一键备份脚本

热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者比较重要的内容,希望大家能够喜欢,不足之处请大家多宝贵地意见,我们一起提升,守住自己的饭碗。

一、说明

脚本内容中备份数据存储的磁盘是C盘,目录是DBBackup,全量备份的时间是周日,大家可以根据自己的时间情况进行对应项的修改。

二、脚本执行

使用Windows计划任务执行脚本

  1. 1. 保存SQL脚本

    • • 将上述SQL脚本保存为sqlserver_backup.sql文件。

  2. 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论