Log transaksi tumbuh tak terduga atau menjadi penuh di SQL Server

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 317375 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

Ringkasan

Jika autogrow opsi disetel di Microsoft SQL Server 2005 dan kemudian versi, SQL Server 2000 dan SQL Server 7.0, file catatan transaksi dapat memperluas secara otomatis ke log maksimum ukuran file 2 terabyte (TB) per berkas log.

Biasanya, ukuran file catatan transaksi menstabilkan ketika dapat memegang jumlah maksimal transaksi yang dapat terjadi antara truncations log transaksi yang dipicu oleh pos pemeriksaan atau transaksi log backup.

Namun, dalam beberapa kasus transaksi log Mei menjadi sangat besar dan berjalan keluar dari ruang atau menjadi penuh. Biasanya, Anda menerima pesan galat berikut ketika file catatan transaksi menggunakan ruang disk yang tersedia dan tidak dapat memperluas lagi:
Kesalahan: 9002, keparahan: 17 negara: 2
File log untuk database ' %. * ls' penuh.
Jika Anda menggunakan SQL Server 2005, Anda menerima pesan galat yang menyerupai berikut ini:
Kesalahan: 9002, keparahan: 17 negara: 2
Transaksi log untuk database ' %. * ls' penuh. Untuk mengetahui mengapa ruang dalam log tidak dapat digunakan kembali, lihat kolom log_reuse_wait_desc di sys.databases
Selain pesan kesalahan ini, SQL Server dapat menandai database sebagai tersangka karena kurangnya ruang untuk ekspansi log transaksi. Untuk informasi lebih lanjut tentang bagaimana untuk memulihkan dari situasi ini, lihat "Tidak cukup ruang Disk" topik dalam SQL Server buku Online.

Selain itu, perluasan transaksi log dapat terjadi untuk satu alasan berikut atau di salah satu skenario berikut:
  • file catatan transaksi yang sangat besar.
  • Transaksi mungkin gagal dan mulai untuk roll kembali.
  • Transaksi dapat mengambil waktu lama untuk menyelesaikan.
  • Masalah kinerja dapat terjadi.
  • Memblokir dapat terjadi.
  • Database berpartisipasi dalam grup ketersediaan AlwaysOn.

Informasi lebih lanjut

Transaksi log ekspansi dapat terjadi untuk salah satu alasan berikut atau skenario.


Catatan Dalam SQL Server 2005 dan versi yang lebih baru, Anda dapat memeriksa kolom log_reuse_wait dan log_reuse_wait_desc sys.databases Katalog tampilan untuk menentukan mengapa ruang log transaksi adalah tidak kembali dan mengapa log transaksi tidak terpotong.


Transaksi tidak terikat

Sangat besar transaksi

Operasi: DBCC DBREINDEX dan membuat indeks

Ketika memulihkan dari transaksi log backup

Aplikasi-aplikasi client tidak memproses semua hasil

Query waktu sebelum log transaksi selesai perluasan dan Anda menerima pesan kesalahan 'Log lengkap' palsu

Unreplicated transaksi

AlwaysOn 'AVAILABILITY_REPLICA' menerapkan catatan log transaksi ke database sekunder

Informasi lanjutan

Transaksi log untuk database dikelola sebagai satu set virtual file log (VLFs). SQL Server menentukan ukuran file VLF internal berdasarkan ukuran total berkas log dan kenaikan pertumbuhan yang digunakan ketika log mengembang. Log selalu memperluas dalam satuan seluruh VLFs dan itu hanya dapat memampatkan ke batas VLF. VLF bisa eksis di salah satu dari tiga negara: aktif, RECOVERABLE, dan dapat digunakan kembali.
  • Aktif: bagian aktif dari log dimulai minimal log urutan menurun nomor (LSN) yang mewakili sebuah transaksi (tidak terikat) yang aktif. Bagian aktif dari log berakhir di LSN ditulis terakhir. Setiap VLFs yang berisi setiap bagian dari log aktif dianggap aktif VLFs. (ruang yang tidak terpakai di log fisik bukan merupakan bagian dari setiap VLF.)
  • RECOVERABLE: bagian log yang datang sebelum transaksi aktif tertua ini hanya diperlukan untuk mempertahankan urutan menurun log backup untuk pemulihan.
  • REUSABLE: jika Anda tidak mempertahankan transaksi log backup, atau jika youalready didukung log, SQL Server reuses VLFs sebelum activetransaction tertua.
Ketika SQL Server mencapai akhir file log fisik, itu mulai menggunakan ruang dalam file fisik dengan mengeluarkan operasi yang berputar-putar kembali ke awal dari file. Akibatnya, SQL Server mendaur ulang ruang dalam file log yang tidak lagi diperlukan untuk tujuan pemulihan atau cadangan. Jika urutan menurun cadangan log sedang dipertahankan, Bagian dari log sebelum minimum LSN tidak dapat ditimpa sampai Anda membuat cadangan atau memotong catatan log tersebut. Setelah Anda melakukan log backup, SQL Server dapat lingkaran kembali ke awal dari file. Setelah SQL Server lingkaran kembali ke mulai menulis log mencatat sebelumnya dalam berkas log, Bagian reusable log ini kemudian antara akhir dari log logis dan bagian aktif dari log.

Untuk selengkapnya, lihat "Transaksi Log fisik arsitektur" topik dalam SQL Server buku Online. Selain itu, Anda dapat melihat diagram dan diskusi ini di halaman 190 "dalam SQL Server 7.0" (Soukup, Ron. Dalam Microsoft SQL Server 7.0, Microsoft Press, 1999), dan juga pada halaman 182-186 "dalam SQL Server 2000" (Delaney, Kalen. Dalam Microsoft SQL Server 2000, Microsoft Press, 2000). Database SQL Server 2000 dan SQL Server 7.0 memiliki pilihan untuk autogrow dan autoshrink. Anda dapat menggunakan pilihan ini untuk membantu Anda mengecilkan atau memperluas log transaksi Anda.

Untuk informasi lebih lanjut tentang bagaimana pilihan ini dapat mempengaruhi server, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
315512 Pertimbangan untuk Autogrow dan Autoshrink konfigurasi di SQL Server
Pemotongan dari file catatan transaksi berbeda dari kompresi file catatan transaksi. Ketika SQL Server memotong file catatan transaksi, ini berarti bahwa isi dari file (misalnya, transaksi berkomitmen) dihapus. Namun, bila Anda melihat ukuran file dari perspektif ruang disk (misalnya, dalam Penjelajah Windows atau dengan menggunakan perintah dir ), ukuran tetap tidak berubah. Namun, ruang di dalam .ldf file sekarang digunakan kembali oleh transaksi yang baru. Hanya ketika ukuran file catatan transaksi menyusut SQL Server Apakah Anda benar-benar melihat perubahan dalam ukuran fisik berkas log.

Untuk informasi lebih lanjut tentang bagaimana untuk mengecilkan log transaksi, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
256650 Bagaimana untuk mengecilkan log transaksi SQL Server 7.0
272318 Menyusut log transaksi SQL Server 2000 dengan DBCC SHRINKFILE
Untuk informasi lebih lanjut tentang penggunaan log transaksi SQL Server 6.5, klik nomor artikel berikut ini untuk melihat artikel di dalam Pangkalan Pengetahuan Microsoft:
110139 Penyebab log transaksi SQL yang mengisi

Bagaimana cara menemukan pertanyaan yang mengkonsumsi sejumlah besar ruang login di SQL Server 2005 dan versi yang lebih baru

Dalam SQL Server 2005 dan versi yang lebih baru, Anda dapat menggunakan sys.dm_tran_database_transactions manajemen dinamis Lihat (DMV) untuk Telisik query yang mengkonsumsi jumlah besar ruang log. Kolom berikut di sys.dm_tran_database_transactions DMV dapat berguna:
  • database_transaction_log_bytes_used
  • database_transaction_log_bytes_used_system
  • database_transaction_log_bytes_reserved
  • database_transaction_log_bytes_reserved_system
  • database_transaction_log_record_count
Anda dapat permintaan kolom sql_handle sys.dm_exec_requests DMV untuk mendapatkan teks sebenarnya pernyataan yang mengkonsumsi sejumlah besar ruang log. Anda dapat melakukannya dengan bergabung sys.dm_tran_database_transactions DMV dan sys.dm_tran_session_transactions DMV pada kolom transaction_id, dan kemudian menambahkan tambahan bergabung dengan sys.dm_exec_requests pada kolom session_id.

Untuk informasi lebih lanjut tentang sys.dm_tran_database_transactions DMV, pergi ke sys.dm_tran_database_transactions (Transact-SQL) Website Microsoft Developer Network (MSDN).

Untuk informasi lebih lanjut tentang sys.dm_tran_session_transactions DMV, pergi ke sys.dm_tran_session_transactions (Transact-SQL) MSDN website.

Untuk informasi lebih lanjut tentang sys.dm_exec_requests DMV, pergi ke sys.dm_exec_requests (Transact-SQL) MSDN website.

Properti

ID Artikel: 317375 - Kajian Terakhir: 13 Januari 2014 - Revisi: 5.0
Berlaku bagi:
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Express
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Express
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
Kata kunci: 
kbsqlsetup kbinfo kbmt KB317375 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata, sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 317375

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com