2014-04-29 4 views
0

J'explore l'utilisation d'Oracle EBR dans la mise à jour à chaud de notre base de données d'applications. J'ai cherché dans Google concernant EBR. Ce que je comprends est que EBR permettra à l'utilisateur d'avoir plusieurs versions du même objet DB comme la procédure PL/SQL, etc. L'utilisateur pourra accéder à une nouvelle version quand il est activé pour cet utilisateur particulier et la transition sera transparente pour l'utilisateur existant les sessions existantes ne seront pas affectées. Mais je ne suis pas capable de comprendre comment cela n'affectera pas les sessions existantes. Par exemple, si l'utilisateur "X" est au milieu d'une transaction qui utilise une session DB et qu'une nouvelle version EBR est activée pour cet utilisateur, cela n'affectera-t-il pas la session DB actuelle? ou la session DB actuelle ne verra-t-elle pas l'EBR existante et seules les nouvelles sessions verront la nouvelle version. S'il te plaît, donnes-moi ton opinion.Requête de redifinition basée sur l'édition

Répondre

0

Une édition est activée au niveau de la session et non au niveau de l'utilisateur. Si l'utilisateur X a une douzaine de sessions, chacune de ces sessions pourrait utiliser une édition différente.

Il ne serait pas logique d'essayer de modifier l'édition que la session utilise au milieu d'une transaction. Je ne peux pas imaginer pourquoi vous voudriez essayer. Et je parierais que ça ne marcherait pas.

Si vous utilisez la redéfinition basée sur l'édition, vous pouvez activer la nouvelle édition de manière réaliste pour les nouvelles sessions ou entre les transactions d'une session particulière. Généralement, vous effectuez une mise à niveau progressive où chaque serveur d'applications est redémarré et le pool de connexions défini pour utiliser la nouvelle édition alors que les pools de connexions sur les autres serveurs conservent l'ancienne édition.

+0

Merci pour votre commentaire. Si le serveur doit être redémarré pour que le pool de connexions utilise la nouvelle édition, cela ne va-t-il pas à l'encontre du but de EBR qui prétend fournir des correctifs "en ligne". Aussi DBA qui permettra une édition ne saura pas si un utilisateur est au milieu d'une transaction ou non. – user2032118

+1

@ user2032118 - Si vous êtes sur le point d'utiliser EBR, vous aurez généralement un grand nombre de serveurs d'applications. En sortir un dans le pool, modifier le pool de connexions pour utiliser la nouvelle édition, puis le remettre dans le pool ne devrait pas affecter la disponibilité de l'application. Ce n'est pas la seule façon de déployer une nouvelle édition, juste un choix commun. L'administrateur de base de données peut créer autant d'éditions qu'il le souhaite pendant les transactions. Encore une fois, c'est à chaque session de déterminer quelle édition utiliser et de changer au moment approprié. –

Questions connexes