Jika suatu transaksi berhasil dilakukan , dapatkah saya 100% yakin bahwa transaksi itu telah ditulis ke database DAN ke file log? Bisakah saya yakin bahwa data tersebut DISIMPAN?
Hari ini file log kami telah mencapai batas drive dan kami mendapat banyak kesalahan. Selain itu, beberapa layanan lain macet. Kami menambah disk dan memulai ulang server.
Saat startup, server melakukan "pemulihan basis data" - dapatkah saya yakin semuanya baik-baik saja?
sql-server
sql-server-2008
sql-server-2008-r2
Polisi SQL
sumber
sumber
Jawaban:
Jika aplikasi klien telah mengeluarkan COMMIT dan mendapatkan kembali kode sukses maka transaksi dijamin oleh mesin menjadi tahan lama. Dijamin bahwa semua perubahan yang dilakukan dalam transaksi akan terlihat, bahkan setelah crash. Selain itu pemulihan juga menjamin bahwa setiap transaksi yang tidak dilakukan akan dibatalkan jika terjadi kerusakan.
Untuk lebih jelasnya saya sarankan membaca kertas ARIES .
Logging dan pemulihan Write-depan tidak dapat membuat jaminan jika perangkat keras penyimpanan yang mendasari memiliki kesalahan (korupsi). Dan produk rekayasa apa pun mungkin mengandung cacat.
Aplikasi Anda, seperti semua aplikasi lain, harus ditulis dengan hati-hati agar berperilaku dengan benar di hadapan crash (kesalahan). Tidak ada sihir.
sumber