SQLServer2008 用cmd命令備份


1.bat文件:

sqlcmd -S 127.0.0.1 -i f:\backup\backup.sql

2.backup.sql內容:

--其中sp_BackupDatabase為存儲過程的名稱,addy為要備份的數據庫,F為要備份的類型

exec [sp_BackupDatabase] 'addy','F'
go

3.sp_BackupDatabase存儲過程:

 

-- Author: Addy.Zhao

-- Create date: 2012-11-10
-- Description: 備份數據庫
-- Parameter1: 數據庫名
-- Parameter2: 備份類型 F=全部, D=差異, L=日志

--把這個存儲過程在master數據庫下執行

ALTER PROCEDURE [dbo].[sp_BackupDatabase]
       @databaseName sysname, @backupType CHAR(1)
AS
BEGIN
       SET NOCOUNT ON;

       DECLARE @sqlCommand NVARCHAR(1000)
       DECLARE @dateTime NVARCHAR(20)

       SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +
       REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')

       IF @backupType = 'F'
               SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
               ' TO DISK = ''C:\Backup\' + @databaseName + '_Full_' + @dateTime + '.BAK'''
      
       IF @backupType = 'D'
               SET @sqlCommand = 'BACKUP DATABASE ' + @databaseName +
               ' TO DISK = ''C:\Backup\' + @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'
      
       IF @backupType = 'L'
               SET @sqlCommand = 'BACKUP LOG ' + @databaseName +
               ' TO DISK = ''C:\Backup\' + @databaseName + '_Log_' + @dateTime + '.TRN'''
      
       EXECUTE sp_executesql @sqlCommand
END

 

4.寫完上面3個文件,在window計划任務下添加任務即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM