Varsayılan izleme etkin ancak etkin değil


9

Ben varsayılan iz yapılandırmasını sorgulamak, etkin gösterir:

exec sp_configure 'default trace enabled';
-->
name                    minimum  maximum  config_value  run_value
default trace enabled         0        1             1          1

Ama sys.tracesyolu sorgulamak , boş bir satır kümesi döndürür:

select * from sys.traces;

Etkin izlemenin yokluğunu ne açıklayabilir?


@AaronBertrand: select * from sys.tracesBoş satır kümesi döndürür
Andomar

Ayrıca, izleme sürücüsünün doldurmak için yazdığı sürücüden (ve fark edilir / korelasyonlu bir şekilde olmadığı sürece mutlaka SQL Server'ı etkilemediği için) öldüğü durumları duydum.
Aaron Bertrand

@AaronBertrand: Yönetici, sürücünün birkaç gün önce dolduğunu söylüyor. SQL Server hizmetinin yeniden başlatılması da varsayılan izlemeyi yeniden başlatır mı?
Andomar

Durdurulan iz de benim ilk oldu ama EXEC sp_trace_setstatus @traceid = 1, @status = 0geri getiriyor The default trace cannot be stopped or modified.böylece çalışmasını engelleyen bir hata olmadığı sürece durdurulabilir emin değilim. Hata günlüklerinde bir şey var mı?
Martin Smith

@Martin doğru, varsayılan izlemeyi manuel olarak durduramazsınız.
Aaron Bertrand

Yanıtlar:


13

Boş alan olayınız ile eksik iz arasında güçlü bir korelasyon olduğunu söyleyebilirim. Not o sp_configureseçenek sadece varsayılan iz etkindir ancak bu çalışması veya hatta var olduğunu anlamına gelmez söyler. Not sys.tracesbir tablo ama bir görünüm değildir:

create view sys.traces as select * from OpenRowset(TABLE SYSTRACES)

TABLE SYSTRACESSatır kümesi ne sağlar? O nasıl çalışır? Sonuçları nasıl filtrelenir? Tahminin benimki kadar iyi. İzin hala orada olması mümkündür, ancak bu görüşle açığa çıkmasını engelleyen bir durumda. Ve hizmeti yeniden başlattıktan sonra bile başlatılmasını hala önleyen bir durumda olabilir.

Öncelikle, varsayılan izlemenin konumunun yeterli alana sahip olduğundan emin olun, SQL Server hizmet hesabının yine de yazmak için yeterli izinleri vardır, herhangi bir alan kotasına tabi değilsiniz. Konumu kayıt defterinden alabilirsiniz:

HKEY_LOCAL_MACHINE\Software\Microsoft\...YourInstance...\Setup\SQLDataRoot\

SQL Server'ın bu klasöre yazabileceğinden emin olduktan sonra, varsayılan izlemeyi devre dışı bırakıp yeniden etkinleştirebilirsiniz:

EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'default trace enabled', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_configure 'default trace enabled', 1;
GO
RECONFIGURE WITH OVERRIDE;

Bu noktada SQL Server hizmetini yeniden başlatmanız gerekmez, ancak hala bir satır görmüyorsanız SQL Server'ın pantolonunda son vuruş olabilir sys.traces. Unutmayın ki trace_id1'de kalmanız garanti edilmez.


Teşekkürler, devre dışı ve yeniden etkinleştirmek çalıştı. Ben kullanmadım with override. Hata günlükleri gerçekten de alan dışı bir olay gösterdi.
Andomar

1
@Andomar üzgünüm, with overridealışkanlık.
Aaron Bertrand

1

Sürücü dolduktan sonra aynı sorunu yaşadım. Varsayılan izleme etkinleştirildi ancak çalışmıyor. Devre dışı bırakmak ve yeniden etkinleştirmek, hizmetleri durdurmadan hemen çalıştı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.