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
- Konversikan basis data menjadi
SIMPLE
pemulihan. Jalankan pos pemeriksaan untuk menulis transaksi ke disk.
- Ratakan log.
- Ubah ukuran log ke ukuran yang sesuai.
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:
ALTER DATABASE [foo]
SET RECOVERY SIMPLE;
CHECKPOINT;
DBCC SHRINKFILE (foo_log,0);
ALTER DATABASE [foo]
MODIFY FILE (NAME=foo_log,SIZE=8000MB,MAXSIZE=UNLIMITED,FILEGROWTH=1000MB);
--Optional if you want the database in full recovery mode
--for point in time recovery going forward
ALTER DATABASE [foo]
SET RECOVERY FULL;
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:
- Jalankan cadangan log transaksi.
- Kecilkan file Anda. (Idealnya rata, tetapi jika database Anda aktif, ini akan sulit dilakukan).
- Ulangi langkah 1 dan 2 hingga ukuran log Anda sesuai, idealnya sekecil mungkin.
- Ubah ukuran log ke ukuran yang sesuai.
Selesai menggunakan:
BACKUP LOG [foo] TO DISK='<Location of t-log backup>';
DBCC SHRINKFILE (foo_log,0);
--Repeat the above until your log file is small "enough"
ALTER DATABASE [foo]
MODIFY FILE (NAME=foo_log,SIZE=8000MB,MAXSIZE=UNLIMITED,FILEGROWTH=1000MB);
Beberapa sumber tambahan untuk memahami apa yang terjadi di sini: