버전 에서 5.1 버전 EDB Postgres 로 업그레이드 5.3
인스턴스 관리자는 버전 에서 5.1 버전 로 EDB Postgres 업그레이드할 5.3 수 있습니다.
- 누가 이 작업을 완료해야 합니까?
인스턴스 관리자 업그레이드하려면 인스턴스 EDB Postgres 관리자여야 합니다. 인스턴스 관리자는 다음 프로젝트의 소프트웨어를 관리할 권한이 있습니다:
- 인스턴스에 대한 운영자 프로젝트
이 인스턴스의 연산자는 EDB Postgres operators 프로젝트에 설치되어 있습니다. 업그레이드 명령어에서 환경
${PROJECT_CPD_INST_OPERATORS}변수 `$PATH`는 운영자의 프로젝트를 가리킵니다.- 인스턴스에 대한 피연산자 프로젝트
사용자 정의 리소스 와 control plane 는 operands EDB Postgres 프로젝트에 설치됩니다. 업그레이드 명령어에서 환경 변수 `
${PROJECT_CPD_INST_OPERANDS}$PATH`는 작업 대상 프로젝트를 가리킵니다.
- 이 작업을 언제까지 완료해야 합니까?
다음 옵션을 검토하여 이 작업을 완료해야 하는지 여부를 결정하십시오:
- 하나 이상의 서비스와 IBM Software Hubcontrol plane 함께 업그레이드하려면, 대신 IBMSoftware Hub 인스턴스 업그레이드 과정을 따르십시오.
- 업그레이드할 때 EDB PostgresIBM Software
Hubcontrol plane 업그레이드하지 않았다면, 이 작업을 완료하여 업그레이드하십시오 EDB Postgres.
필요에 따라 반복하십시오. 여러 인스턴스를 관리하는 IBM Software Hub 경우, 이 작업을 반복하여 클러스터 내의 더 많은 EDB Postgres 인스턴스를 업그레이드할 수 있습니다.
이 태스크를 완료하는 데 필요한 정보
업그레이드하기 전에 다음 EDB Postgres 정보를 검토하십시오 :
- 버전 요구사항
의 인스턴스와 연관된 모든 구성 IBM Software Hub 요소는 동일한 릴리스에서 설치되어야 합니다. 예를 들어, 가 버전 IBM Software Hubcontrol plane 인 5.3.1 경우, 를 버전 으로 EDB Postgres5.3.1 업그레이드해야 합니다.
- 환경 변수
- 이 작업의 명령어는 환경 변수를 사용하므로, 작성된 그대로 정확히 실행할 수 있습니다.
- 환경 변수를 정의하는 스크립트가 없는 경우, 설치 환경 변수 설정을 참조하십시오.
- 스크립트에서 환경 변수를 사용하려면, 이 작업의 명령어를 실행하기 전에 환경 변수를 소스 처리해야 합니다. 예를 들면, 다음을 실행하십시오.
source ./cpd_vars.sh
시작하기 전에
이 작업은 다음의 전제 조건이 충족된다는 것을 가정합니다:
- 시스템 요구사항
- 이 작업은 클러스터가 최소 요구 사항을 충족한다고 EDB Postgres 가정합니다.
자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우 시스템 요구 사항을 참조하십시오. 또한 GPU가 필요한 기능을 사용할 계획이라면, 해당 기능에 적합한 유형과 수의 GPU를 EDB Postgres 보유하고 있는지 확인하십시오.자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우 GPU 요구 사항을 참조하십시오. - 워크스테이션
- 이 작업은 업그레이드를 실행할 워크스테이션이 클라이언트 워크스테이션으로 설정되어 있으며 다음 명령줄 인터페이스를 갖추고 있다고 가정합니다:
- IBM Software
Hub CLI:
cpd-cli - OpenShift® CLI:
oc - Helm CLI:
oc
자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우, 클라이언트 워크스테이션 업데이트를 참조하십시오. - IBM Software
Hub CLI:
- 제어 플레인
- 이 작업은 가 IBM Software
Hubcontrol plane 업그레이드된 상태를 전제로 합니다.
자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우, 인스턴스 업그레이드하기를 IBMSoftware Hub 참조하십시오. - 개인용 컨테이너 레지스트리
- 사용 중인 환경이 사설 컨테이너 레지스트리를 사용하는 경우(예: 클러스터가 에어갭 상태인 경우), 이 작업은 다음 작업들이 완료되었음을 전제로 합니다:
- 소프트웨어 EDB Postgres 이미지는 사설 컨테이너 레지스트리에 미러링됩니다.
자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우, '이미지를 개인 컨테이너 레지스트리로 미러링하기'를 참조하십시오. - 해당 구성은 사설 컨테이너 레지스트리에서
cpd-cli이미지를olm-utils-v4가져오도록 설정되어 있습니다.자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우, 사설 컨테이너 레지스트리에서 이미지 olm-utils-v4 가져오기를 참조하십시오.
- 소프트웨어 EDB Postgres 이미지는 사설 컨테이너 레지스트리에 미러링됩니다.
- GPU 운영자
- GPU가 필요한 기능을 사용할 계획이라면, 이 작업은 GPU 사용에 필요한 운영자가 설치되어 있다고 가정합니다.
자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우, GPU가 필요한 서비스용 오퍼레이터 설치를 참조하십시오. - 클러스터 범위 리소스
- 이 작업은 사용자 정의 리소스 정의, 클러스터 역할, 클러스터 역할 바인딩과 같은 클러스터 범위 리소스가 업데이트되었음을 가정합니다.
자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우, 플랫폼 및 서비스에 대한 클러스터 범위 리소스 업데이트를 참조하십시오. - 이미지 풀 시크릿
- 이 작업은 인스턴스의 이미지 풀 자격 증명을 포함하는 시크릿이 존재한다고 가정합니다.
자세한 정보를 찾을 위치 이 작업이 완료되지 않은 경우, 인스턴스에 대한 이미지 풀 시크릿 IBMSoftware Hub 생성을 참조하십시오.
프로시저
업그레이드하려면 다음 EDB Postgres 작업을 완료하세요:
서비스 인스턴스를 최신 버전으로 업그레이드하기 위한 준비 PostgreSQL
업그레이드하기 전에 EDB Postgres, 서비스와 연결된 PostgreSQL 클러스터가 최신 버전의 서비스에서 제공되는 모든 새 기능을 PostgreSQL적용하도록 구성되었는지 확인하십시오.
- 서비스 인스턴스 EDB Postgres 목록을 가져옵니다:
oc get CPDEdbInstance \ --namespace=${PROJECT_CPD_INST_OPERANDS} - 클러스터 PostgreSQL 목록을 가져옵니다:
oc get clusters.postgresql.k8s.enterprisedb.io \ -n ${PROJECT_CPD_INST_OPERATORS} - 명령어가
oc get CPDEdbInstance반환한 각 서비스 인스턴스에 대해, 해당 PostgreSQL 클러스터를 식별하십시오.예를 들어, 다음과 같은 이름의 두 EDB Postgres 서비스 인스턴스가 있는 경우:na-salesap-sales
해당 PostgreSQL 클러스터들은 다음과 같이 명명될 것입니다:na-sales-edb-dbap-sales-edb-db
- 서비스 EDB Postgres 인스턴스와 연관된 각 PostgreSQL 클러스터에 대해:
- 서비스 인스턴스와 연관된 PostgreSQL 클러스터의 이름으로 환경
CLUSTER_NAME변수를 설정하십시오export CLUSTER_NAME=<cluster-name> - 매개변수
primaryUpdateMethod값을 확인하십시오:oc get clusters.postgresql.k8s.enterprisedb.io ${CLUSTER_NAME} \ -n ${PROJECT_CPD_INST_OPERATORS} \ -o json | jq -r '.spec.primaryUpdateMethod'- 값이 인 경우 다음
switchover단계로 진행하십시오. - 값이 인 경우
restart, 클러스터를 패치하여 를 로primaryUpdateMethod변경하십시오switchover:oc patch cluster.postgresql.k8s.enterprisedb.io ${CLUSTER_NAME} \ --namespace ${PROJECT_CPD_INST_OPERATORS} \ --type=merge \ --patch '{ "spec": {"primaryUpdateMethod": "switchover"}}'
- 값이 인 경우 다음
- 매개변수
enableSuperuserAccess값을 확인하십시오:oc get clusters.postgresql.k8s.enterprisedb.io ${CLUSTER_NAME} \ -n ${PROJECT_CPD_INST_OPERATORS} \ -o json | jq -r '.spec.enableSuperuserAccess'- 값이 인 경우 다음
true단계로 진행하십시오. - 값이 인 경우
false, 클러스터를 패치하여 를 로enableSuperuserAccess변경하십시오true:oc patch cluster.postgresql.k8s.enterprisedb.io <cluster-name> \ --namespace ${PROJECT_CPD_INST_OPERATORS} \ --type=merge \ --patch '{ "spec": {"enableSuperuserAccess": true}}'
- 값이 인 경우 다음
- 매개변수
logLevel값을 확인하십시오:oc get clusters.postgresql.k8s.enterprisedb.io ${CLUSTER_NAME} \ -n ${PROJECT_CPD_INST_OPERATORS} \ -o json | jq -r '.spec.logLevel'- 값이 인 경우 서비스
info업그레이드로 진행하십시오. - 값이 가 아닌 경우
info, 클러스터를 패치하여 를 로logLevel변경하십시오info:oc patch cluster.postgresql.k8s.enterprisedb.io <cluster-name> \ --namespace ${PROJECT_CPD_INST_OPERATORS} \ --type=merge \ --patch '{ "spec": {"logLeve": "info"}}'
- 값이 인 경우 서비스
- 서비스 인스턴스와 연관된 PostgreSQL 클러스터의 이름으로 환경
서비스 업그레이드
업그레이드하려면 EDB Postgres :
- 클러스터에 Red Hat® OpenShift Container Platform
cpd-cli로그인하십시오:${CPDM_OC_LOGIN}기억하세요:CPDM_OC_LOGIN는cpd-cli manage login-to-ocp명령어의 별칭입니다. - . EDB Postgres 에 대한 운영자 및 사용자 정의 리소스를 업데이트하십시오.
cpd-cli manage install-components \ --license_acceptance=true \ --components=edb_cp4d \ --release=${VERSION} \ --operator_ns=${PROJECT_CPD_INST_OPERATORS} \ --instance_ns=${PROJECT_CPD_INST_OPERANDS} \ --image_pull_prefix=${IMAGE_PULL_PREFIX} \ --image_pull_secret=${IMAGE_PULL_SECRET} \ --upgrade=true
업그레이드 검증
install-components 명령이 반환될 때 업그레이드됩니다:[SUCCESS]... The install-components command ran successfully
사용자 지정 리소스 상태가 인지 확인하려면 다음 cpd-cli
manage
get-cr-statusCompleted 명령을 실행할 수 있습니다:
cpd-cli manage get-cr-status \
--cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS} \
--components=edb_cp4d
기존 서비스 인스턴스 업그레이드
업그레이드 후에는 관련 서비스 인스턴스를 EDB Postgres EDB Postgres 반드시 업그레이드해야 합니다.
서비스 인스턴스를 업그레이드하려면:
- 인스턴스 관리자로 Red Hat OpenShift Container Platform 로그인하십시오.
${OC_LOGIN}기억하세요:OC_LOGIN는oc login명령어의 별칭입니다. - 서비스 인스턴스 EDB Postgres 목록을 가져옵니다:
oc get CPDEdbInstance \ --namespace=${PROJECT_CPD_INST_OPERANDS} - 업그레이드하려는 서비스 인스턴스의 이름으로 환경
INSTANCE_NAME변수를 설정하십시오:export INSTANCE_NAME=<instance-name> - 클러스터의 Cloud Pak for Data 버전과 일치하는 버전으로 환경
INSTANCE_VERSION변수를 설정하십시오:export INSTANCE_VERSION=<version>다음 표를 사용하여 적절한 값을 결정하십시오:
IBM Software Hub버전 추가 기능 버전 서비스 인스턴스 버전 (하나 선택)5.3.1 5.3.1 13.23, 14.20, 15.15, 16.11, 17.7, 18.1 5.3.0 5.3.0 13.22, 14.19, 15.14, 16.10, 17.6 참고: 메이저 버전 EDB Postgres 업그레이드를 직접 지원하지 않습니다. 그들은.NET PostgreSQL 프레임워크에 대해 롤링 업데이트 또는 소규모 릴리스 업그레이드만 지원합니다. 자세한 내용은 EDB PostgreSQL Rolling Updates 를 참조하십시오.사용자는 EDB PostgreSQL 데이터베이스 가져오기에서 설명된 대로 주요 버전 업그레이드 시 병렬 업그레이드를 수행해야 합니다.
메이저 버전 업그레이드가 필요한 경우 최신 버전으로 업그레이드하십시오.
- 서비스 인스턴스 사용자 지정 리소스에서 버전을 업데이트하십시오:
oc patch CPDEdbInstance ${INSTANCE_NAME} \ --namespace=${PROJECT_CPD_INST_OPERANDS} \ --type=merge \ --patch='{"spec": {"version": "${INSTANCE_VERSION}"}}'참고: 버전부터 서비스 인스턴스 사용자 지정 리소스에서 5.2.x 버전을 업데이트하기 위해 다음 명령어도 지원됩니다:
다음은 파일의 parameters.yaml 샘플입니다:./cpd-cli service-instance upgrade \ --instance-name=${INSTANCE_NAME} \ --service-type=edb \ --profile=${CPD_PROFILE_NAME} \ --version=5.2.0 \ --merge-override=true \ --override=parameters.yamlparameters: version: '${INSTANCE_VERSION}' - operands 프로젝트의 각 서비스 인스턴스를 업그레이드하려면 앞서 설명한 단계를 반복하십시오.
다음에 수행할 작업
기존 EDB Postgres 데이터베이스 인스턴스는 사용 준비가 완료되었습니다. EDB Postgres 서비스에 대한 설치 후 설정을 완료해야 EDB Postgres 에 액세스할 수 있습니다.