Quel est le terme correct pour décrire une « transaction persistante »?

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

  •  16-10-2019
  •  | 
  •  

Question

Je suis une sorte de l'administrateur d'un SGBDOO zéro administration, mais surtout je programmation.

Je me souviens avoir lu il y a quelques années sur certaines base de données SQL qui avait un concept de quelque chose comme une opération permanente. Il aurait pu être Sybase. Quoi qu'il en soit, ce que « chose » était, était comme une transaction que vous commencez, et qui persistent entre les connexions, et que vous pouvez acceptés dans les transactions « normales exécuter ». Il vous a donné essentiellement une « vue » de cette base de données qui pourraient diverger de la base de données principale, mais en cours d'exécution sur le même serveur, et donc le partage de la plupart des ressources au lieu d'avoir à avoir du serveur « propre ». J'espère que vous comprenez ce que je veux dire maintenant.

Quoi qu'il en soit, ce qui est ce genre de chose appelée, et est-il toujours disponible dans les bases de données modernes. En particulier, est-il de la fantaisie distribué des bases de données NoSQL qui peut le faire?

La raison pour laquelle je demande, parce que je pourrais utiliser quelque chose comme ça pour lancer la mise en scène de la prochaine version de mon logiciel sur la base de données principale, me sauver la nécessité d'avoir un système de mise en scène qui est aussi puissant que le principal et la peine / bande passante de synchroniser les modifications de la principale à l'épreuve. Je voudrais juste commencer la « transaction permanente », tester le nouveau logiciel pour quelques jours, laissant peut-être certains utilisateurs d'obtenir un aperçu, et jeter les changements quand je suis fait. Ensuite, je fais le déploiement réel, et commencer une nouvelle « opération permanente » pour la prochaine version ...

NB: Je ne pouvais pas mettre des étiquettes significatives parce qu'il est mon premier post et je n'ai pas le droit d'inventer des tags, et il n'y avait rien comme « persistant », ou « permanent » ou même « longue marche » .. .

Était-ce utile?

La solution

Je sais tri de ce que vous voulez dire, nous le faisons sur le stockage en utilisant copy-on-write, pour le seul espace qu'il occupe en fait est que des changements que vous faites.

Cependant, le clone est pas un flux de changements, comme un journal redo. La façon dont fonctionne NetApp est que chaque bloc vous voyez au niveau du système de fichiers est vraiment un pointeur juste un bloc sur le stockage « réel ». Création d'un FlexClone est simplement une question de copier la liste des pointeurs, il est donc une opération très légère. Lorsque vous modifiez un bloc sur un FlexClone le pointeur est déplacé vers un nouveau bloc, et l'original est copié, puis il procède normalement. Cela a deux conséquences intéressantes:

  1. Une fois que vous avez changé un bloc une fois, vous pouvez continuer à changer autant de fois que vous le souhaitez - il occupera pas de stockage plus
  2. Une fois que la vache initiale est effectuée, la vitesse d'accès au FlexClone est identique à celle d'un volume réel.

Nous typiquement mis le primaire en le mode HOTBackup (pour Oracle , mais comme il est sur le stockage cela fonctionnera avec une base de données qui a un mode équivalent), FlexClone le stockage, monter le clone avec NFS sur le (beaucoup plus petit) serveur de test, puis créez un nouveau controlfile, récupérer la base de données de redo archivés journaux au besoin et l'ouvrir avec resetlogs. Nous permettons à une « réserve snap » de 10% par défaut (par exemple, vous pouvez changer jusqu'à 10% du clone) mais cela est entièrement configurable - vous pouvez le faire à 100% et faire un « split », qui crée aussi une copie indépendante. Cette technologie (avec quelques scripts shell intelligent) a permis de créer des environnements de test vers le bas de 3+ jours à quelques minutes à mon site, je suis un grand fan.

Autres conseils

Je pense que vous êtes à la recherche d'un Disconnected Dataset. Il ne complique la gestion des transactions que vous ne pouvez pas maintenir les verrous de base de données.

pilotes JDBC permettent un jeu de données à être déconnecté de la base de données.

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top