J'ai une grande base de données (dans les dizaines de millions d'enregistrements) sur laquelle je vais effectuer une sauvegarde complète de la base de données .
Cependant, la base de données est suffisamment volumineuse pour que les transactions puissent démarrer avant et pendant, ainsi que la validation pendant et après la sauvegarde.
Par exemple:
T0 = Transaction A start
T1 = Full database backup start
T2 = Transaction B start (will not deadlock with A)
T3 = Transaction A commit/rollback (does not matter, does it?)
T4 = Full database backup end
T5 = Transaction B commit/rollback (again, does not matter, does it?)
T0 T1 T2 T3 T4 T6
||----------||----------||----------||----------||----------||---------->
Ma compréhension est qu'aucun verrou n'est utilisé pendant une sauvegarde (bien que d'autres problèmes de performances puissent survenir en raison, par exemple, d'E / S élevées) , mais je ne suis pas sûr de ce que je peux garantir ce qui sera validé ou non.
De plus, je ne crains pas que la base de données soit dans un état incohérent, mais plutôt ce que cet état sera (même s'il n'est pas déterministe, s'il existe un ensemble de règles qui peuvent être appliquées de manière cohérente) et comment il y est arrivé ( par exemple, quelle proportion du fichier de données est utilisée avec le journal des transactions pour créer un fichier de sauvegarde)?