亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

備份數據庫存儲過程

系統 1864 0
原文: 備份數據庫存儲過程

由于使用SSMS創建的維護計劃中,完整備份的話,會打斷別的備份的順序鏈,而由于管理原因,往往需要有幾套備份計劃,所以經過時間,本人編寫了一個存儲過程實現我的想法。不管你用不用,反正我用了。 偷笑


首先,創建一個表,用于記錄備份信息。因為用DMV和系統視圖的話往往要編寫很多東西,對于一般人很難記住那么多表。所以使用一個表來記錄更加方便。以前之前已經創建了一個庫 AuditDB,用于監控數據庫的DDL操作,所以這里沒有再編寫建庫腳本。只是在這個庫里面創建一個表。

    USE AuditDB

GO

IF OBJECT_ID('BackupHistory') IS NOT NULL

DROP TABLE BackupHistory

GO

CREATE TABLE BackupHistory

(

	DatabaseName		NVARCHAR(128),--數據庫名

	CreateDate			DATETIME,--創建時間

	Compatibilitylevel	TINYINT,--數據庫兼容級別

	RecoveryModel		CHAR(10),--恢復模式

	BackupStartData		DATETIME, --備份開始時間

	BackupEndData		DATETIME, --備份結束時間

	BackupSpace			NVARCHAR(128), --備份文件大小

	Operator			NVARCHAR(128),--執行操作者

	Servername			NVARCHAR(128),	--服務器名稱

	[FILENAME]			NVARCHAR(256) --備份文件名

);
  

建了表之后,在msdb或者AuditDB中創建這個存儲過程。一般不要在客戶數據中創建。


    /*

注意:由于用GUI備份會導致備份鏈中斷,而作業無法實現“僅復制備份”,所以使用腳本備份

create by huangzj 20120510

EXEC Backup_By_DBA 'auditdb','e:\新建文件夾\'

*/



ALTER PROC Backup_By_DBA

(

@dbname NVARCHAR(128),

@bakpath NVARCHAR(128)='E:\'

)

AS

--不備份系統表

IF @dbname IN ( 'master', 'msdb', 'model', 'tempdb' ) 

    BEGIN

        RETURN

    END 

ELSE 

    BEGIN

--定義備份時間,精確到秒

        DECLARE @date NVARCHAR(64)

        SELECT  @date = SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 1, 4)

                + '_' + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 6, 2)

                + '_' + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 9, 2)

                + '_' + CONVERT(CHAR(2), DATEPART(hh, GETDATE()))

                + CONVERT(CHAR(2), DATEPART(mi, GETDATE()))

                + CONVERT(CHAR(2), DATEPART(ss, GETDATE()))

--定義要備份的數據庫名

        DECLARE @db NVARCHAR(20)

        SET @db = '' + '' + 
    
      @dbname + '' + ''
    
    

--定義備份文件的全名

        DECLARE @bakname NVARCHAR(128)

        SELECT  @bakname = @db + '_' + @date

--定義備份存放路徑

        DECLARE @disk NVARCHAR(256)

        SELECT  @disk = @bakpath + @bakname + '.bak'

--定義備份描述

        DECLARE @name NVARCHAR(128)

        SELECT  @name = @db + '-完整 數據庫 備份'

--定義錯誤信息

        DECLARE @error NVARCHAR(128)

        SELECT  @error = '驗證失敗。找不到數據庫“' + @db + '”的備份信息。'



        BACKUP DATABASE @db TO  DISK = @disk WITH  COPY_ONLY, NOFORMAT, NOINIT,  

NAME =@name, SKIP, NOREWIND, NOUNLOAD,  STATS = 10, CHECKSUM ;

        DECLARE @backupSetId AS INT

        SELECT  @backupSetId = position

        FROM    msdb..backupset

        WHERE   database_name = @db

                AND backup_set_id = ( SELECT    MAX(backup_set_id)

                                      FROM      msdb..backupset

                                      WHERE     database_name = @db

                                    )

        IF @backupSetId IS NULL 

            BEGIN

                RAISERROR(@error, 16, 1)

            END

        RESTORE VERIFYONLY FROM  DISK = @disk WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND

        

        INSERT INTO AuditDB.dbo.BackupHistory(DatabaseName,CreateDate,Compatibilitylevel,RecoveryModel,BackupStartData,BackupEndData,BackupSpace,Operator,Servername,[FILENAME])

        SELECT a.[name] ,create_date,a.[compatibility_level] ,recovery_model_desc,S.backup_start_date,S.backup_finish_date,CONVERT(VARCHAR(20),CONVERT(DECIMAL(10,2),S.compressed_backup_size/(1024*1024)))+'MB',

        S.[user_name],S.[server_name],physical_device_name

        FROM sys.databases a INNER JOIN msdb.dbo.backupset S ON a.name=S.database_name Inner Join

            msdb.dbo.backupmediafamily M ON S.media_set_id =M.media_set_id

        WHERE a.name=db_name() AND physical_device_name=@disk

    END
  
?備注:此處只是完整備份的例子,如果需要別的備份,那么要修改腳本。

  

備份數據庫存儲過程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!??!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成+人+综合+亚洲 欧美 | 五月天婷五月天综合网在线 | 999久久久精品视频在线观看 | 亚洲综合精品香蕉久久网 | 欧美一级刺激毛片 | 国产夫妻久久 | 国产九色 | 久草男人天堂 | 天海翼精品久久中文字幕 | 欧美国产高清 | 欧美四虎影院 | 67194老司机精品午夜 | 久久视频在线 | 日日干干 | 色综合合久久天天综合绕视看 | 成人性生交大片免费看午夜a | 2021国内精品久久久久影院 | 国产精品亚洲一区二区三区正片 | 夜夜夜操操操 | 福利姬在线精品观看 | 国产一级久久久久久毛片 | 国产成人a大片大片在线播放 | 国产香蕉久久精品综合网 | 午夜精品久久久久久久第一页 | bt 另类 专区 欧美 制服 | 国产成人精品福利色多多 | 欧美白人猛性xxxxx交69 | 精品久久久中文字幕二区 | 全午夜免费一级毛片 | 久草在线免费播放 | 国产成人做受免费视频 | 欧美一级成人免费大片 | 天海翼一区二区三区免费 | 中文国产成人精品久久久 | 九九精品视频在线播放8 | 性欧美高清久久久久久久 | 波多野结衣一区二区 三区 波多野结衣一区二区三区 波多野结衣一区二区三区高清在线 | 国产欧美日韩中文久久 | 久久国产一久久高清 | 婷婷尹人香蕉久久天堂 | 一级a性色生活片毛片 |