亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

SqlServer定時備份數據庫和定時殺死數據庫死鎖解決

2024-07-21 02:50:17
字體:
來源:轉載
供稿:網友
SqlServer定時備份數據庫和定時殺死數據庫死鎖解決

上周五組長對我說了一句要殺死數據庫的死鎖進程,有時候同一時刻不停寫入數據庫會造成這種情況的發生,因為自己對數據庫不是很熟悉,突然組長說了我也就決定一定要倒騰一下,不然自己怎么提高呢?現在不研究,說不定下次還是要研究呢,倒騰出來了就可以在下次用到了,后來組長又補了一句:"還有定時備份數據庫的問題要解決",說干就干。

PS:Sqlserver 2008 R2,windows 8 64位

1.備份數據庫

因為要備份,我們就要用到Sqlserver的代理,默認數據庫的代理是不開啟的。需要我們手動開啟的。

執行備份數據庫腳本,現在將腳本公布,其實將這一段代碼中需要保存的文件路徑和數據庫名稱替換一下就可以實現備份了。但是還沒有達到定時備份的目的

--自動備份并保存最近5天的SQL數據庫作業腳本DECLARE @filename VARCHAR(255)DECLARE @date DATETIMESELECT @date=GETDATE()SELECT @filename = 'G:/存放位置/數據庫名稱-'+CAST(DATEPART(yyyy,@date) as varchar)+'-'+CAST(DATEPART(mm,@date) as varchar)+'-'+CAST(DATEPART(dd,@date) as varchar)+'.bak'BACKUP DATABASE [數據庫名稱] TO  DISK = @filename WITH INITGODECLARE @OLDDATE DATETIMESELECT @OLDDATE=GETDATE()-5EXECUTE master.dbo.xp_delete_file 0,N'G:/存放位置',N'bak',@olddate,1

  

2.定時備份指定數據庫

剛剛開啟了Sqlserver代理服務,其實我自己的理解就是一個定時器,不停的執行一些操作者分配給他的任務,有點像鬧鐘的感覺,看我的演示步驟

第一步

第二步

第三步

第四步

第五步

上面的步驟就是完成了定時備份指定數據庫的功能!

**************************************************************************

1.殺死數據庫死鎖進程

接下來介紹一些殺死數據庫死鎖進程的方法

下午折騰了半天找了很多的文章看了一下,發現很多都是使用到了master中的sys.sysPRocesses表(http://msdn.microsoft.com/zh-cn/library/ms179881(SQL.90).aspx)這里附上msdn對這個表的解釋,不懂的可以參考看看這里面的每個表字段的含義。

參考了網上的意見,大部分都是寫一個存儲過程在master數據庫中,然后使用作業的方式定時殺死死鎖進程的,覺得這個方法可行!

下面是存儲過程SQL語句

--數據庫死鎖解決,結合作業(百度)實現定時清除數據庫死鎖進程,存儲過程放在master數據庫中USE masterGOSET QUOTED_IDENTIFIER ONGOSET ANSI_NULLS ONGOCREATE PROCEDURE sp_who_lockAS    BEGIN        DECLARE @spid INT ,            @bl INT ,            @intTransactionCountOnEntry INT ,            @intRowcount INT ,            @intCountProperties INT ,            @intCounter INT        CREATE TABLE #tmp_lock_who            (              id INT IDENTITY(1, 1) ,              spid SMALLINT ,              bl SMALLINT            )         IF @@ERROR <> 0            RETURN @@ERROR        INSERT INTO #tmp_lock_who ( spid, bl )                SELECT 0, blocked                    FROM ( SELECT *                            FROM sys.sysprocesses                            WHERE blocked > 0                         ) a                    WHERE NOT EXISTS ( SELECT *                                        FROM ( SELECT *                                                FROM sys.sysprocesses                                                WHERE blocked > 0                                             ) b                                        WHERE a.blocked = spid )                UNION                SELECT spid, blocked                    FROM sys.sysprocesses                    WHERE blocked > 0        IF @@ERROR <> 0            RETURN @@ERROR       -- 找到臨時表的記錄數        SELECT @intCountProperties = COUNT(*), @intCounter = 1            FROM #tmp_lock_who         IF @@ERROR <> 0            RETURN @@ERROR        IF @intCountProperties = 0            SELECT N'現在沒有阻塞和死鎖信息' AS message       -- 循環開始        WHILE @intCounter <= @intCountProperties            BEGIN              -- 取第一條記錄                SELECT @spid = spid, @bl = bl                    FROM #tmp_lock_who                    WHERE Id = @intCounter                BEGIN                    IF @spid = 0                        SELECT N'引起數據庫死鎖的是: ' + CAST(@bl AS VARCHAR(10))                                + N'進程號,其執行的SQL語法如下'                    ELSE                        SELECT N'進程號SPID:' + CAST(@spid AS VARCHAR(10))                                + N'被進程號SPID:' + CAST(@bl AS VARCHAR(10)) N'阻塞,其當前進程執行的SQL語法如下'                    DBCC INPUTBUFFER (@bl )                END              -- 循環指針下移                SET @intCounter = @intCounter + 1            END        DROP TABLE #tmp_lock_who        RETURN 0    ENDgo

  上面sql語句執行完成也就在master數據庫生成了存儲過程,調用的代碼很簡單

--執行EXEC sp_who_lockGOSET QUOTED_IDENTIFIER OFFGOSET ANSI_NULLS ONGO

 調用完成之后就可以殺死數據庫當中的所有死鎖進程

題外話:如何判斷那些進程是否是死鎖進程,這個是關鍵點,在msdn中對sys.sysprocesses表的有一個字段blocked這個字段,取出所有大于0的就是數據庫的死鎖進程數據,然后使用KILL+SPID(進程ID)執行就可以殺死死鎖進程,主要思想就是這些。

2.定時殺死數據庫死鎖進程

對于定時殺死數據庫死鎖進程,這里有兩點需要注意

1.執行的順序,現在master數據庫創建存儲過程,然后創建作業

2.作業的執行代碼,執行代碼是調用殺死死鎖進程的存儲過程(調用存儲過程的sql語句,不能包含刪除存儲過程(DROP xxx)這樣的語句是不行,到時候作業第一次執行后,第二次就要報錯了,就永遠執行不成功

第一步

需要執行上面的殺死死鎖進程的存儲過程,只有master數據庫中存在這個存儲過程,才可以以作業的方式調用這個存儲過程,否則就是調用失敗★

第二步

創建一個新的作業,將剛剛的調用存儲過程的SQL語句放入到新建作業=>步驟選項=>命令,中就可以了。最后一步執行計劃自己根據實際情況進行設置  

關于Sqlserver數據庫的兩個難點也在這個下午被我自己吸收了。將來碰到類似的問題也可以輕松應對了,如果大家覺得有幫助可以幫小弟推薦一下哦!

如果文章中有錯誤的地方,大家可以聯系我的QQ:707055073

我的群:152652959

版權所有,違法必究。

轉載請說明原文鏈接


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av电影手机在线观看| 亚洲人成人99网站| 久久视频国产精品免费视频在线| 久久久亚洲国产| 这里精品视频免费| 精品久久国产精品| 国产精品草莓在线免费观看| 精品久久久久人成| 久久的精品视频| 日韩成人av一区| 亚洲网址你懂得| 中文字幕亚洲欧美日韩2019| 91精品视频在线播放| 中文字幕日韩av| 亚洲成人激情在线观看| 亚洲视频在线免费观看| 狠狠躁天天躁日日躁欧美| 久久夜精品va视频免费观看| 亚洲视频免费一区| 亚洲人成在线观看网站高清| 成人黄色av网| 国产亚洲成精品久久| 亚洲毛片在线免费观看| 成人a视频在线观看| 中文字幕av一区二区| 日韩福利伦理影院免费| 91系列在线播放| 日韩免费观看视频| 日韩欧美a级成人黄色| 亚洲精品久久久久久久久| 欧美精品第一页在线播放| 精品亚洲永久免费精品| 欧美成人在线免费视频| 欧美xxxx14xxxxx性爽| 国产一区二区三区精品久久久| 国产精品高清在线| 69视频在线免费观看| 国产精品久久久久aaaa九色| 国产精品视频精品视频| 日本精品视频在线| 成人春色激情网| 人人澡人人澡人人看欧美| 性欧美在线看片a免费观看| 国内精品免费午夜毛片| 欧洲一区二区视频| 国产精品久久婷婷六月丁香| 亚洲精品视频久久| 中文国产亚洲喷潮| 日韩成人激情在线| 欧美福利小视频| 色偷偷噜噜噜亚洲男人| 亚洲国产日韩欧美在线99| 亚洲精品在线视频| 91亚洲午夜在线| 日韩欧美中文字幕在线播放| 668精品在线视频| 欧美激情日韩图片| 欧美日韩国产精品一区| 77777亚洲午夜久久多人| 中文字幕日韩av综合精品| 久久久久久中文字幕| 日韩少妇与小伙激情| 国产精品亚洲片夜色在线| 欧美午夜影院在线视频| 亚洲人线精品午夜| 欧美极品欧美精品欧美视频| 亚洲精品网址在线观看| 青青久久av北条麻妃黑人| 26uuu亚洲国产精品| 亚洲欧美综合区自拍另类| 久久全国免费视频| 性色av香蕉一区二区| 91国产高清在线| 国产精品高潮呻吟视频| 国产精品久久久久久久久久久不卡| 精品成人久久av| 最近的2019中文字幕免费一页| 日韩在线观看免费高清| 国产日韩综合一区二区性色av| 激情懂色av一区av二区av| 日本欧美一级片| xvideos成人免费中文版| 中文字幕av一区二区三区谷原希美| 日韩在线www| 在线观看日韩欧美| 97高清免费视频| 日韩精品中文字幕在线播放| 国产成人亚洲综合| 精品国产91久久久久久老师| 国产丝袜一区二区三区免费视频| 91精品国产色综合久久不卡98口| 亚洲娇小xxxx欧美娇小| 成人h猎奇视频网站| 中文亚洲视频在线| 一区二区三区四区精品| 成人在线视频网站| 97超碰国产精品女人人人爽| 欧美成人h版在线观看| 欧美在线播放视频| 国产精品video| 日韩人体视频一二区| 欧美第一黄网免费网站| 日本成人黄色片| 欧美电影在线播放| 九九热99久久久国产盗摄| 亚洲色图五月天| 中文字幕欧美亚洲| 国产精品视频免费在线观看| 亚洲最大福利视频网站| 久久久久久伊人| 欧美日韩国产成人高清视频| 日韩精品视频在线播放| 永久免费精品影视网站| 浅井舞香一区二区| 欧美激情18p| 青草青草久热精品视频在线观看| 精品亚洲国产视频| 欧美激情视频播放| 亚洲一区二区中文字幕| 综合久久五月天| 国产香蕉一区二区三区在线视频| 亚洲精品一区二区网址| 精品国产拍在线观看| 亚洲欧美日本精品| 久久久999精品| 亚洲欧美国产高清va在线播| 欧美丰满少妇xxxxx做受| 欧美午夜无遮挡| 国产999在线| 亚洲国产精品国自产拍av秋霞| 亚洲精品大尺度| 亚洲自拍偷拍第一页| 欧美怡红院视频一区二区三区| 日韩三级成人av网| 日韩精品视频在线免费观看| 亚洲国产日韩精品在线| 亚洲美女又黄又爽在线观看| 欧美猛交ⅹxxx乱大交视频| 日韩免费高清在线观看| 日av在线播放中文不卡| 国产91免费看片| 久久久噜噜噜久久久| 欧美理论电影在线观看| 欧美精品久久久久| 欧美与黑人午夜性猛交久久久| 国产在线拍偷自揄拍精品| 这里只有精品久久| 亚洲性视频网址| 九色91av视频| 欧美成人午夜剧场免费观看| 欧美限制级电影在线观看| 日韩精品久久久久| 亚洲精品欧美一区二区三区| 欧美激情精品久久久久久蜜臀| 揄拍成人国产精品视频| 亚洲男人的天堂在线播放| 成人伊人精品色xxxx视频| 中文字幕精品久久久久| 国产成人精品一区| 欧美色欧美亚洲高清在线视频| 国产精品久久久久久搜索| 成人免费观看49www在线观看| 成人国产精品久久久久久亚洲| 国产精品亚洲第一区|