Saya memiliki proses yang berjalan lama yang menahan transaksi terbuka untuk durasi penuh.
Saya tidak memiliki kendali atas cara ini dijalankan.
Karena transaksi diadakan terbuka untuk durasi penuh, ketika log transaksi mengisi, SQL Server tidak dapat meningkatkan ukuran file log.
Jadi prosesnya gagal dengan kesalahan "The transaction log for database 'xxx' is full"
.
Saya telah berusaha mencegah ini dengan meningkatkan ukuran file log transaksi di properti database, tetapi saya mendapatkan kesalahan yang sama.
Tidak yakin apa yang harus saya coba selanjutnya. Prosesnya berjalan selama beberapa jam sehingga tidak mudah untuk memainkan trial and error.
Ada ide?
Jika ada yang tertarik, prosesnya adalah impor organisasi Microsoft Dynamics CRM 4.0.
Ada banyak ruang disk, kami memiliki log dalam mode pencatatan sederhana dan telah mencadangkan log sebelum memulai proses.
- = - = - = - = - UPDATE - = - = - = - = -
Terima kasih atas komentarnya sejauh ini. Berikut ini yang membuat saya percaya bahwa log tidak akan bertambah karena transaksi terbuka:
Saya mendapatkan kesalahan berikut ...
Import Organization (Name=xxx, Id=560d04e7-98ed-e211-9759-0050569d6d39) failed with Exception:
System.Data.SqlClient.SqlException: The transaction log for database 'xxx' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
Jadi mengikuti nasihat itu saya pergi ke " log_reuse_wait_desc column in sys.databases
" dan itu memegang nilai " ACTIVE_TRANSACTION
".
Menurut Microsoft: http://msdn.microsoft.com/en-us/library/ms345414(v=sql.105).aspx
Artinya sebagai berikut:
Transaksi aktif (semua model pemulihan). • Transaksi yang berjalan lama mungkin ada di awal pencadangan log. Dalam kasus ini, mengosongkan ruang mungkin memerlukan cadangan log lain. Untuk informasi lebih lanjut, lihat "Transaksi Aktif Jangka Panjang", selanjutnya di topik ini.
• Transaksi ditangguhkan (hanya SQL Server 2005 Enterprise Edition dan versi yang lebih baru). Transaksi yang ditangguhkan secara efektif merupakan transaksi aktif yang rollbacknya diblokir karena beberapa sumber daya yang tidak tersedia. Untuk informasi tentang penyebab transaksi yang ditangguhkan dan cara memindahkannya dari status ditangguhkan, lihat Transaksi Ditangguhkan.
Apakah saya salah paham?
- = - = - = - UPDATE 2 - = - = - = -
Baru saja memulai proses dengan ukuran file log awal yang disetel ke 30GB. Ini akan memakan waktu beberapa jam untuk menyelesaikannya.
- = - = - = - UPDATE Akhir - = - = - = -
Masalah ini sebenarnya disebabkan oleh file log yang menghabiskan semua ruang disk yang tersedia. Dalam upaya terakhir saya membebaskan 120GB dan masih menggunakan semuanya dan akhirnya gagal.
Saya tidak menyadari ini terjadi sebelumnya karena ketika proses berjalan dalam semalam, itu bergulir kembali pada kegagalan. Kali ini saya dapat memeriksa ukuran file log sebelum melakukan rollback.
Terima kasih atas masukan Anda.