none
Se puden perder datos? RRS feed

  • Pregunta

  • Tengo una duda, utilizo sql server 2008 en un windows server 2008.

    Cuando uno realiza un update , delete o insert desde por ejemplo una pagina asp, es posible posible que esos cambios se pierdan si se apago el servidor. Porque me ha pasado que han realizado cambios en tablas, los chequean sobre la tabla  a ver si estan dando que si, pero despues de no estan., si sucede esto como debo solucionarlo.

    Saludos DFasbian MArtucci

    domingo, 5 de mayo de 2013 21:17

Respuestas

  • Los datos que el servidor ha confirmado como grabados después de terminar una transacción, nunca se pueden perder. Sí se pueden perder (y de hecho se DEBEN perder) si se apaga el servidor antes de haber hecho el COMMIT de la transacción.

    Ejemplo: Tu programa inicia una transacción, inserta datos sobre una tabla, lees la tabla y ves que los datos están, y a continuación, antes de hacer el commit, se apaga el servidor (o simplemente se cierra la conexión a base de datos). En este caso, todos los datos que grabaste en la tabla desde dentro de la transacción se pierden.

    Si no estás iniciando explícitamente las transacciones, en este caso el servidor SQL de manera predeterminada realiza una transacción por cada sentencia. Por ejemplo, si haces un UPDATE que actualiza 5 registros, los 5 registros se actualizan dentro de una única transacción y al acabar el UPDATE se hace autmáticamente el COMMIT. Si termina el UPDATE y la ejecución vuelve a tu programa sin errores, entonces esos datos se garantiza que quedan grabados dentro de la base de datos. Incuso aunque se apagase el servidor en ese momento, al volver a arrancar se recuperarían automáticamente desde el registro de transacciones. Por lo tanto, en un caso como este nunca pueden perderse.

    lunes, 6 de mayo de 2013 5:55

Todas las respuestas

  • Los datos que el servidor ha confirmado como grabados después de terminar una transacción, nunca se pueden perder. Sí se pueden perder (y de hecho se DEBEN perder) si se apaga el servidor antes de haber hecho el COMMIT de la transacción.

    Ejemplo: Tu programa inicia una transacción, inserta datos sobre una tabla, lees la tabla y ves que los datos están, y a continuación, antes de hacer el commit, se apaga el servidor (o simplemente se cierra la conexión a base de datos). En este caso, todos los datos que grabaste en la tabla desde dentro de la transacción se pierden.

    Si no estás iniciando explícitamente las transacciones, en este caso el servidor SQL de manera predeterminada realiza una transacción por cada sentencia. Por ejemplo, si haces un UPDATE que actualiza 5 registros, los 5 registros se actualizan dentro de una única transacción y al acabar el UPDATE se hace autmáticamente el COMMIT. Si termina el UPDATE y la ejecución vuelve a tu programa sin errores, entonces esos datos se garantiza que quedan grabados dentro de la base de datos. Incuso aunque se apagase el servidor en ese momento, al volver a arrancar se recuperarían automáticamente desde el registro de transacciones. Por lo tanto, en un caso como este nunca pueden perderse.

    lunes, 6 de mayo de 2013 5:55
  • Te agradesco haberme ayudado, fuistes muy claro en tu respuestas, graciassssss.
    martes, 7 de mayo de 2013 13:12