Si una transacción se confirma correctamente, ¿puedo estar 100% seguro de que se ha escrito en la base de datos Y en los archivos de registro? ¿Puedo estar seguro de que los datos se GUARDAN?
Hoy nuestros archivos de registro habían alcanzado el límite de la unidad y obtuvimos muchos errores. Además, algunos otros servicios colapsaron. Aumentamos el disco y reiniciamos el servidor.
Durante el inicio, el servidor realizó una "recuperación de la base de datos". ¿Puedo estar seguro de que todo vuelve a estar bien?
sql-server
sql-server-2008
sql-server-2008-r2
Policía de SQL
fuente
fuente
Respuestas:
Si una aplicación cliente ha emitido un COMMIT y ha recuperado un código de éxito, el motor garantiza que la transacción sea duradera. Se garantiza que todos los cambios realizados en una transacción serán visibles, incluso después de un bloqueo. Además, la recuperación también garantiza que cualquier transacción no comprometida se revertirá en caso de un bloqueo.
Para más detalles, recomiendo leer el artículo de ARIES .
El registro y la recuperación de escritura anticipada no pueden garantizar si el hardware de almacenamiento subyacente tiene fallas (corrupción). Y cualquier producto de ingeniería puede contener defectos.
Su aplicación, como todas las demás aplicaciones, debe escribirse cuidadosamente para que se comporte correctamente en presencia de bloqueos (errores). No hay magia
fuente