Apakah SQL Server pernah menghapus file log kesalahan lama?

12

Saya tahu saya bisa siklus log kesalahan saat ini dengan mudah dengan menjalankan sp_cycle_errorlog, tapi saya bertanya-tanya apakah SQL Server akan pernah menghapus file log kesalahan lama / diarsipkan sama sekali. Tampaknya tidak dapat menemukan jawaban untuk ini di mana saja ...

tuseau
sumber

Jawaban:

19

Di SQL Server Management Studio, di Object Explorer> Management, ada pengaturan jika Anda mengklik kanan SQL Server Logsdan pilih Configure. Anda dapat menentukan berapa banyak file log yang ingin Anda simpan. Setelah mencapai angka itu, ia akan mulai menghapus yang lama.

masukkan deskripsi gambar di sini

Kenneth Fisher
sumber
8

Mulai ulang SQL Server 7 kali. Anda akan melihat Anda hanya memiliki 7 ERRORLOG*file (tergantung versi). Ini adalah file log saat ini dan 6 file log terbaru.

Catatan: Anda mungkin perlu mengubah 7 ke sesuatu yang lain, jika Anda mengubah jumlah log kesalahan yang disimpan oleh SQL Server . Maks, saya percaya, adalah 99. Tapi tidak peduli apa pengaturan Anda saat ini, pada akhirnya akan mendaur ulang dan membersihkan file-file lama.

Saya menguji ini dan, jika Anda hapus centang pada kotak yang mengatakan:

☐ Batasi jumlah file log kesalahan sebelum didaur ulang

... yang menyiratkan (setidaknya bagi saya) menyimpan semua file log , itu masih akan menyimpan hanya file log kesalahan saat ini ditambah 6 cadangan . Jika Anda telah mengubah kunci registri yang @RLF tunjukkan , pengaturan kunci registri menimpa (seolah-olah Anda belum menghapus centang pada kotak), tetapi Anda masih akan terbatas pada beberapa file log kesalahan cadangan antara 6 dan 99.

Jadi jawaban singkatnya adalah: ya, dalam semua kasus, SQL Server akhirnya akan menghapus file-file log kesalahan lama.

Aaron Bertrand
sumber
7

SQL Server mendaur ulang log kesalahan secara otomatis, selama Anda mengonfigurasinya dengan benar.

Lihat http://msdn.microsoft.com/en-us/library/ms177285.aspx . Saya telah menyalin poin-poin penting di bawah ini:

Di Object Explorer, rentangkan instance dari SQL Server, rentangkan Management, klik kanan SQL Server Logs, dan kemudian klik Configure.

Dalam kotak dialog Konfigurasikan Log Kesalahan SQL Server, pilih dari opsi berikut.

  • Batasi jumlah file log kesalahan sebelum didaur ulang

    • Periksa untuk membatasi jumlah log kesalahan yang dibuat sebelum didaur ulang. Log kesalahan baru dibuat setiap kali instance SQL Server dimulai. SQL Server menyimpan cadangan dari enam log sebelumnya, kecuali jika Anda memeriksa opsi ini, dan menentukan jumlah maksimum file log kesalahan di bawah ini.
  • Jumlah maksimum file kesalahan log

    • Tentukan jumlah maksimum file log kesalahan yang dibuat sebelum didaur ulang. Standarnya adalah 6, yang merupakan jumlah log cadangan sebelumnya yang disimpan oleh SQL Server sebelum didaur ulang.
Max Vernon
sumber
2

Ya, ada konfigurasi untuk berapa banyak errorlog yang harus dirawat.

Itu dapat ditemukan di kunci registri di:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\NumErrorLogs

Anda mungkin perlu menambahkan kunci ini.

RLF
sumber
1
Perhatikan bahwa Anda perlu mengganti instance pertama MSSQLServerdengan ID instance Anda jika instance tersebut bernama (misalnya MSSQL12.SQL2014untuk instance bernama 2014 saya bernama SQL2014).
Aaron Bertrand