Por qué razones y en qué situaciones usaría la función "Desconectar" / ALTER DATABASE dbName SET OFFLINE
.
¿Qué tareas puede realizar con una base de datos sin conexión? ¿Qué tareas solo puede realizar con una base de datos sin conexión?
sql-server
Greg B
fuente
fuente
En entornos de desarrollo / preparación, a veces es útil desconectar una base de datos para asegurarse de que se está conectando a la instancia correcta de la base de datos en la aplicación y que no tiene una cadena de conexión en alguna parte.
Dicho esto, en esta situación es una idea mucho mejor tener diferentes nombres de bases de datos para los diferentes entornos y un proceso de construcción que configurará automáticamente sus cadenas de conexión ...
Del mismo modo, me gusta desconectar las bases de datos durante un período de tiempo antes de desmantelarlas en la (no tan) posibilidad de que, por alguna razón, necesiten volver a conectarse. Me han mordido varias veces los desarrolladores que tienen ganchos que no conozco en una de mis bases de datos cuando quiero deshacerme de él. Ponerlo fuera de línea mucho menos drástico y menos lento que eliminarlo y restaurarlo si es necesario.
Otra cosa sería como salvaguarda de emergencia. He tenido que hacer esto antes. A veces se encuentra un error desagradable en su aplicación que, aunque no es malicioso, aún corromperá los datos en su base de datos. Desconectar la base de datos es una forma rápida de detener el sangrado hasta que se identifique el error. Luego puede volver a ponerlo en línea para evaluar el daño dentro de la base de datos.
fuente
Si bien algunas de las respuestas aquí pueden darle algunas ideas sobre lo que puede hacer con una base de datos que tiene acceso restringido, en realidad no se puede hacer mucho con una base de datos que está fuera de línea. No puede actualizar, actualizar, agregar o eliminar datos, etc.
fuente
Mi razón principal, la que tengo que vender a los DBA con más frecuencia de la que me gustaría enumerar ...
"La SAN necesita reparación ... y no, no puedo simplemente intercambiar en caliente una unidad, los backplane / controladores tienen la culpa".
Las instancias de DB se comportan muy mal cuando sus discos desaparecen.
Por lo tanto, apagué las instancias de SQL antes de desconectar la SAN y luego las recuperé de una en una para que no cuestionen los recursos: la primera instancia toma todos los recursos del clúster y se convierte en el nodo Active DB, se ejecutan las instancias posteriores como nodos pasivos.
fuente
Hay muchas razones por las cuales necesitarías hacer esto ...
Para un ejemplo,
El punto más importante ...
(en algunos DB simplemente crea un bloqueo en todas las tablas)
fuente