bellek dökümü dosyaları oluşturmak için SQL Server Analysis Services yapılandırma

Bu makalede, bellek dökümü dosyalarını otomatik olarak oluşturmak için SQL Server Analysis Services nasıl yapılandırıldığı açıklanır.

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 919711

Giriş

Bu makalede Microsoft SQL Server Analysis Services (SSAS) 2012 veya üzeri derlemelerin özel durumlarla karşılaştığında otomatik olarak farklı bellek dökümü dosyası türleri oluşturacak şekilde nasıl yapılandırıldığı açıklanır. Makalede ayrıca Sqldumper.exe yardımcı programının SQL Server Analysis Services işlemi için bellek dökümü dosyasını el ile almak için nasıl kullanılacağı da özetlenmiştir.

Daha fazla bilgi

Varsayılan olarak, SQL Server Analysis Services bir özel durum oluştuğunda otomatik olarak minidump dosyaları oluşturur. Varsayılan yükleme için minidump dosyaları varsayılan konuma yazılır:

Analysis Services sürümü Konum
2019 %ProgramFiles%\Microsoft SQL Server\MSAS15.InstanceName\OLAP\log
2017 %ProgramFiles%\Microsoft SQL Server\MSAS14.InstanceName\OLAP\log
2016 %ProgramFiles%\Microsoft SQL Server MSAS13.InstanceName\OLAP\log
2014 %ProgramFiles%\Microsoft SQL Server MSAS12.InstanceName\OLAP\log
2012 %ProgramFiles%\Microsoft SQL Server MSAS11.InstanceName\OLAP\log

Not

InstanceName, SQL Server Analysis Services sürümüne karşılık gelen değer için bir yer tutucudur.

yüklemeden sonra SQL Server Analysis Services örnek günlük konumu değiştirilebilir, böylece yüklenen SQL Server Analysis Services için msmdsrv.ini dosyasını gözden geçirerek günlük konumunu doğrulayabilirsiniz.

Sistemin karşılık gelen değerini belirlemek için ImagePath kayıt anahtarının değerini belirleyin; msmdsrv.ini içeren Yapılandırma yolunu içermelidir.

Analysis Services sürümü Kayıt defteri alt anahtarı
Varsayılan Örnek HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLServerOLAPService\ImagePath
Adlandırılmış örnek HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSOLAP$InstanceName\ImagePath

Minidump dosyaları aşağıdaki bilgileri içerir:

  • Tüm iş parçacığı yığınları

  • Yığındaki işaretçiler tarafından başvuruda bulunan ikinci sıra bellek

  • İşlem Ortamı Bloğu (PEB) hakkında bilgi

  • İş Parçacığı Ortam Bloğu (TEB) hakkında bilgi

  • Son kaldırılan modüller hakkında bilgi

  • İş parçacığı durumu bilgileri

Msmdsrv.ini dosyasındaki Özel Durum bölümü, bellek dökümü dosyası oluşturmayı denetler. Dosya varsayılan olarak klasöründe bulunur %ProgramFiles%\Microsoft SQL Server\MSASxx.InstanceName\OLAP\Config . MSASxx, SQL Server Analysis Service'e karşılık gelen sürüm için bir yer tutucudur. Dosyayı Not Defteri'nde açtığınızda, Özel Durum XML etiketinde aşağıdakine benzer bir bölüm olduğunu fark edeceksiniz:

<Exception>
<CreateAndSendCrashReports>1</CreateAndSendCrashReports>
<CrashReportsFolder/>
<SQLDumperFlagsOn>0x0</SQLDumperFlagsOn>
<SQLDumperFlagsOff>0x0</SQLDumperFlagsOff>
<MiniDumpFlagsOn>0x0</MiniDumpFlagsOn>
<MiniDumpFlagsOff>0x0</MiniDumpFlagsOff>
<MinidumpErrorList>0xC1000000, 0xC1000001, 0xC1000016, 0xC11D0005, 0xC102003F</MinidumpErrorList>
<ExceptionHandlingMode>0</ExceptionHandlingMode>
<CriticalErrorHandling>1</CriticalErrorHandling>
</Exception>

Bu bölümdeki ayarları değiştirerek bellek dökümü dosyasını oluşturma davranışını denetleyebilirsiniz. Bu ayarları SQL Server Management Studio'da da değiştirebilirsiniz. Bu ayarlar hakkında daha fazla bilgi için SQL Server Management Studio indirme web sitesini ziyaret edin: Günlük Özellikleri.

Analysis Services için otomatik bellek dökümü dosyasını devre dışı bırakma

CreateAndSendCrashReports ayarının değeri, bellek dökümü dosyasının oluşturulup oluşturulmayacağını belirler. Bu ayar, aşağıdaki tabloda listelenen değerlerden birine sahip olabilir.

Değer Açıklama
0 Bu değer Analysis Services'in bellek dökümü dosyası oluşturmadığını belirtir. Ayrıca, Özel Durum bölümündeki diğer ayarların değeri yoksayılır.
1 Bu varsayılan değer bellek dökümü dosyasını etkinleştirir. Ancak SQL Server Analysis Services Microsoft'a hata raporu göndermez.
2 Bu değer, SQL Server Analysis Services bir bellek döküm dosyası oluşturduğunu ve Microsoft'a bir hata raporu gönderdiğini belirtir.

CreateAndSendCrashReports ayarı 1 veya 2 olarak ayarlandığında, Özel Durum bölümündeki diğer ayarlar bellek dökümü dosyasının türünü ve bellek döküm dosyasına eklenecek bilgileri denetleyebilir.

SQL Server Analysis Services otomatik olarak tam döküm dosyası oluşturacak şekilde yapılandırma

Özel durum oluştuğunda SQL Server Analysis Services otomatik olarak tam döküm dosyası oluşturacak şekilde yapılandırmak için SQLDumperFlagsOn ayarını 0x34 olarak ayarlayabilirsiniz. Ayrıca, SQL Server Analysis Services tanıtıcı bilgilerini içeren tam bir döküm dosyası oluşturacak şekilde yapılandırmak istiyorsanız, SQLDumperFlagsOn ayarını 0x34 ve MiniDumpFlagsOn ayarını 0x4 olarak ayarlayabilirsiniz. Örneğin, Msmdsrv.ini dosyasındaki Özel Durum bölümü aşağıdakine benzer olabilir:

<Exception>
<CreateAndSendCrashReports>1</CreateAndSendCrashReports>
<CrashReportsFolder/>
<SQLDumperFlagsOn>0x34</SQLDumperFlagsOn>
<SQLDumperFlagsOff>0x0</SQLDumperFlagsOff>
<MiniDumpFlagsOn>0x4</MiniDumpFlagsOn>
<MiniDumpFlagsOff>0x0</MiniDumpFlagsOff>
<MinidumpErrorList>0xC1000000, 0xC1000001, 0xC1000016, 0xC11D0005, 0xC102003F</MinidumpErrorList>
<ExceptionHandlingMode>0</ExceptionHandlingMode>
<CriticalErrorHandling>1</CriticalErrorHandling>
</Exception>

İşleme bilgilerini el ile içeren tam döküm dosyası oluşturma

Yanıt vermeyi durduran (kilitleyen) bir sunucu gibi sorunları gidermek için, işleme bilgilerini el ile içeren tam bir döküm dosyası oluşturmak isteyebilirsiniz. Bunu yapmak için komut isteminde aşağıdaki bağımsız değişkenlerle birlikte Sqldumper.exe yardımcı programını çalıştırabilirsiniz:

Sqldumper.exe PID 0 0x34:0x4 0 PathToDumpFile

Not

PID, SQL Server Analysis Services işleminin işlem kimliğini temsil eder. PathToDumpFile, döküm dosyasının yazıldığı klasörü temsil eder.

Bu komutu örneği yüklediğiniz Paylaşılan dizininden çalıştırmanız veya komutta Sqldumper.exe dosyasının tam yolunu belirtmeniz gerekir.

Analysis Services sürümü Konum
2019 %ProgramFiles%\Microsoft SQL Server\150\Shared
2017 %ProgramFiles%\Microsoft SQL Server\140\Shared
2016 %ProgramFiles%\Microsoft SQL Server\130\Shared
2014 %ProgramFiles%\Microsoft SQL Server\120\Shared
2012 %ProgramFiles%\Microsoft SQL Server\110\Shared

Örneğin, SQL Server Analysis Services 2019 için sqldumper.exe çalıştırılacak varsayılan dizindirC:\Program Files\Microsoft SQL Server\1590\Shared.

Ek Bilgi

Çeşitli SQLDumper bayraklarını belirtmek için SQLDumperFlagsOn ayarını kullanabilirsiniz. Aşağıdaki tabloda, bayrak parametresi için değer olarak kullanabileceğiniz bit maskesi değerleri listelenir.

Anımsatıcı adı Onaltılık değer Açıklama
SQLDUMPER_DBGBREAK 0x0001 Bu bayrak, Sqldumper.exe yardımcı programının parametreler ayrıştırıldığında programın başlangıcında DebugBreak API çağrısını çalıştırmasına neden olur. Genellikle, Bayrak yalnızca Sqldumper.exe yardımcı program sorunlarının hatalarını ayıklamak için kullanıldığından, Microsoft Ürün Destek Hizmetleri uzmanları bu bayrağı kullanmaz.
Not Bu bayrak Sqldumper.exe işlemine girer. Bu bayrak, Sqldumper.exe yardımcı programının hata ayıklama işlemine girmez.
SQLDUMPER_NOMINIDUMP 0x0002 Bu bayrağı kullandığınızda, Sqldumper.exe yardımcı programı döküm dosyası oluşturmaz. Bu bayrak, Sqldumper.exe yardımcı programını test etmek için kullanılır.
SQLDUMPER_NOWATSON 0x0004 Bu bayrak genellikle döküm dosyalarını el ile oluştururken kullanılır. Bu bayrak, varsayılan hata raporlama davranışını geçersiz kılar. Döküm dosyası varsayılan olarak kayıt defterinde yapılandırılan hata raporlama sitesine gönderilir.
SQLDUMPER_REFERENCED_MEMORY 0x0008 Bu bayrak, Sqldumper.exe yardımcı programının MiniDumpWritedump işlevini çağırdığında MiniDumpType parametresi için MiniDumpWithIndirectlyReferencedMemory bayrağını ayarlamasına neden olur. Yığın tabanlı (parametreler veya yerel değişkenler) işaretçiler için bellek (yalnızca bir düzey) döküm dosyasında depolanır. Test, bu bayrağı ayarladığınızda bile Olasılıksal İmza Düzeni (PSS) ve EC yapıları gibi iş parçacığı yerel depolama (TLS) verilerini temel alan bazı yerel parametrelerin çalışmadığını gösterir.
SQLDUMPER_ALL_MEMORY 0x0010 Bu bayrak, yardımcı program MiniDumpWriteDump işlevini çağırdığında miniDumpType için Sqldumper.exe yardımcı programının MiniDumpType içinMiniDumpWithFullMemory bayrağını ayarlamasına neden olur. Bu davranış, hata ayıklayıcının altındaki .dump /mf komutunu kullanmakla aynıdır. Ancak, tüm iş parçacığı yığınlarının dahil olduğundan emin olmak için SQLDUMPER_DUMP_ALL_THREADS bayrağının da açık olması gerekir.
SQLDUMPER_DUMP_ALL_THREADS 0x0020 Sqldumper.exe yardımcı programını el ile çalıştırdığınızda ve 0 ThreadId parametre değerini belirttiğinizde bu bayrak gerekli değildir. 0 ThreadId parametre değeri, tüm iş parçacıklarının atılması gerektiğini gösterir. Belirli, sıfır olmayan bir ThreadId parametre değeri belirtirseniz ancak bu bayrağı da kullanırsanız, tüm iş parçacıkları döküm dosyasına yazılır. Sqlservr.exe işlemindeki tipik davranış, Sqlservr.exe işlemini oluşturan iş parçacığının geçerli ThreadId özellik değerini geçirmek olduğundan bu bayrak vardır. Bu davranış oluştuğunda, bayrağı tüm iş parçacıklarını döküme alma seçeneği olarak gereklidir.
SQLDUMPER_MATCH_FILE_NAME 0x0040 Sqldumper.exe yardımcı programını belirli bir adlandırma kuralına benzer bir döküm dosyası adı oluşturmaya zorlamak için bu bayrağı kullanabilirsiniz. Bu belirli adlandırma kuralı mevcut bir dosya adını temel alabilir. Kendi programınızda var olan dosya adını içeren özel bir bellek yapısı ayarlamanız ve ardından bu işaretçiyi sqlInfoPtr parametresi olarak Sqldumper.exe yardımcı programına geçirmeniz gerektiğinden, Sqldumper.exe yardımcı programını el ile çalıştırdığınızda bu bayrak yararlı olmaz.
SQLDUMPER_SKIP_DW_REG_READ 0x0080 Bu bayrak, Sqldumper.exe yardımcı programının Dw15.exe programının yürütülmesi için kayıt defterini kullanmasına neden olur. Dw15.exe programı, döküm dosyalarını hata raporlama sitesine yüklemek için kullanılır.
SQLDUMPER_VERBOSE 0x0100 Sqldumper.exe yardımcı programının giriş olarak kullanıldığını düşündüğü parametrelerden emin değilseniz bu bayrak değerli olabilir. Bu bayrağı kullandığınızda, Sqldumper.exe yardımcı programı parametre değerlerini ve komut satırından kaç parametre değeri belirtildiğini görüntüler.
SQLDUMPER_WAIT_AT_EXIT 0x0200 Sqldumper.exe yardımcı programı için hata ayıklayıcı eklemek için bu bayrağı kullanabilirsiniz. Sqldumper.exe yardımcı programıyla ilgili sorunları gidermek için bu hata ayıklayıcıyı kullanabilirsiniz. Bu sorunlar özellikle Sqldumper.exe yardımcı programı Sqlservr.exe veya başka bir program tarafından ortaya çıktığında ortaya çıkabilir. Bu bayrağı ayarladığınızda Sqldumper.exe yardımcı programı, Sqldumper.exe programı var olmadan hemen önce ve diğer tüm işlemler tamamlandıktan sonra 15 saniye boyunca SleepEx işlevini çağırır.
SQLDUMPER_FILTERED 0x0800 Filtrelenmiş döküm dosyası oluşturmak için bu bayrağı kullanabilirsiniz. SQL Server Analysis Services henüz bu bayrağı desteklemiyor.

MiniDumpFlagsOn ayarını kullanarak minidump bayrakları sağlayabilirsiniz. Aşağıdaki tabloda kullanılabilir minidump bayrakları listelenir:

Seçeneği Değer Açıklama
MiniDumpNormal 0x00000000 Üzerine yazma kullanan tipik bir mini döküm dosyası oluşturun.
MiniDumpWithDataSegs 0x00000001 Tüm yüklenen modüller için bir veri kesimi ekleyin. Yüklenen modüllerin genel değişkenleri almasına bayrak ekleyin.
MiniDumpWithFullMemory 0x00000002 Tam kullanıcı döküm dosyası oluşturun. Bayrak ayarlandığında filtrelenmiş döküm dosyası devre dışı bırakılır.
MiniDumpWithHandleData 0x00000004 Tanıtıcı bilgilerini dahil edin.
MiniDumpFilterMemory 0x00000010 Yığın ve yedekleme deposu belleği, modül listesindeki modüllere yönelik işaretçi başvuruları için taranmalıdır. Kullanıcı SQL Server Analysis Services için bu bayrağı kullanmamalıdır.
MiniDumpWithUnloadedModules 0x00000020 Bu bayrak, son kaldırılan modüller hakkında bilgi sağlar. Bu bayrağı yalnızca Microsoft Windows XP ve Microsoft Windows Server 2003 destekler. İşletim sistemi, Windows Server 2003 Service Pack 1 (SP1) ve Windows XP Service Pack 2 (SP2) tarihine kadar kaldırılmış modüller için bilgi saklamaz.
MiniDumpWithIndirectlyReferencedMemory 0x00000040 Yerel ayarlar veya diğer yığın belleği tarafından başvuruda bulunarak verileri olan sayfaları ekleyin.
MiniDumpFilterModulePaths 0x00000080 Modül yolu modül bilgilerinden çıkarılırsa, bu bayrağı kullanmayın.
MiniDumpWithProcessThreadData 0x00000100 Bu bayrak, İşlem Ortamı Bloğu (PEB) ve İş Parçacığı Ortam Bloğu (TEB) hakkında bilgi sağlar.
MiniDumpWithPrivateReadWriteMemory 0x00000200 Dahil edilecek diğer bellek türleri için sanal adres alanını tarayın.
MiniDumpWithoutOptionalData 0x00000400 Gerekli olmayan bellek bölgelerini ortadan kaldırarak boşaltılan verileri azaltın. Döküm dosyası için belirtilen ölçütleri karşılamak için bunu yapın. Bu bayrağın kullanılması, kullanıcıya özel veriler içerebilecek belleğin dökümünü almaktan kaçınabilir. Ancak, bu hiçbir özel bilgi bulunmayacak bir garanti değildir. Bu bayrağı kullanmayın.
MiniDumpWithFullMemoryInfo 0x00000800 Numaralandırılmış bellek bölgesi açıklayıcı bilgilerini ekleyin.
MiniDumpWithThreadInfo 0x00001000 İş parçacığı durumu bilgilerini ekleyin.
MiniDumpWithCodeSegs 0x00002000 Tüm yüklenen modüller için kod ve kodla ilgili bölümleri ekleyin.

Başvurular

Sqldumper.exe yardımcı programını kullanarak SQL Server'de döküm dosyası oluşturma