今天开园,分享一下我一直在使用的数据备份存储过程,欢迎转载!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | USE [master]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER OFFGOCREATE Proc [dbo].[SQL_Backup] @DataBase Nvarchar(50)ASDUMP TRANSACTION @DataBase WITH NO_LOGBACKUP LOG @DataBase WITH NO_LOGDBCC SHRINKDATABASE (@DataBase)---------------------------- 原创SQL备份数据库 ------------------------------DECLARE @DataBase Nvarchar(100)DECLARE @DataPath Nvarchar(100)DECLARE @FileName Nvarchar(100) DECLARE @BackupFileName Nvarchar(100)DECLARE @DataDescription Nvarchar(200)DECLARE @DataMediaName Nvarchar(50)DECLARE @DataMediaDescription Nvarchar(200)DECLARE @OkInfo Nvarchar(300)DECLARE @str Nvarchar(300)DECLARE @Rnd Nvarchar(11)DECLARE @dir Nvarchar(15)DECLARE @dirin bitDECLARE @Temp Nvarchar(500)-- Author: im531...-- Description: SQL_Backup-- http://im531.cnblogs.com/-- Date: 2005-02-06--SET @DataBase = ‘test‘SET @Temp = ‘‘SET @DataPath = ‘C:\www\SQL_Backup\‘SET @Rnd = (SELECT Left(Newid(),4) + Right(Newid(),4)) + (SELECT Right(Datepart(ms,Getdate()),3))SET @str = RTRIM(CONVERT(CHAR(10),GETDATE(),112)) + ‘_‘ + RTRIM(DATEPART(HOUR,GETDATE())) + ‘_‘ + LTRIM(DATEPART(MINUTE,GETDATE()))SET @dir = RTRIM(CONVERT(CHAR(10),GETDATE(),112)) + ‘_‘ + RTRIM(DATEPART(HOUR,GETDATE()))SET @FileName = @DataPath + @dir + ‘\‘+ @DataBase + ‘_Backup_‘SET @BackupFileName = @FileName + @str + ‘_‘ + @RndCREATE TABLE [#tb](a bit,b bit,c bit)SET @Temp = @DataPath + @dirINSERT INTO [#tb] EXECUTE master..xp_FileExist @TempIF Exists(SELECT 1 FROM [#tb] WHERE b = 1) SET @dirin = 1ELSE SET @dirin = 0DROP TABLE [#tb]SET @Temp = ‘md ‘ + @DataPath + @dirIF @dirin = 0 BEGIN EXEC master..xp_cmdshell @Temp ENDSET @DataDescription = ‘SQL语句产生的备份,备份时间:‘ + CONVERT(CHAR(19),GETDATE(),121)SET @DataMediaName = ‘im531 Backup ...‘SET @DataMediaDescription = ‘Author im531 ... ‘SET @OkInfo = ‘数据库 ‘ + @DataBase + ‘ 成功备份至 ‘ + @BackupFileNameBACKUP DATABASE @DataBase TO DISK = @BackupFileNameWITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10 , NOFORMAT ,NAME = @DataBase , DESCRIPTION = @DataDescription , MEDIANAME = @DataMediaName , MEDIADESCRIPTION = @DataMediaDescription-- 7z 压缩IF @DataBase = ‘DataName‘ BEGIN SET @Temp = ‘C:\7-zip\7z.exe a -t7z ‘ + @DataPath + @dir + ‘.7z ‘ + @DataPath + @dir + ‘\* -mx9 -r‘ EXEC master..xp_cmdshell @Temp SET @Temp = ‘rd ‘ + @DataPath + @dir + ‘ /s/q‘ EXEC master..xp_cmdshell @Temp ENDSELECT @OkInfo AS BackupInfo------------------- End ---------------------GOEXEC SQL_Backup @DataBase = N‘DataName‘ |
原文:https://www.cnblogs.com/lonelyxmas/p/11858868.html