¿Cuál es el término correcto para describir una “transacción persistente”?

dba.stackexchange https://dba.stackexchange.com/questions/2313

  •  16-10-2019
  •  | 
  •  

Pregunta

Soy una especie de un administrador de un SGBDOO cero administración, pero sobre todo yo programación.

Recuerdo haber leído hace años sobre alguna base de datos SQL que tenía un concepto de algo así como una transacción permanente. Podría haber sido Sybase. De todos modos, lo que era "cosa", era como una transacción que se inicia, y que persisten entre las conexiones, y EL PLAZO que puede ejecutar transacciones "normales". Básicamente se le dio una "vista" de esa base de datos que podrían divergir de la base de datos principal, pero se ejecuta en el mismo servidor, y por lo tanto comparten la mayor parte del recurso en lugar de tener que tenerlo de servidor "propia". Espero que entiendan lo que quiero decir ahora.

De todos modos, lo que es ese tipo de cosa que se llama, y ??es todavía disponible en las bases de datos modernas. En particular, ¿hay alguna de la fantasía distribuido bases de datos NoSQL que puede hacer eso?

La razón por la que estoy pidiendo, se debe a que podría utilizar algo por el estilo para ejecutar la puesta en escena de la próxima versión de mi software en la base de datos principal, salvándome la necesidad de tener un sistema de puesta en escena que es tan poderoso como el principal , y el problema / ancho de banda de la sincronización de los cambios de la principal a la prueba. Me acaba de iniciar la "transacción permanente", probar el nuevo software para unos pocos días, posiblemente dejando que algunos usuarios obtener una vista previa, y tirar los cambios cuando haya terminado. Entonces hago el despliegue real, y comenzar una nueva "transacción permanente" para la próxima versión ...

Nota: no podía poner etiquetas significativas porque es mi primer post y no tengo el derecho de inventar etiquetas, y no había nada como "persistente", o "permanente" o incluso "larga duración" .. .

¿Fue útil?

Solución

Yo sé clase-de lo que quieres decir, lo hacemos en el almacenamiento usando NetApp FlexClones . Un FlexClone® "ve" al igual que una copia de un sistema de archivos, pero los bloques subyacentes en los discos son copy-on-write, lo que el único espacio que ocupa en realidad es el de los cambios realizados.

Sin embargo, el clon es no una corriente de cambios, como un registro de rehacer. La forma en que funciona NetApp es que cada bloque se ve en el nivel de sistema de archivos es realmente un puntero sólo para un bloque en el almacenamiento "real". La creación de un FlexClone es meramente una cuestión de copiar la lista de punteros, por lo que es una operación muy ligero. Cuando se cambia un bloque en un FlexClone se mueve el puntero a un bloque fresco, y el original se copia, a continuación, se procede de forma normal. Esto tiene dos implicaciones interesantes:

  1. Una vez que haya cambiado un bloque de una vez, se puede ir en cambiar tantas veces como te gusta - que ocupará no más de almacenamiento
  2. Una vez que se hace la vaca inicial, la velocidad de acceso a la FlexClone es idéntica a la de un volumen real.

normalmente pondría a la primaria en hotbackup modo (para Oracle , pero ya que está en el almacenamiento que esto funcionará con cualquier base de datos que tiene un modo equivalente), FlexClone el almacenamiento, montar el clon con NFS en el servidor de prueba (mucho más pequeña), a continuación, crear un nuevo archivo de control, recuperar la base de datos de rehacer archivados registros que sean necesarios y se abre con resetlogs. Nos permitimos una "reserva chasquido" del 10% por defecto (es decir, se puede cambiar hasta un 10% del clon) pero esto es totalmente configurable - puede que sea 100% y hacer un "split", que crea una copia independiente también. Esta tecnología (con algunas secuencias de comandos shell inteligente) ha llevado a la creación de entornos de prueba por debajo de + 3 días a una cuestión de minutos a mi sitio, yo soy un gran fan.

Otros consejos

creo que busca un conjunto de datos desconectado. Lo hace de gestión de transacciones complicar ya que no puede mantener los bloqueos de base de datos.

conductores

JDBC permiten que un conjunto de datos para desconectarse de la base de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top