Share via


확장 가능 공유 데이터베이스의 롤링 업데이트 수행

대체 보고 볼륨 세트를 사용하여 확장 가능 공유 데이터베이스 구성을 업데이트하는 경우 롤링 업데이트나 동기화된 업데이트를 통해 데이터베이스를 업데이트할 수 있습니다. 업그레이드를 실행하는 동안 클라이언트가 임시로 다른 서버 인스턴스에서 다른 결과를 가져올 수 있도록 허용할 수 있다면 롤링 업데이트가 적합합니다.

롤링 업데이트는 한 번에 하나의 보고 서버에 대해 업데이트를 수행합니다. 첫 번째 업그레이드와 마지막 업그레이드가 수행되는 시간 사이에는 데이터베이스의 이전 버전과 새 버전을 각각 하나 이상의 서버 인스턴스에 있는 클라이언트가 사용할 수 있게 됩니다. 일반적으로 롤링 업그레이드는 두 가지 버전이 중복되는 기간을 최소화하기 위해 가능한 한 빨리 수행됩니다.

다음 그림에서는 롤링 업데이트를 보여 줍니다.

확장 가능한 공유 데이터베이스의 롤링 업그레이드

  1. 모든 서버에 볼륨 A가 마운트되고 보고 데이터베이스가 서버 인스턴스에 연결된 상태로, 볼륨 B에서 보고 데이터베이스가 다시 작성됩니다.

  2. 볼륨 A의 데이터베이스를 첫 번째 보고 서버의 서버 인스턴스에서 분리하고 볼륨 A를 분리합니다. 즉시 볼륨 B를 첫 번째 보고 서버에 마운트하고 새로 고친 보고 데이터베이스를 서버 인스턴스에 연결합니다.

  3. 볼륨 A의 데이터베이스를 두 번째 보고 서버의 서버 인스턴스에서 분리하고 볼륨 A를 분리합니다. 즉시 볼륨 B를 두 번째 보고 서버에 마운트하고 새로 고친 보고 데이터베이스를 서버 인스턴스에 연결합니다.

  4. 볼륨 A의 데이터베이스를 세 번째 보고 서버의 서버 인스턴스에서 분리하고 볼륨 A를 분리합니다. 즉시 볼륨 B를 세 번째 보고 서버에 마운트하고 새로 고친 보고 데이터베이스를 서버 인스턴스에 연결합니다.

  5. 볼륨 B가 마운트되고 모든 보고 서버에서 새로 고친 데이터베이스를 확장 가능 공유 데이터베이스로 사용할 수 있는 상태로, 볼륨 A에서 보고 데이터베이스를 작성합니다.

비즈니스 요구 사항에 따라 롤링 업데이트는 현재 쿼리가 완료될 수 있도록 비교적 개방형으로 구성되거나 제한된 시간 내에서 수행될 수 있습니다.

개방형 롤링 업데이트

이 전략에서는 롤링 업데이트를 통해 데이터베이스 관리자가 하나의 보고 서버에서 장기 실행 쿼리가 완료될 때까지 기다리는 동안 다른 보고 서버에서 데이터베이스를 새로 고칠 수 있습니다. 이 전략은 다음 비즈니스 요구 사항을 다룹니다.

  • 보고 서버를 동기화할 필요가 없는 경우. 즉, 데이터베이스의 이전 버전과 새 버전이 임시로 서로 다른 보고 서버에 동시에 존재할 수 있습니다.

  • 업데이트 완료 시간에 제한이 없거나 현재 실행 중인 쿼리를 유지하는 것이 최종 기한보다 더 중요한 경우

이 형식의 롤링 업데이트를 수행하려면 각 보고 서버에서 다음을 수행합니다.

  1. 새 데이터베이스가 포함된 대체 볼륨 세트를 보고 서버에 마운트하여 새 데이터베이스의 연결 단계를 시작합니다.

    [!참고]

    롤링 업데이트의 경우 임의의 보고 서버에서 다음 단계로 넘어가기 전에 모든 보고 서버에서 이 단계를 수행할 수 있습니다.

  2. 원래 보고 볼륨에 대한 I/O 작업을 중지하여 진행 중인 모든 쿼리를 유지합니다. 장기 실행 쿼리로 인해 지정된 서버 인스턴스에서 업데이트가 지연되면 해당 쿼리가 완료될 때까지 기다립니다. 이 서버 인스턴스에서 모든 쿼리가 완료되면 해당 서버에서 분리 단계를 완료합니다.

  3. 새 보고 데이터베이스를 서버 인스턴스에 연결하여 보고 쿼리에 대한 확장 가능 공유 데이터베이스로 사용할 수 있게 합니다.

각 보고 서버에서 이러한 단계를 반복합니다.

보고 서버의 롤링 업데이트(빨리 완료됨)

이 전략에서는 롤링 업데이트를 통해 데이터베이스 관리자가 다른 보고 서버에서 데이터베이스가 업데이트되는 동안 일부 보고 서버의 새 쿼리에서 잠시 동안 이전 버전의 데이터베이스를 계속 사용할 수 있게 하여 보고 서비스가 중단되지 않도록 유지할 수 있습니다. 이 전략은 다음 비즈니스 요구 사항을 다룹니다.

  • 보고 서버를 동기화할 필요가 없는 경우. 즉, 데이터베이스의 이전 버전과 새 버전이 임시로 서로 다른 보고 서버에 동시에 존재할 수 있습니다.

  • 현재 실행 중인 쿼리를 유지하는 것보다 중요한 최종 기한을 맞추기 위해 가능한 한 빨리 업데이트를 완료해야 하는 경우

시간적 제한을 받는 롤링 업데이트를 수행하려면 한 번에 하나의 보고 서버에서 다음을 수행합니다.

  1. 새 데이터베이스가 포함된 대체 볼륨 세트를 보고 서버에 마운트하여 새 데이터베이스의 연결 단계를 시작합니다.

    [!참고]

    롤링 업데이트의 경우 임의의 보고 서버에서 다음 단계로 넘어가기 전에 모든 보고 서버에서 이 단계를 수행할 수 있습니다.

  2. 보고 데이터베이스를 분리하기 전에 보고 볼륨에서 I/O 작업을 중지하고 필요에 따라 서버 인스턴스에서 짧은 쿼리가 완료될 때까지 기다립니다.

  3. 해당 서버에서 분리 단계를 완료합니다.

  4. 새 보고 데이터베이스를 연결하여 보고 용도의 확장 가능 공유 데이터베이스로 사용할 수 있게 합니다. 데이터베이스의 새 복사본에 대한 쿼리 결과는 보고 데이터베이스의 나머지 이전 복사본에 대한 쿼리 결과와 다를 수 있습니다.

이러한 롤링 업데이트는 전체 보고 기능이 결코 중단되지 않도록 하므로 일부 서버 인스턴스에 비교적 장기 실행 트랜잭션이 있어도 별다른 문제가 발생하지 않습니다. 그러나 제한된 시간 내에 모든 보고 데이터베이스를 업데이트해야 하는 경우 장기 실행 쿼리로 인해 서버 인스턴스에서 업데이트가 상당히 지연되면 해당 쿼리를 종료해야 합니다. 보고 데이터베이스를 새로 고친 후 동일한 서버 인스턴스에서 쿼리를 다시 실행하거나 이미 업데이트된 서버에서 더 빨리 쿼리를 다시 시작할 수 있습니다.