<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        調(diào)試SQLSERVER(一)生成dump文件的方法

        來源:懂視網(wǎng) 責編:小采 時間:2020-11-09 15:37:05
        文檔

        調(diào)試SQLSERVER(一)生成dump文件的方法

        調(diào)試SQLSERVER(一)生成dump文件的方法:調(diào)試SQLSERVER (一)生成dump文件的方法 調(diào)試SQLSERVER (二)使用Windbg調(diào)試SQLSERVER的環(huán)境設(shè)置 調(diào)試SQLSERVER (三)使用Windbg調(diào)試SQLSERVER的一些命令 我們知道調(diào)試程序主要有兩種方法 一種是:live debugging (附加進程 使進程ha
        推薦度:
        導(dǎo)讀調(diào)試SQLSERVER(一)生成dump文件的方法:調(diào)試SQLSERVER (一)生成dump文件的方法 調(diào)試SQLSERVER (二)使用Windbg調(diào)試SQLSERVER的環(huán)境設(shè)置 調(diào)試SQLSERVER (三)使用Windbg調(diào)試SQLSERVER的一些命令 我們知道調(diào)試程序主要有兩種方法 一種是:live debugging (附加進程 使進程ha

        調(diào)試SQLSERVER (一)生成dump文件的方法 調(diào)試SQLSERVER (二)使用Windbg調(diào)試SQLSERVER的環(huán)境設(shè)置 調(diào)試SQLSERVER (三)使用Windbg調(diào)試SQLSERVER的一些命令 我們知道調(diào)試程序主要有兩種方法 一種是:live debugging (附加進程 使進程hang住) 生產(chǎn)環(huán)境最好

        調(diào)試SQLSERVER (一)生成dump文件的方法

        調(diào)試SQLSERVER (二)使用Windbg調(diào)試SQLSERVER的環(huán)境設(shè)置
        調(diào)試SQLSERVER (三)使用Windbg調(diào)試SQLSERVER的一些命令

        我們知道調(diào)試程序主要有兩種方法

        一種是:live debugging (附加進程 使進程hang住) 生產(chǎn)環(huán)境最好不要live debugging

        一種是:post-mortem debugging or reading dump files (生成dump文件然后進行分析)

        現(xiàn)在介紹一下如何生成dump文件,以及各種方法的差異


        第一步:確定SQLSERVER的進程ID

        由于我的機器安裝了四個SQLSERVER實例,所以看到會有四個進程

        方法1:在cmd窗口輸入下面命令

        tasklist | find /i "sqlservr"

        方法2:打開任務(wù)管理進行查看

        方法3:在SSMS里執(zhí)行下面sql語句

        SELECT SERVERPROPERTY('PROCESSID') AS sqlpid

        方法4:從SQL errorlog里獲取進程ID

        EXEC [sys].[sp_readerrorlog] 


        第二步:生成DUMP文件

        方法1:使用SqlDumper

        最一般的方法就是使用SQLSERVER內(nèi)部的SqlDumper程序,如果使用默認安裝路徑default installation path 會是

        C:\Program Files\Microsoft SQL Server\100\Shared

        語法如下:

        SqlDumper     

        如果對語法不太熟悉,可以使用/? 查看幫助

        一般我們會使用到的flag如下:

        0x0120 – Minidump(只會dump出棧和所加載的模塊,是最小的dump類型 ,并且這是sqlserver正常情況下自動生成的dump類型)

        0x01100 – Full Dump(這種dump類型包含整個進程空間,如果是64位系統(tǒng)并且SQLSERVER占用大量內(nèi)存那么dump出來的文件將會非常大)

        0x8100 – Filtered Dump(Filtered Dump 會dump出 Stolen Memory和buffer pool部分)

        SqlDumper這個工具不但只可以dump出sqlserver,也可以dump出其他軟件,進而生成dump文件

        示例:

        Minidump: sqldumper 3116 0 0x0120 0 C:\Temp
        Full Dump: sqldumper 3116 0 0x01100 0 C:\Temp
        Filtered Dump: sqldumper 3116 0 0x8100 0 C:\Temp

        SQL進程里當前有45個線程

        生成的minidump文件

        dump文件的命名規(guī)則一般是:SQLDmpr####.mdmp

        方法2:使用debugger tools

        例如使用WINDBG或其他debugger工具,將debugger附加到進程(使用PID)里面

        WINDBG的下載地址:http://msdn.microsoft.com/en-us/windows/hardware/hh852365

        下載下來進行安裝,當然這時候可以同時下載公有符號包

        下載地址:http://msdn.microsoft.com/zh-cn/windows/hardware/gg463028#Download_windows

        安裝好之后,就可以開始菜單看到WINDBG程序,點擊他啟動

        選擇Attach to a Process。。

        我們附加到進程ID為2168的這個sqlserver進程

        一旦連接上,我們只需要使用.dump命令就能生成dump文件,語法如下:

        Options are: 
        /a - Create dumps for all processes (requires -u) 創(chuàng)建所有進程的dump文件 需要-u 選項
        /b[a] - Package dump in a CAB and delete dump 包裝dump文件為CAB格式然后刪除dump文件
        /c  - Add a comment (not supported in all formats) 添加注釋 ,不支持所有格式
        /j  - Provide a JIT_DEBUG_INFO address 提供一個JIT_DEBUG_INFO地址
        /f - Create a legacy style full dump 創(chuàng)建一個歷史full dump
        /m[acdfFhiprRtuw] - Create a minidump (default) 創(chuàng)建一個mini dump文件(默認選項)
        /o - Overwrite any existing file 覆蓋任何已經(jīng)存在的文件
        /u - Append unique identifier to dump name 追加唯一標識符到dump文件名

        “.dump /ma” 命令對于創(chuàng)建一個完整的用戶態(tài)內(nèi)存dump文件是合適的

        使用下面命令創(chuàng)建SQLSERVER的mini dump文件放在C:\Temp路徑下

        .dump /ma C:\Temp\sqlexpress_pid2168_dump.dmp

        方法3:使用SQLSERVER內(nèi)置的命令

        在SQLSERVER里面,你可以使用兩種方法創(chuàng)建dump文件,第一,使用下面的undocumented命令手工(手工觸發(fā))創(chuàng)建

        DBCC STACKDUMP

        這個命令會在SQLSERVER實例安裝路徑下的LOG文件夾生成dump文件,要生成full dump,mini dump,full-filtered dump需要配合不同的trace flag

        要生成full dump使用下面命令

        --full dump
        DBCC traceon(2544, -1) 
        go
        dbcc traceon(2546, -1) 
        go
        dbcc stackdump
        go
        dbcc TRACEOFF(2544,2546, -1) 
        go

        生成mini dump 使用下面命令

        --mini dump 
        dbcc traceon(2546, -1) 
        go
        
        dbcc stackdump
        GO
        dbcc TRACEOFF(2544,2546, -1) 
        GO

        生成full-filtered dump 使用下面命令

        --full-filtered dump 
        dbcc traceon(2551, -1) 
        go
        
        dbcc stackdump
        GO
        dbcc TRACEOFF(2544,2546,2551, -1) 
        go

        首先看一下你的SQL實例是安裝在哪里,打開服務(wù)器屬性,看到根目錄那一欄

        然后執(zhí)行上面的命令

        full dump

        mini dump

        full-filtered dump

        可以看到dump文件的大小都不一樣

        另一種方法是使用下面的另一個undocumented命令(SQLSERVER自動觸發(fā))創(chuàng)建DUMP文件

        DBCC DUMPTRIGGE

        DBCC DUMPTRIGGER命令會在當有錯誤發(fā)生的時候觸發(fā)dump的產(chǎn)生,當然你可以指定當發(fā)生某種特定錯誤的時候才觸發(fā)

        可以使用下面的命令當發(fā)生701錯誤的時候觸發(fā)

        -- turn on TFs for full dump 
        DBCC TRACEON(2544, -1) 
        GO 
        DBCC TRACEON(2546, -1) 
        GO
        
        -- set DUMP TRIGGER for exception 701 
        DBCC dumptrigger('set', 701) 
        GO
        
        --exception 701 occur
        BACKUP DATABASE [Temp2] 
        TO 
        DISK ='E:\Temp21FULLBACKUP.BAK' ,
        DISK = 'E:\Temp22FULLBACKUP.bak',
        DISK = 'E:\Temp23FULLBACKUP.bak',
        DISK = 'E:\Temp24FULLBACKUP.bak',
        DISK = 'E:\Temp25FULLBACKUP.bak',
        DISK = 'E:\Temp26FULLBACKUP.bak'
        WITH BUFFERCOUNT=999999999,FORMAT
        --消息 3013,級別 16,狀態(tài) 1,第 2 行
        --BACKUP DATABASE 正在異常終止。
        --消息 701,級別 17,狀態(tài) 17,第 2 行
        --資源池 'default' 沒有足夠的系統(tǒng)內(nèi)存來運行此查詢。
        
        
        -- view exceptions set for DUMP TRIGGER 
        DBCC TRACEON(3604, -1) 
        GO 
        DBCC dumptrigger('display') 
        GO 
        DBCC TRACEOFF(3604, -1) 
        GO
        
        -- Turn off dumptrigger for exception 701 
        DBCC dumptrigger('clear', 701) 
        GO

        這時候在LOG文件夾下就會看到生成的dump文件

        方法4:添加SQLSERVER的啟動參數(shù)

        –y:啟動參數(shù)在SQL啟動的時候能完成DBCC DUMPTRIGGER命令類似的功能

        For more information refer to:

        http://blogs.msdn.com/psssql/archive/2008/01/10/how-it-works-sql-server-engine-error-messages.aspx

        方法5:在任務(wù)管理器里按右鍵->創(chuàng)建轉(zhuǎn)儲文件

        這個方法不是太推薦,不是太可控

        當點擊按鈕“創(chuàng)建轉(zhuǎn)儲文件”的時候,Windows會創(chuàng)建一個full dump文件

        這個功能只能在Windows 2008 、Windows 2008 R2 、Vista 、 Windows 7上使用

        下篇講解 使用Windbg調(diào)試SQLSERVER的環(huán)境設(shè)置

        參考文章

        http://blogs.msdn.com/b/askjay/archive/2010/02/05/how-can-i-create-a-dump-of-sql-server.aspx

        歡迎大家拍磚o(∩_∩)o

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        調(diào)試SQLSERVER(一)生成dump文件的方法

        調(diào)試SQLSERVER(一)生成dump文件的方法:調(diào)試SQLSERVER (一)生成dump文件的方法 調(diào)試SQLSERVER (二)使用Windbg調(diào)試SQLSERVER的環(huán)境設(shè)置 調(diào)試SQLSERVER (三)使用Windbg調(diào)試SQLSERVER的一些命令 我們知道調(diào)試程序主要有兩種方法 一種是:live debugging (附加進程 使進程ha
        推薦度:
        標簽: 文件 生成 方法
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 中文字幕免费在线观看| 亚洲精品免费视频| 永久免费毛片手机版在线看| 亚洲一级毛片在线观| 国产成人午夜精品免费视频| 亚洲国产人成在线观看| 成人女人A级毛片免费软件| 亚洲色少妇熟女11p| 国产大片91精品免费观看男同 | 亚洲日本久久一区二区va| 国产精品久久久久免费a∨| 亚洲爆乳大丰满无码专区| 免费人成网站在线高清| 国产精品成人啪精品视频免费| 亚洲综合熟女久久久30p| 美女视频黄的免费视频网页| 亚洲视频网站在线观看| 免费无码看av的网站| 黄色a三级免费看| 亚洲国产成人片在线观看无码 | 国产免费无码一区二区| 亚洲第一成年网站大全亚洲| 中文字幕无码免费久久99| 亚洲av无一区二区三区| 中文字幕不卡亚洲| 四虎在线免费视频| 另类图片亚洲校园小说区| 亚洲日韩v无码中文字幕| 亚洲高清免费在线观看| 激情无码亚洲一区二区三区| 国产亚洲AV手机在线观看 | 99精品视频在线观看免费专区| 亚洲成a人片在线观看中文!!! | h视频在线观看免费| 一区二区三区亚洲| 免费无码又爽又刺激毛片| 99精品视频免费| 亚洲综合无码无在线观看| 最新精品亚洲成a人在线观看| 6080午夜一级毛片免费看 | 精品熟女少妇AV免费观看|