2014-04-29 5 views
0

애플리케이션 데이터베이스의 핫 패칭을 위해 Oracle EBR을 사용하려고합니다. EBR에 관해 Google에서 검색했습니다. 내가 이해할 수있는 점은 EBR은 PL/SQL 절차 등과 같은 동일한 DB 객체의 많은 버전을 사용자가 가질 수 있다는 것입니다. 사용자가 특정 사용자에 대해 새 버전에 액세스 할 수 있고 기존 사용자에게는 전환이 원활해질 것입니다. 기존 세션은 영향을받지 않습니다. 그러나 기존 세션에 어떤 영향을주지 않을지 이해할 수 없습니다. 예를 들어 사용자 "X"가 DB 세션을 사용하는 트랜잭션 중간에 있고 새 EBR 버전이 해당 사용자에 대해 활성화되어 있으면 현재 DB 세션에 영향을 미치지 않습니까? 현재 DB 세션은 기존 EBR을 볼 수 없으며 새 세션 만 새 버전을 보게됩니다. 제게 당신의 의견을 알려주세요.에디션 기반 재 작성 쿼리

답변

0

에디션은 사용자 수준이 아닌 세션 수준에서 사용할 수 있습니다. 사용자 X에 12 개의 세션이있는 경우 각 세션은 다른 버전을 사용할 수 있습니다.

세션이 트랜잭션 중간에서 사용하는 버전을 변경하려고 시도하는 것이 실제로 의미가 없습니다. 왜 당신이 시도하고 싶어하는지 상상할 수 없습니다. 그리고 나는 그것이 작동하지 않을 것을 무겁게 내기 할 것입니다.

에디션 기반 재정의를 사용하는 경우 새 세션 또는 특정 세션의 트랜잭션간에 새 버전을 실제로 활성화 할 수 있습니다. 일반적으로 이전 버전을 사용하여 다른 서버의 연결 풀이 유지되는 동안 각 응용 프로그램 서버가 재부팅되고 연결 풀이 새 버전을 사용하도록 설정된 롤링 업그레이드를 수행합니다.

+0

의견을 보내 주셔서 감사합니다. 연결 풀이 새 버전을 사용하기 위해 서버를 재부팅해야하는 경우 "온라인"패치를 제공한다고 주장하는 EBR의 목적을 무효화하지는 않습니다. 또한 에디션을 사용할 DBA는 어떤 사용자가 트랜잭션 중에 있는지 여부를 알 수 없습니다. – user2032118

+1

@ user2032118 - EBR을 사용할 시점에 일반적으로 많은 수의 응용 프로그램 서버가 있습니다. 풀에서 하나를 가져 와서 연결 풀을 변경하여 새 버전을 사용한 다음 다시 풀에 넣으면 응용 프로그램의 가동 시간에 영향을 미치지 않습니다. 새로운 버전을 배포하는 유일한 방법은 아니며 하나의 공통된 선택입니다. DBA는 거래가 진행되는 동안 원하는만큼의 버전을 만들 수 있습니다. 다시 말하지만, 각 세션에 따라 적절한 버전에서 사용할 에디션을 결정해야합니다. –