Saya memiliki basis data besar (dalam puluhan juta catatan) yang akan saya gunakan untuk membuat cadangan basis data lengkap .
Namun, basis data cukup besar sehingga transaksi dapat dimulai sebelum dan selama, serta komit selama dan setelah pencadangan berlangsung.
Sebagai contoh:
T0 = Transaction A start
T1 = Full database backup start
T2 = Transaction B start (will not deadlock with A)
T3 = Transaction A commit/rollback (does not matter, does it?)
T4 = Full database backup end
T5 = Transaction B commit/rollback (again, does not matter, does it?)
T0 T1 T2 T3 T4 T6
||----------||----------||----------||----------||----------||---------->
Pemahaman saya adalah bahwa tidak ada kunci yang digunakan selama pencadangan (meskipun masalah kinerja lainnya mungkin timbul karena mengatakan, I / O tinggi) , tapi saya tidak yakin apa yang bisa saya jamin apa yang akan dilakukan atau tidak.
Juga, kekhawatiran saya bukanlah bahwa basis data akan berada dalam keadaan tidak konsisten, melainkan bagaimana keadaan itu (bahkan jika itu tidak deterministik, jika ada seperangkat aturan yang dapat diterapkan secara konsisten) dan bagaimana database itu sampai di sana ( misalnya, berapa banyak file data yang digunakan bersama dengan log transaksi untuk membuat file cadangan)?