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

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 02:48:11
字體:
來源:轉載
供稿:網友
調試SQLSERVER (一)生成dump文件的方法調試SQLSERVER (一)生成dump文件的方法

調試SQLSERVER (二)使用Windbg調試SQLSERVER的環境設置調試SQLSERVER (三)使用Windbg調試SQLSERVER的一些命令

我們知道調試程序主要有兩種方法

一種是:live debugging (附加進程 使進程hang?。?生產環境最好不要live debugging

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

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


第一步:確定SQLSERVER的進程ID

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

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

tasklist | find /i "sqlservr"

方法2:打開任務管理進行查看

方法3:在SSMS里執行下面sql語句

SELECT SERVERPROPERTY('PROCESSID') AS sqlpid

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

EXEC [sys].[sp_readerrorlog] 


第二步:生成DUMP文件

方法1:使用SqlDumper

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

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

語法如下:

SqlDumper <process id (PID)> <thread id (TID)> <Flags:Minidump Flags> <SQLInfoPtr> <Dump Directory>

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

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

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

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

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

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

示例:

Minidump: sqldumper 3116 0 0x0120 0 C:/TempFull Dump: sqldumper 3116 0 0x01100 0 C:/TempFiltered Dump: sqldumper 3116 0 0x8100 0 C:/Temp

SQL進程里當前有45個線程

生成的minidump文件

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

“.dump /ma” 命令對于創建一個完整的用戶態內存dump文件是合適的

使用下面命令創建SQLSERVER的mini dump文件放在C:/Temp路徑下

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

方法3:使用SQLSERVER內置的命令

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

DBCC STACKDUMP

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

要生成full dump使用下面命令

--full dumpDBCC traceon(2544, -1) godbcc traceon(2546, -1) godbcc stackdumpgodbcc TRACEOFF(2544,2546, -1) go

生成mini dump 使用下面命令

--mini dump dbcc traceon(2546, -1) godbcc stackdumpGOdbcc TRACEOFF(2544,2546, -1) GO

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

--full-filtered dump dbcc traceon(2551, -1) godbcc stackdumpGOdbcc TRACEOFF(2544,2546,2551, -1) go

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

然后執行上面的命令

full dump

mini dump

full-filtered dump

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

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

DBCC DUMPTRIGGE

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

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

-- 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  occurBACKUP 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,狀態 1,第 2 行--BACKUP DATABASE 正在異常終止。--消息 701,級別 17,狀態 17,第 2 行--資源池 'default' 沒有足夠的系統內存來運行此查詢。-- 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的啟動參數

–y:啟動參數在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:在任務管理器里按右鍵->創建轉儲文件

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

當點擊按鈕“創建轉儲文件”的時候,Windows會創建一個fulldump文件

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

下篇講解使用Windbg調試SQLSERVER的環境設置

參考文章

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品一区二区三区婷婷月| 欧美日韩另类在线| www欧美日韩| 一区二区在线视频| 久久综合国产精品台湾中文娱乐网| 久久资源免费视频| 日韩中文字幕在线视频播放| 亚洲第一免费网站| 亚洲影院色在线观看免费| 日本一区二区在线播放| 在线性视频日韩欧美| 日本伊人精品一区二区三区介绍| 亚洲区一区二区| 亚洲日本成人女熟在线观看| 日韩av最新在线观看| 国产精品一区久久| 亚洲性日韩精品一区二区| 国产有码在线一区二区视频| 欧美久久精品午夜青青大伊人| 日韩亚洲精品电影| 欧美精品少妇videofree| 色妞在线综合亚洲欧美| 国产精品视频久久久久| www.色综合| 国语自产精品视频在线看一大j8| 欧美激情第99页| 国产不卡一区二区在线播放| 91精品久久久久久久久久久久久久| 亚洲人成绝费网站色www| 狠狠久久五月精品中文字幕| 一本大道久久加勒比香蕉| 亚洲一区美女视频在线观看免费| 欧美一级淫片播放口| 日韩免费在线免费观看| 浅井舞香一区二区| 国产精品91在线观看| 一区二区欧美日韩视频| 亚洲香蕉成人av网站在线观看| 欧美国产精品va在线观看| 国产一区二区久久精品| 国产精品免费在线免费| 国产日韩在线一区| 国模精品系列视频| 色婷婷久久一区二区| 国内精品模特av私拍在线观看| 国产91成人在在线播放| 亚洲国内精品视频| 日韩高清av在线| 亚洲成av人乱码色午夜| 亚洲国产天堂久久综合| 国产成人精品视| 欧美日韩国产综合视频在线观看中文| 国产欧美精品一区二区三区介绍| www.欧美精品| 国产日本欧美视频| 九九九久久久久久| 国产日韩欧美在线视频观看| 91免费国产视频| 国产精品自产拍在线观| 国产精品xxx视频| 久久精品电影一区二区| 日韩经典中文字幕| 国产免费一区二区三区在线能观看| 国产综合在线观看视频| 精品色蜜蜜精品视频在线观看| 国产成人精品视频在线观看| 精品在线欧美视频| 欧美性在线视频| 91牛牛免费视频| 欧美成人精品激情在线观看| 奇门遁甲1982国语版免费观看高清| 国产欧美精品一区二区三区-老狼| 国产精品三级久久久久久电影| 91中文字幕一区| 亚洲欧美一区二区三区久久| 久久亚洲精品国产亚洲老地址| 国产一区二区日韩| 亚洲加勒比久久88色综合| 自拍视频国产精品| 这里只有精品丝袜| 欧美大片免费看| 亚洲一区二区三区乱码aⅴ蜜桃女| 91国产一区在线| 亚洲精品电影网在线观看| 亚洲激情久久久| 国产精品丝袜白浆摸在线| 91香蕉亚洲精品| 中文.日本.精品| 欧美一区二区三区四区在线| 日韩在线视频网站| 91精品国产网站| 欧美精品久久久久久久免费观看| 一区二区三区回区在观看免费视频| 在线色欧美三级视频| 欧美裸体xxxxx| 91精品国产91久久久久久吃药| 久久国产天堂福利天堂| 久久香蕉国产线看观看网| 国产精品美乳一区二区免费| 视频在线一区二区| 深夜福利日韩在线看| 奇米一区二区三区四区久久| 免费91麻豆精品国产自产在线观看| 91国内产香蕉| 欧美极品少妇全裸体| 日韩亚洲一区二区| 国产成人精品一区二区三区| 久久久人成影片一区二区三区观看| 国产成人精品一区二区三区| 欧美日韩国产专区| 国产91精品青草社区| 久久久久国色av免费观看性色| 日韩av手机在线观看| 国产日韩欧美黄色| 久久久久久国产| 欧美风情在线观看| 人妖精品videosex性欧美| 国产精品aaaa| 国产国产精品人在线视| 国内精品久久久久伊人av| 久久久久久国产三级电影| 国产视频在线一区二区| 精品高清美女精品国产区| 日韩在线视频观看正片免费网站| 黄色成人在线播放| 国产精品高清免费在线观看| 日韩视频―中文字幕| 日本老师69xxx| 国产亚洲精品va在线观看| 色狠狠久久aa北条麻妃| 亚洲一二三在线| 中文字幕日韩视频| 色午夜这里只有精品| 欧美精品18videos性欧美| 亚洲一区二区三区在线免费观看| 粗暴蹂躏中文一区二区三区| 午夜免费在线观看精品视频| 欧美亚洲日本黄色| 欧美理论片在线观看| 精品久久久久久亚洲国产300| 精品亚洲一区二区三区在线观看| 国产精品久久久久久亚洲调教| 国产成人午夜视频网址| 成人黄色在线免费| 日韩视频亚洲视频| 91最新在线免费观看| 日韩精品在线免费观看视频| 久久这里有精品| 最近2019免费中文字幕视频三| 韩国国内大量揄拍精品视频| 性色av一区二区三区免费| 亚洲国产女人aaa毛片在线| 日韩女优在线播放| 91美女高潮出水| 久久精品成人动漫| 上原亚衣av一区二区三区| 精品久久久国产精品999| 视频一区视频二区国产精品| 精品日本美女福利在线观看| 疯狂蹂躏欧美一区二区精品| 色综合导航网站| 欧美做爰性生交视频| 久热精品视频在线观看| 午夜免费在线观看精品视频|