Seseorang menjalankan kueri pada basis data SQL Server kami dari jarak jauh dan sistem mereka macet.
Mereka tidak memiliki cadangan permintaan itu dan ingin melihat apa yang dijalankan di server.
Apakah mungkin untuk menemukan kueri ini dalam log atau dalam sejarah di suatu tempat?
sql-server
logs
pengguna87094
sumber
sumber
Jawaban:
Hibah yang serupa Fritchey memiliki masalah di mana ia telah menutup SSMS dan kehilangan kueri yang sedang dikerjakannya ... di-blog di sini: Oh **********!
EDIT
Untuk membuat ini sedikit lebih detail dari jawaban, referensi yang ditautkan di atas Hibah memberikan kueri untuk langsung pergi ke cache pada instance untuk menarik kueri yang baru saja Anda jalankan (atau setidaknya mencoba untuk):
Beberapa opsi lagi yang dicatat dalam komentar blog Grant:
sumber
2005+, penelusuran default ke penyelamatan.
Jejak default berguling pada 20mb tetapi SQL mempertahankan sejarah 5 jejak. Dengan akses ke server Anda dapat mengambil file * .trc dari direktori MSSQL \ Log. Jika Anda tidak dapat mengakses server, berikut ini akan memberi Anda nama file jejak default saat ini:
Jika file saat ini misalnya E: \ MSSQL.1 \ MSSQL \ LOG \ log_200.trc, file sebelumnya harus log_199.trc, log_198.trc dll. Dapatkan konten penelusuran dengan:
sumber
Anda mungkin dapat mengambil info dari paket kueri yang di-cache, memeriksa BOL untuk info di sys.dm_exec_query_stats, atau menjalankan ini dari studio manajemen yang terhubung ke database yang sama:
Saring output dengan
untuk mempersempit hasil.
sumber
Jika database dalam mode pemulihan penuh maka mungkin ada peluang untuk memulihkan beberapa data dan mendapatkan wawasan tentang apa yang dilakukan dengan membaca log transaksi.
Sayangnya ini tidak didukung secara default tetapi ada cara untuk melakukan ini.
Anda dapat mencoba menggunakan alat pihak ketiga seperti ApexSQL Log atau SQL Log Rescue (gratis tetapi hanya SQL 2000).
Pilihan lain adalah mencoba menggunakan fungsi DBCC LOG atau fn_dblog yang tidak didokumentasikan. Ini lebih kompleks tetapi gratis.
sumber
Jika basis data Anda disetel ke model pemulihan penuh, Anda dapat menyelidiki cadangan log transaksi Anda. Lihat
fn_dump_dblog
untuk informasi lebih lanjut.sumber
ApexSQL memiliki fungsionalitas ' Permintaan yang dijalankan ' yang memungkinkan Anda mencari dan memfilter menurut tanggal.
Saya tidak yakin apakah itu menarik sejarah dari cache SSMS atau benar-benar melacaknya dengan sendirinya. Anda dapat mencoba menginstalnya dan berharap yang terbaik.
sumber