標籤: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 不然會報 不是內部程式 或者不是內部命令 。。。