백업 및 복원을 Db2 Warehouse 별도로 수행하는 방법 IBM Software HubOADP 유틸리티를 사용하여
클러스터와 별도로 Db2 Warehouse 인스턴스의 IBM Software Hub 오프라인 백업을 생성할 수 있으며, (OADP) 백업 및 복원 IBM Software HubOpenShift® API for Data Protection 유틸리티를 사용하여 동일한 클러스터로 복원할 수 있습니다.
백업 크기가 매우 Db2 Warehouse 클 경우, 또는 보다 더 자주 Db2 WarehouseIBM Software Hub 백업하려는 경우 IBM Software Hub , Db2 Warehouse 인스턴스를 별도로 백업하고 복원하십시오.
백업 및 복원을 별도로 Db2 Warehouse 수행하는 IBM Software Hub 데에는 다음과 같은 작업이 포함됩니다:
- 백업을 준비하십시오 IBM Software Hub Db2 Warehouse.
- 백업 IBM Software Hub, 제외 Db2 Warehouse.
- 뒤로 가기 Db2 Warehouse.
- 복원 IBM Software Hub 및 Db2 Warehouse.
이 작업의 명령어를 실행하기 전에 환경 변수를 반드시 설정하십시오.
백업 준비
백업을 준비하기 위해 노드, 포드 및 사용자 정의 리소스의 상태를 확인하십시오. 그런 다음 ` StatefulSets `에서 PVC, PV, 스냅샷 및 포드 템플릿에 레이블을 지정하여 IBM Software Hub 백업에서 Db2 Warehouse 제외할 준비를 하십시오.
- 클러스터 관리자로 Red Hat® OpenShift Container Platform에 로그인하십시오.
${OC_LOGIN}기억하세요:OC_LOGIN는oc login명령어의 별칭입니다. - 모든 노드가 상태에
Ready있는지 확인하십시오:oc get nodes - 모든 Db2 Warehouse 포드가 다음에서 실행 중인지
1/1확인하십시오:oc get pod | grep c-db2wh - 서비스 Db2 Warehouse 상태를 확인하십시오.
- 인스턴스를 db2ucluster 식별하십시오:
oc get db2ucluster | grep db2whID를 db2ucluster 기록해 두십시오. 이후 단계 중 일부에서 사용됩니다.
- 컨테이너에 원격 셸을 엽니다.
oc rsh c-db2wh-<xxxxxxxxxxxxx>-db2u-0 - 데이터베이스 인스턴스 소유자로 전환
db2inst1:su - db2inst1 - 모든 파티션이 실행 중인지 확인하십시오:
rah 'ps -fea' 2>&1 | grep db2sysc | grep -v grep - 데이터베이스에 연결하십시오.
db2 connect to mydb - 테이블에서 선택할 수 있는지 간단한 쿼리를 실행하여 확인하세요:
db2 select name from sysibm.systables
- 인스턴스를 db2ucluster 식별하십시오:
- 사용자 지정 리소스의 상태가 또는
Completed인지Ready확인하십시오.- 사용자 정의 IBM Software
Hubcontrol plane 리소스의 상태가 state인지
Completed확인하십시오:oc describe ZenService lite-cr | grep "Zen Status" - 사용자 db2ucluster 지정 리소스의
STATE상태가 상태인지Ready확인하십시오:oc get db2ucluster참고: 사용자 정의 리소스 중 하나라도 상태에InMaintenance있고 가 db2ucluster 정상 작동 중이라면(예: 데이터베이스에 연결할 수 있고 쓰기 중지 모드가 아닌 경우), yaml 파일에서 다음 줄을 삭제하십시오:db2u.databases.ibm.com/maintenance-pause-reconcile: 'true' - 프로젝트 IBM Software
Hub 내 사용자 정의 리소스의 상태가 다음과 같은지 확인하십시오
Completed:cpd-cli manage get-cr-status \ --cpd_instance_ns=${PROJECT_CPD_INST_OPERANDS}
- 사용자 정의 IBM Software
Hubcontrol plane 리소스의 상태가 state인지
- PVC, PV 및 Db2 Warehouse 스냅샷에 레이블을 지정하여 IBM Software
Hub 백업에서 제외하십시오.
- 라벨 PVC:
oc label pvc `oc get pvc --show-labels | grep db2wh | awk '{print $1}'` velero.io/exclude-from-backup=true - 라벨 PV:
oc label pv `oc get pv --show-labels | grep db2wh | awk '{print $1}'` velero.io/exclude-from-backup=true - 라벨 스냅샷:
oc label volumesnapshots `oc get volumesnapshots --show-labels | grep db2wh | awk '{print $1}'` velero.io/exclude-from-backup=true
- 라벨 PVC:
- StatefulSets 에서 라벨 포드 템플릿 지정
- StatefulSets: 식별
oc get sts -l app=${DB2UCLUSTER} - 원본 복제품을 참고하여 축소하십시오 db2ucluster:
oc scale sts c-${DB2UCLUSTER}-db2u --replicas=0 - 포드 상태를 검토하십시오:
watch "oc get pod |grep c-db2wh-<xxxxxxxxxxx>" - 원본 복제품을 참고하여 축소하십시오 etcd:
oc scale sts c-${DB2UCLUSTER}-etcd --replicas=0 - 포드 상태를 검토하십시오:
watch "oc get pod |grep c-db2wh-<xxxxxxxxxxx>" - 원본 복제품을 참고하여 축소하십시오 tools:
oc scale deploy c-${DB2UCLUSTER}-tools --replicas=0 - 포드 상태를 검토하십시오:
watch "oc get pod |grep c-db2wh-<xxxxxxxxxxx>" - StatefulSets 와 Deployments에서 Pod Templates를 축소할 Db2 Warehouse 때 라벨을 지정하십시오:
oc patch StatefulSet c-db2wh-xxxxxxxxxxxxx-db2u --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}' oc patch StatefulSet c-db2wh-xxxxxxxxxxxxx-etcd --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}' oc patch deploy c-db2wh-xxxxxxxxxxx-tools --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}'oc patch StatefulSet c-db2wh-xxxxxxxxxxxxx-etcd --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}'oc patch deploy c-db2wh-xxxxxxxxxxx-tools --patch '{"spec": {"template": {"metadata": {"labels": {"velero.io/exclude-from-backup": "true"}}}}}' - 원본 복제본으로 확장:
oc scale deploy c-${DB2UCLUSTER}-tools --replicas=1oc scale sts c-${DB2UCLUSTER}-etcd --replicas=<original-number-of-replicas>oc scale sts c-${DB2UCLUSTER}-db2u --replicas=<original-number-of-replicas> - 포드 상태를 검토하십시오:
watch "oc get pod |grep c-db2wh-<xxxxxxxxxxx>" - 서비스 Db2 Warehouse 상태를 확인하려면 3단계를 반복하십시오.
- StatefulSets: 식별
IBM Software Hub 백업
다음 단계를 수행하여 제외된 Db2 Warehouse 항목을 IBM Software Hub 백업하십시오.
- 클러스터 관리자로 Red Hat
OpenShift Container Platform에 로그인하십시오.
${OC_LOGIN}기억하세요:OC_LOGIN는oc login명령어의 별칭입니다. - . control planeIBM Software
Hub 를 정지시키다.
cpd-cli oadp backup prehooks \ --include-namespaces=${PROJECT_CPD_INST_OPERANDS} - 백업을 생성하십시오.
- 백업 상태를 확인하려면 다음 명령을 실행하십시오.
cpd-cli oadp backup status <cpd_backup-name> \ --details - 백업 로그를 확인하려면 다음 명령을 실행하십시오.
cpd-cli oadp backup logs <cpd_backup-name> - 백업이 실패한 경우, 백업을 삭제한 후 다시 시작하십시오.
cpd-cli oadp backup delete <cpd_backup-name> - . control planeIBM Software
Hub 를 비활성화합니다.
cpd-cli oadp backup posthooks \ --include-namespaces=${PROJECT_CPD_INST_OPERANDS}참고: 작업 wkc-job-unquiesce 완료에 오랜 시간이 걸리는 경우, 포드 로그를 검토하십시오. 서비스 wkf-workflow 포드가 상태에 있으면0/1, 재시작하십시오. 그러면 작업이 wkc-job-unquiesce 계속됩니다.
Db2 Warehouse 백업
백업을 Db2 Warehouse 위해 (CSI) Container Storage Interface 볼륨 스냅샷을 생성하십시오.
- 클러스터 관리자로 Red Hat
OpenShift Container Platform에 로그인하십시오.
${OC_LOGIN}기억하세요:OC_LOGIN는oc login명령어의 별칭입니다. - Db2 의 write-suspend를 호출하는 사전 백업 Db2 Warehouse 훅을 실행합니다.
- db2ucluster: 식별
oc get db2ucluster | grep db2wh명령은 다음을 리턴합니다.
DB2UCLUSTER=db2wh-<xxxxxxxxxxxxxxxx> - 카탈로그 노드를 식별하십시오:
CATALOG_POD=$(oc get po -l name=dashmpp-head-0,app=${DB2UCLUSTER} --no-headers | awk '{print $1}') - 이전 단계에서 식별된 포드에서 Db2 Warehouse 데이터베이스를 일시 중지합니다:
oc rsh ${CATALOG_POD} bashsu - db2inst1cd /db2u/scripts./manage_snapshots.sh --action suspend
- db2ucluster: 식별
- 인스턴스별 리소스 레이블을 Db2 Warehouse 인스턴스 Db2 PVC 및 리소스에 적용합니다(메타 및 백업 PVC는 현재 레이블이 지정되지 않음).
INSTANCE_ID=$(echo ${DB2UCLUSTER} | cut -d "-" -f2)oc label pvc c-${DB2UCLUSTER}-meta app=${DB2UCLUSTER} component=db2wh db2u/cpdbr=db2u formation_id=${DB2UCLUSTER} cpdsupport/addOnId=db2wh icpdsupport/app=${DB2UCLUSTER} icpdsupport/createdBy=1000330999 icpdsupport/podSelector=db2u-log icpdsupport/serviceInstanceId=${INSTANCE_ID} role=db type=engineoc label pvc c-${DB2UCLUSTER}-backup app=${DB2UCLUSTER} component=db2wh db2u/cpdbr=db2u formation_id=${DB2UCLUSTER} icpdsupport/addOnId=db2wh icpdsupport/app=${DB2UCLUSTER} icpdsupport/createdBy=1000330999 icpdsupport/podSelector=db2u-log icpdsupport/serviceInstanceId=${INSTANCE_ID} role=db type=engine - 다음 명령어 중 하나를 실행하여 백업을 생성하십시오.
클러스터는 IBM Entitled Registry에서 이미지를 가져옵니다
제한 사항: 이 옵션은 클러스터가 인터넷에 연결할 수 있는 경우에만 사용할 수 있습니다.cpd-cli oadp backup create <db2wh_backup-name> \ --include-namespaces=${PROJECT_CPD_INST_OPERANDS} \ --skip-hooks \ --snapshot-volumes \ --include-resources='ns,pvc,pv,volumesnapshot,volumesnapshotcontent' \ --selector="app=${DB2UCLUSTER}" --image-prefix=registry.redhat.io/ubi9 \ --log-level=debug \ --verbose
클러스터는 사설 컨테이너 레지스트리에서 이미지를 가져옵니다
제한 사항: 이 옵션은 관리자가 백업 및 복원 이미지를 사설 컨테이너 레지스트리로 이동한 경우에만 사용할 수 있습니다. 자세한 내용은 2항을 참조하십시오. 백업 및 복원을 위한 동영상 이미지를 개인 컨테이너 레지스트리로 이동합니다.cpd-cli oadp backup create <db2wh_backup-name> \ --include-namespaces=${PROJECT_CPD_INST_OPERANDS} \ --skip-hooks \ --snapshot-volumes \ --include-resources='ns,pvc,pv,volumesnapshot,volumesnapshotcontent' \ --selector="app=${DB2UCLUSTER}" \ --image-prefix=${PRIVATE_REGISTRY_LOCATION}/ubi9 \ --log-level=debug \ --verbose
- 포드(1단계와 동일한 포드)에서 Db2 Warehouse 데이터베이스를 재개합니다:
oc rsh ${CATALOG_POD} bashsu - db2inst1cd /db2u/scripts./manage_snapshots.sh --action resume - 상태를 확인하십시오 Db2 Warehouse.
복원 IBM Software Hub 및 Db2 Warehouse
다음 단계를 수행하여 Db2 Warehouse 복원하십시오 IBM Software Hub .
- 원본 IBM Software
Hub 프로젝트(네임스페이스) YAML에 다음 값들을 기록하십시오:
openshift.io/sa.scc.supplemental-groups: <xxxxxxxxxx/xxxxx>openshift.io/sa.scc.uid-range: <xxxxxxxxxx/xxxxx>openshift.io/requester: <requester_id>openshift.io/sa.scc.mcs: '<xx>:<xxx>,<xxx>'
- 클러스터 관리자로 Red Hat
OpenShift Container Platform에 로그인하십시오.
${OC_LOGIN}기억하세요:OC_LOGIN는oc login명령어의 별칭입니다. - 인스턴스를 IBM Software Hub 삭제하십시오.
- 볼륨을 Db2 Warehouse 복원하십시오:
cpd-cli oadp restore create <db2wh_restore-name> \ --from-backup=<db2wh_backup-name> \ --skip-hooks - 복원이 완료되었는지 확인하십시오:
cpd-cli oadp restore list - 프로젝트 UID를 변경하십시오.
- 프로젝트 IBM Software
Hub 편집:
oc edit namespace ${PROJECT_CPD_INST_OPERANDS} - 다음 값들을 1단계의 원래 값으로 변경하십시오:
openshift.io/sa.scc.supplemental-groups: <xxxxxxxxxx/xxxxx>openshift.io/sa.scc.uid-range: <xxxxxxxxxx/xxxxx>openshift.io/requester: <requester_id>openshift.io/sa.scc.mcs: '<xx>:<xxx>,<xxx>'
중요: 이 값들을 변경하지 않으면 IBM Software Hub 포드가 성공적으로 초기화되지 않습니다.
- 프로젝트 IBM Software
Hub 편집:
- ${PROJECT_CPD_INST_OPERATORS} 프로젝트에서 이전 단계를 반복하십시오.
- 복원하십시오 control plane .
- 복원 상태 확인:
cpd-cli oadp restore status <cpd-restore-name> \ --details