4.4. Fuse Online 환경 복원
연결 또는 통합을 아직 생성하지 않은 새 Fuse Online 환경에서는 Fuse Online 환경의 백업을 복원할 수 있습니다. Fuse Online 환경을 복원한 후에는 복원된 연결을 편집하여 암호를 업데이트해야 합니다. 그런 다음 복원된 통합을 게시할 수 있습니다.
사전 요구 사항
- OCP는 현장에서 실행되고 있습니다.
-
oc클라이언트 툴이 설치되어 Fuse Online 환경을 복원하려는 OCP 클러스터에 연결되어 있습니다. - 클러스터 관리 권한이 있는 사용자는 클러스터에서 액세스할 수 있는 권한이 있는 모든 프로젝트에 Fuse Online을 설치할 수 있는 권한을 부여했습니다.
- 데이터를 정기적으로 백업하고 Amazon S3에 데이터를 업로드하도록 구성된 Fuse Online 환경이 있습니다.
- Fuse Online 릴리스 번호(예: 7.6)는 백업된 Fuse Online 환경과 백업을 복원하려는 Fuse Online 환경과 동일합니다.
- Fuse Online 백업이 포함된 AWS 버킷에 액세스할 수 있는 권한이 있습니다.
- 백업을 복원하려는 Fuse Online 환경은 새로운 Fuse Online 설치입니다. 즉, 사용자가 정의한 연결 또는 통합이 없습니다. 연결 및 통합이 있는 Fuse Online 환경이 있는 프로젝트에서 Fuse Online을 복원하려면 해당 Fuse Online 환경을 제거하고 새 Fuse Online 환경을 설치해야 합니다.
프로세스
- Amazon S3에서 원하는 백업 파일을 다운로드합니다. 이에 대한 자세한 내용은 AWS 문서에서 S3 버킷에서 오브젝트를 다운로드하는 방법에 대한 것입니다.
zip 파일의 내용을 추출합니다. 예를 들어 다음 명령줄은
7.6-2020-03-15-23:30:00.zip파일의 압축을 해제하고 콘텐츠를/tmp/fuse-online-backup폴더에 복사합니다.unzip 7.6-2020-03-15-23:30:00.zip -d /tmp/fuse-online-backupFuse Online 데이터베이스를 디코딩합니다. 예를 들면 다음과 같습니다.
base64 -d /tmp/fuse-online-backup/syndesis-db.dump > /tmp/fuse-online-backup/syndesis-db새 Fuse Online 환경을 실행 중인 OpenShift 프로젝트로 전환합니다. 예를 들어 새 Fuse Online 환경이
my-fuse-online-project인 경우 다음 명령을 호출합니다.oc project my-fuse-online-project이 절차의 나머지 부분에서는 새 Fuse Online 환경이 포함된 프로젝트로 전환했다고 가정합니다.
데이터베이스 pod의 이름을 가져옵니다.
복원된 Fuse Online 환경에서 제공된 내부, PostgreSQL 데이터베이스를 사용하는 경우 다음 명령을 호출하여 데이터베이스 포드의 이름을 가져옵니다.
oc get pods -l deploymentconfig=syndesis-db -o jsonpath='{.items[*].metadata.name}'복원된 Fuse Online 환경에서 외부 데이터베이스를 사용하는 경우 해당 데이터베이스의 포드 이름을 가져오는 방법을 알고 있다고 가정합니다.
DATABASE_POD_NAME이 표시되는 나머지 명령에서 복원된 Fuse Online 환경에 대한 데이터베이스 포드 이름을 삽입합니다.어떤 방식으로든 데이터베이스에 액세스하는 구성 요소를 축소합니다.
다른 구성 요소를 축소할 수 있도록 축소된
syndesis-operator를 축소합니다.oc scale dc syndesis-operator --replicas 0syndesis-server및syndesis-meta구성 요소를 축소합니다.oc scale dc syndesis-server --replicas 0oc scale dc syndesis-meta --replicas 0
데이터베이스 백업 파일을 Fuse Online 데이터베이스 Pod로 보냅니다.
oc cp /tmp/fuse-online-backup/syndesis-db DATABASE_POD_NAME:/tmp/syndesis-dbFuse Online 데이터베이스 포드에서 원격 쉘 세션을 엽니다.
oc rsh DATABASE_POD_NAME다음 명령을 호출하여 Fuse Online 데이터베이스를 복원합니다.
psql명령이 데이터베이스 암호를 입력하라는 메시지를 표시하고 복원된 Fuse Online 환경에서 제공된 내부 PostgreSQL 데이터베이스를 사용하는 경우syndesis-db배포 구성에서POSTGRESQL_PASSWORD환경 변수에서 암호를 찾을 수 있습니다. 복원된 Fuse Online 환경에서 외부 데이터베이스를 사용하는 경우 암호를 알고 있다고 가정합니다.cd /tmp psql -c 'DROP database if exists syndesis_restore' psql -c 'CREATE database syndesis_restore' pg_restore -v -d syndesis_restore /tmp/syndesis-db psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'syndesis'" psql -c 'DROP database if exists syndesis' psql -c 'ALTER database syndesis_restore rename to syndesis'이제 Fuse Online을 복원해야 합니다. RSH 세션을 종료할 수 있습니다.
종료Fuse Online 구성 요소를 확장합니다.
oc scale dc syndesis-operator --replicas 1syndesis-operator를1로 스케일링하면 축소된 다른 Pod가 표시되어야 합니다. 그러나 이러한 상황이 발생하지 않으면 수동으로 확장할 수 있습니다.oc scale dc syndesis-server --replicas 1oc scale dc syndesis-meta --replicas 1서버는 복원된 각 통합을 시작하려고 하지만 먼저 연결을 업데이트해야 합니다. 결과적으로 복원된 통합이 실행되고 있지 않은지 확인합니다.
Fuse Online 콘솔 경로를 가져옵니다.
echo "https://$(oc get route/syndesis -o jsonpath='{.spec.host}' )"- Fuse Online을 설치할 수 있는 권한이 있는 OpenShift 사용자 계정으로 Fuse Online 콘솔에 로그인합니다.
- 통합 목록을 표시하고 모든 통합이 중지되었는지 확인합니다. 통합이 실행 중인 경우 중지합니다.
암호가 있는 각 연결에 대해 이 Fuse Online 환경에 대해 올바른 암호를 갖도록 연결을 업데이트해야 합니다. 다음 단계에서는 제공된 PostgresDB 연결에 대해 이 작업을 수행하는 방법을 보여줍니다.
-
복원된 Fuse Online 환경이 실행되는 프로젝트에 대한 OpenShift 콘솔에서 PostgresDB 연결의 암호를 검색합니다.
syndesis-db배포에서 이 암호는 환경 변수에서 사용할 수 있습니다. - Fuse Online 콘솔에서 연결을 표시합니다.
- PostgresDB 연결을 편집합니다.
- PostgresDB 연결의 연결 세부 정보에서 검색된 암호를 Password 필드에 붙여넣습니다.
-
복원된 Fuse Online 환경이 실행되는 프로젝트에 대한 OpenShift 콘솔에서 PostgresDB 연결의 암호를 검색합니다.
각 통합에 대해 구성 필수 지표가 없는지 확인합니다. 통합이 있는 경우 통합을 편집하여 문제를 해결합니다. 통합의 모든 단계가 올바르면 통합을 게시합니다.
빌드 단계 직후 Fuse Online에서 통합을 중지 상태로 되돌리는 경우 배포를 삭제하고 구성이 필요하지 않은지 확인한 후 통합을 다시 게시하십시오.
로그에 표시되는 경우 다음 메시지는 무시해도 됩니다.
Error performing GET request to https://syndesis-my-fuse-online-project.my-cluster-url/api/v1/metrics/integrations