Saya menjadi DBA yang agak tidak disengaja bekerja di sana dan benar-benar membutuhkan bantuan pada sesuatu.
Kami memiliki basis data 40GB dalam Mode Pemulihan Penuh, tidak ada cadangan log yang dikonfigurasi, dan file log besar berukuran 84GB. Sejauh ini rencana saya untuk menyelamatkan situasi ini adalah dengan menjalankan pencadangan log lengkap pada basis data, mengecilkan file log, dan memulai rencana pemeliharaan untuk menjalankan pencadangan log setiap malam dengan cadangan basis data untuk membantu mengendalikannya.
Masalah saya adalah saya tidak ingin file log menyusut menjadi nol dan menghabiskan pagi pertama di hari Senin terus bertambah. Saya memiliki perkiraan kasar mengenai file apa yang seharusnya (sekitar 20% dari database) dan ingin mengatur ini sejak awal untuk memastikan ruang yang bersebelahan sebanyak mungkin. Apakah ini hanya kasus mengubah "Ukuran Awal" di bawah Properti database -> File? Saya menduga juga bahwa database harus offline agar ini terjadi?
Terima kasih sebelumnya
sumber
Jawaban:
Kecilkan saja apa yang Anda pikirkan adalah ukuran optimal. Jangan gunakan UI, lakukan saja ini - katakanlah 200 MB adalah ukuran optimal Anda:
Jika Anda hanya tertarik untuk mengambil cadangan log sekali sehari, dan tidak tertarik pada pemulihan point-in-time, maka Anda harus beralih ke model pemulihan sederhana. Ini berarti cadangan log tidak perlu (sebenarnya tidak mungkin) tetapi isi log akan dikelola sendiri.
Jika Anda ingin backup log menjadi bermakna, jangan berencana untuk mengambil backup penuh di malam hari dan kemudian satu backup log setelahnya. Ini membuat Anda dalam model pemulihan penuh, membuat log bekerja sangat keras, dan tidak membelikan Anda apa pun. Jadi jika Anda ingin pemulihan point-in-time, jalankan backup log lebih sering pada tingkat yang memuaskan toleransi kehilangan data Anda. Jika Anda tidak ingin kehilangan lebih dari 15 menit data, jalankan pencadangan log setiap 15 menit.
sumber
Manajemen file Anda dapat menjadi operasi yang sepenuhnya online. Anda memiliki dua jalur, tergantung pada kebutuhan Anda untuk menyimpan informasi log Anda untuk tujuan pemulihan:
Titik pemulihan waktu tidak diperlukan
SIMPLE
pemulihan. Jalankan pos pemeriksaan untuk menulis transaksi ke disk.Saya juga merekomendasikan pengaturan jumlah pertumbuhan tetap dan pertumbuhan tidak terbatas (untuk membantu mengelola log Anda dengan lebih baik). Catatan, jumlah pertumbuhan tetap sangat banyak dan itu tergantung jumlah, saya akan merekomendasikan pergi dengan 1-2 GB awalnya tergantung pada seberapa banyak pertumbuhan yang bisa dilihat oleh log. Idealnya, log Anda tidak akan tumbuh banyak, jadi ini seharusnya tidak banyak berdampak. Jika log Anda tumbuh secara teratur, Anda mungkin perlu mengunjungi kembali ukuran Anda.
Selesai menggunakan:
Diperlukan pemulihan waktu
Hangup terbesar adalah Anda tidak dapat mengecilkan file log Anda melewati segmen VLF yang saat ini aktif. Untuk melihat ini, Anda dapat menggunakan
DBCC LOGINFO
dalam konteks basis data. Segmen apa pun dengan Status = 2 aktif. Untuk menghapus segmen aktif, Anda harus menjalankan cadangan log transaksi saat tidak ada transaksi yang aktif di segmen itu. Langkah Anda adalah:Selesai menggunakan:
Beberapa sumber tambahan untuk memahami apa yang terjadi di sini:
Model Pemulihan SQL Server
Rekomendasi t-log Kimberly Tripp
Pos Pemeriksaan Basis Data
sumber
Sebenarnya tidak, database tidak perlu offline untuk mengecilkan log. Dan saya akan mengatakan ini mungkin salah satu dari sedikit kasus di mana penyusutan log adalah ide yang bagus. Anda dapat mengatur ukuran awal, tetapi akan lebih mudah untuk melakukan menyusut dan menyuruhnya menyusut ke ukuran tertentu.
Anda juga dapat melakukannya dengan menggunakan GUI dan menggunakan tombol radio kedua dan kotak centang yang mengatakan seberapa besar Anda ingin log pada akhirnya. Anda bisa sampai ke GUI dengan mengklik kanan database di objek explorer di SSMS, memilih tugas, menyusut, file.
sumber
Sebagai pelengkap jawaban Aaron tentang mode sederhana , Anda dapat menjadwalkan 2 (atau lebih) cadangan diferensial per hari, dengan cara itu mengurangi jendela kehilangan data dari operasi basis data Anda sambil mempertahankan mode SIMPLE.
sumber