Kami menyiapkan mirroring basis data selama akhir pekan, dan lupa mengaktifkan kembali pekerjaan yang mencadangkan log transaksi. Ketika saya datang di pagi ini, log transaksi telah menggelembung ke 58GB, dan mengambil sebagian besar ruang drive.
Saya melakukan backup manual log transaksi ke disk untuk menjalankan database lagi, namun menjalankan DBCC SHRINKFILE tampaknya tidak mengurangi ukuran fisik file log transaksi.
DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000)
Jika saya memeriksa penggunaan log menggunakan
DBCC SQLPERF(LOGSPACE)
Saya dapat melihat bahwa hanya 22% dari log saat ini sedang digunakan
Nama Database Ukuran Log (MB) Ruang Log Digunakan (%) Status MyDatabaseName 55440.87 22.38189 0
Jika saya memeriksa log_reuse_wait_desc
di sys.databses, satu-satunya catatan yang saya lihat adalah DATABASE_MIRRORING
, jadi saya menduga cermin berperan dalam mengapa ukuran fisik file log tidak menyusut?
SELECT log_reuse_wait_desc
FROM sys.databases
WHERE name = N'MyDatabaseName';
Saya juga memperhatikan keadaan mirroring basis data utama saya adalah Ditangguhkan, dan mencoba untuk Melanjutkannya segera gagal dengan kesalahan berikut:
Mitra mirroring jarak jauh untuk database 'MyDatabaseName', mengalami kesalahan 5149, status 1, tingkat 25. Mirroring basis data telah ditangguhkan. Mengatasi kesalahan pada server jarak jauh dan melanjutkan mirroring, atau menghapus mirroring dan membangun kembali instance server mirror.
Log kesalahan pada server mirror juga mengandung kesalahan ini, tetapi juga mengandung kesalahan tentang drive file log yang penuh
MODIFY FILE mengalami kesalahan sistem operasi 112 (Tidak ada cukup ruang pada disk.) Ketika mencoba memperluas file fisik.
dan
F: \ Databaselogs \ MyDatabaseName_1.ldf: Kesalahan sistem operasi 112 (Tidak ada cukup ruang pada disk.) Yang ditemui.
Server utama memiliki 60GB pada drive file log (ada database lain yang dihosting di sini), sedangkan server mirroring hanya memiliki 45GB.
Mencadangkan file log membuat database dapat digunakan lagi, namun saya juga ingin mengurangi ukuran file log fisik pada disk, dan membuat mirroring dilanjutkan.
Bagaimana saya bisa mengecilkan ukuran file log transaksi fisik saya tanpa mengorbankan mirroring atau rantai cadangan?
Saya menjalankan SQL Server 2005