如何讓SQL Server資料庫自動備份並壓縮成rar檔案

來源:互聯網
上載者:User

標籤:blog   http   os   io   strong   檔案   資料   for   

1、  先開啟xm_cmdshell服務

xp_cmd殼層延伸預存程序將命令字串作為作業系統命令 shell 執行,並以文本行的形式返回所有輸出。由於xp_cmdshell 可以執行任何作業系統命令,所以一旦SQL Server管理員帳號(如sa)被攻破,那麼攻擊者就可以利用xp_cmdshell 在SQL Server中執行作業系統命令,如:建立系統管理員,也就意味著系統的最高許可權已在別人的掌控之中。由於存在安全隱患,所以在SQL Server 2005中, xp_cmdshell 預設是關閉的。 

 

兩種方式啟用xp_cmdshell 

  1.開啟介面區配置器—> 
  功能的介面區配置器—> 
  執行個體名Database Enginexp_cmdshell—> 啟用

 

2.sp_configure 
  --開啟xp_cmdshell部分
--------------------------------------------------
-- To allow advanced options to be changed.
EXEC sp_configure ‘show advanced options‘, 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure ‘xp_cmdshell‘, 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO


--通過xp_cmdshell執行shell命令的部分
--------------------------------------------------
Exec xp_cmdshell ‘bcp ‘
GO


--關閉xp_cmdshell部分
-----------------------------------------------------
-- To allow advanced options to be changed.
EXEC sp_configure ‘show advanced options‘, 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure ‘xp_cmdshell‘, 0
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

 

3、建立立一個作業,名稱命名為“MyDb完全備份”,在分類下面選擇“資料庫維護”,然後建立立作業第一個步驟,步驟名為“對資料進。

DECLARE @strSql   VARCHAR(1000)

 ,@strSqlCmd VARCHAR(1000)

 ,@timeDateDiffINT

SET @timeDateDiff = DATEDIFF(week,0,GETDATE())

SET @timeDateDiff = CASE DATEPART(WEEKDAY,GETDATE())

 WHEN 1 THEN @timeDateDiff -1

 ELSE@timeDateDiff END

SET @strSql=‘E:\DataBackup\LiangJiaLun219‘  -- 備份目錄及備份的檔案頭

 +CONVERT(CHAR(8),DATEADD(week, @timeDateDiff,0),112)  -- 完全備份日期

 +‘_0100‘    -- 完全備份時間

 +‘完全備份‘

SET @strSqlCmd= @strSql+‘.BAK‘    --備份檔案的副檔名

BACKUP DATABASE[LiangJiaLun219]

 TO  DISK = @strSqlCmd WITHINIT

 ,NOUNLOAD

 ,NAME = N‘LiangJiaLun219 備份‘

 ,NOSKIP

 ,STATS = 10

 ,NOFORMAT

 操作一: 

                 

 

4、 然後開始執行對資料庫的壓縮,在步驟中再建立一個作業,步驟名為“壓縮資料庫”,然後在命令框中輸入如下的SQL代碼:

DECLARE @strSql   VARCHAR(1000)

 ,@strSqlCmd VARCHAR(1000)

 ,@timeDateDiffINT

 ,@strWeekDay VARCHAR(20)

SET @timeDateDiff= DATEDIFF(week,0,GETDATE())

SET @timeDateDiff= CASE DATEPART(WEEKDAY,GETDATE())

 WHEN 1 THEN @timeDateDiff-1

 ELSE@timeDateDiff END

SET @strSql=‘E:\DataBackup\LiangJiaLun219‘  -- 備份目錄及備份的檔案頭

 +CONVERT(CHAR(8),DATEADD(week,@timeDateDiff,0),112)  -- 完全備份日期

 +‘_0100‘    -- 完全備份時間

 +‘完全備份‘

SET @strWeekDay= CASE DATEPART(WEEKDAY,GETDATE()) WHEN 1 THEN ‘星期天‘

  WHEN 2 THEN ‘星期一‘

  WHEN 3 THEN ‘星期二‘

  WHEN 4 THEN ‘星期三‘

  WHEN 5 THEN ‘星期四‘

  WHEN 6 THEN ‘星期五‘

  WHEN 7 THEN ‘星期六‘ END

SET @strSqlCmd= ‘ECHO 壓縮開始日期: ‘+CONVERT(VARCHAR(20),GETDATE(),120)+‘ ‘[email protected]+‘  >> E:\DataBackup\CompressDataBase\LiangJiaLun219‘+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+‘.txt‘

EXEC master.dbo.XP_CMDSHELL@strSqlCmd,NO_OUTPUT

SET @strSqlCmd= ‘RAR.EXE A -R ‘[email protected]+‘.RAR ‘[email protected]+‘.BAK >> E:\DataBackup\CompressDataBase\LiangJiaLun219‘+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+‘.txt‘

PRINT LEN(@strSqlCmd)

PRINT (@strSqlCmd)

EXEC master.dbo.XP_CMDSHELL@strSqlCmd,NO_OUTPUT

SET @strSqlCmd= ‘ECHO 壓縮日期: ‘+CONVERT(VARCHAR(20),GETDATE(),120)+‘ ‘[email protected]+‘  >>E:\DataBackup\CompressDataBase\LiangJiaLun219‘+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+‘.txt‘

EXEC master.dbo.XP_CMDSHELL@strSqlCmd,NO_OUTPUT

 

完成後我們可以看到操作步驟的對話方塊,三,資料完全備份的步驟:

 

 

6、設定計劃任務

 

 

7、如果執行一下代碼  首先必須安裝WinRar 然後  在環境變數中---系統內容變數 Path 中 把Rar.exe 的路徑加進去 (如:C:/Program Files/WinRar/) 這樣就可以了,看好了 只需要加路徑。。。不需要Rar.exe;我們之前乾的這些步驟是為了  下面紅色地方,因為要執行Rar.exe 不然會報  不是內部程式 或者不是內部命令 。。。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.