PostgreSQL(DBaaS), EPAS(DBaaS) 마이그레이션

PostgreSQL(DBaaS), EPAS(DBaaS) 마이그레이션

개요

본 가이드는 Samsung Cloud Platform에서 생성한 PostgreSQL(DBaaS), EPAS(DBaaS) 서비스를 Samsung Cloud Platform v2로 마이그레이션하는 절차와 작업을 안내합니다.

Samsung Cloud Platform v2에서는 마이그레이션 중에 발생하는 중단 시간을 최소화 하기 위하여 Streaming Replication 방식으로 Replica를 구성하고 전환 시점에 Master 서버로 승격하는 기능을 제공합니다. 이를 통하여 사용자는 보다 쉽게 마이그레이션 작업을 수행할 수 있습니다.

사전 작업

PostgreSQL(DBaaS), EPAS(DBaaS) 마이그레이션을 진행하기 위해서는 Samsung Cloud Platform v2에 Target 클러스터가 존재하고 Samsung Cloud Platform에 있는 Source 클러스터의 DB에 접근할 수 있어야 합니다.

기본적으로 다음 Port에 대해 Network 통신이 가능해야 합니다.

  • Source 클러스터 DB Port : Target 클러스터 IP (HA인 경우, Active 서버 IP / Standby 서버 IP / VIP) -> Source 클러스터 IP (HA인 경우, Active 서버 IP / Standby 서버 IP / VIP)

본 가이드에서는 서버 및 Network는 사전에 정상적으로 구성된 것으로 가정하고, 마이그레이션 작업 전에 확인해야할 사항을 안내합니다.

Target 서버 확인

PostgreSQL(DBaaS), EPAS(DBaaS) 서비스 마이그레이션 시에는 원본에 설정되어 있는 설정 파라미터를 그대로 가져와 사용합니다. 뿐만 아니라 서비스 서비스의 여러 기능의 자동화 처리로 인해 Source 클러스터와 동일한 구성으로 Target 클러스터를 구성하는 것을 권고하며 아래 항목을 확인하시기 바랍니다.

  • Target 클러스터 서버의 Memory는 Source 클러스터 보다 크거나 동일헤야 합니다.
  • Target 클러스터 서버의 DATA용 Block Storage 용량은 Source 클러스터 보다 크거나 동일해야 합니다.
  • Target 클러스터의 다음 구성 정보는 Source 클러스터와 동일해야 합니다.
    • 이미지 버전
    • Database명
    • Database 사용자명
    • Database Port번호
    • Database Encoding
    • DB Locale
    • 시간대
  • Target 클러스터는 다음 구성이 미사용으로 설정되어 있어야 합니다.
    • 백업
    • Audit Log 설정

마이그레이션 구성용 DB 사용자 확인

마이그레이션을 위한 Replication에 필요한 Source DB 사용자는 login replication pg_read_all_settings pg_hba_file_rules view 조회 권한이 있어야 합니다.

Source DB에서 이미 존재하는 DB 사용자를 활용할 경우에는 아래 내용 참고하여 권한을 부여하세요.

ALTER USER user_name WITH LOGIN REPLICATION;

GRANT pg_read_all_settings TO user_name;

GRANT SELECT ON pg_hba_file_rules TO user_name;
GRANT EXECUTE ON FUNCTION pg_hba_file_rules TO user_name;

Source DB에 새로운 DB 사용자를 생성하여 사용하는 경우에는 아래 내용 참고하여 신규 생성 및 권한을 부여하세요.

CREATE USER user_name WITH LOGIN REPLICATION PASSWORD 'user_password';

GRANT pg_read_all_settings TO user_name;

GRANT SELECT ON pg_hba_file_rules TO user_name;
GRANT EXECUTE ON FUNCTION pg_hba_file_rules TO user_name;

DB 접근제어 등록 확인

마이그레이션용 Replication 구성을 위해서는 DB 자체의 접근제어 (pg_hba) 규칙이 Source DB에 적용되어 있어야 Target DB에서 접근이 가능합니다. 다만 접근제어 규칙 등록은 OS 접근 제한으로 인하여 사용자가 직접 작업하기가 어렵습니다. Samsung Cloud Platform 1:1 문의 하기를 통해 규칙 등록 요청이 필요합니다.

규칙 등록이 된 경우에는 다음 SQL문을 통하여 확인할 수 있습니다.

SELECT * FROM pg_hba_file_rules WHERE database = 'replication';

Source DB - Target DB 통신 확인

DB 사용자 권한, DB 접근제어 설정 후에는 Target DB에서 Source DB로 접근이 가능합니다.

PostgreSQL의 Foreign-Data Wrapper(FDW)를 이용하여 DB 접근 가능여부를 확인해 볼 수 있습니다. 자세한 내용은 PostgreSQL Document - postgres_fdw 참고하세요.

추가 설치된 Extension 확인

PostgreSQL(DBaaS), EPAS(DBaaS) 서비스에서 기본 설치되는 Extension을 제외한 별도로 요청하여 추가 설치된 Extension을 사용 중일 경우에는 마이그레이션 구성 시에 문제가 될 수 있습니다. 특히, shared_preload_libraries 파라미터 설정값에 추가되어 DB기동 시 로드되는 Extension의 경우에는 필요한 모듈이 설치되어 있지 않을 경우에 DB 기동이 불가능 합니다. 따라서 마이그레이션 구성에 앞서 사용 중인 Extension을 확인하고 추가 설치된 Extension이 있을 경우에는 먼저 조치가 필요합니다.

  • Target 클러스터에 추가 Extension 설치 - Extension 모듈 설치 및 shared_preload_libraries파라미터 설정

    또는

  • Source 클러스터에서 추가 Extension 비활성화 - Extension 삭제 및 shared_preload_libraries파라미터 설정

마이그레이션 절차

마이그레이션 구성

마이그레이션 구성은 다음 메뉴를 통해서 요청 가능합니다.

  • PostgreSQL(DBaaS) : Database > PostgreSQL(DBaaS) > PostgreSQL(DBaaS) 목록 > PostgreSQL(DBaaS) 상세 > Migration 구성
  • EPAS(DBaaS) : Database > EPAS(DBaaS) > EPAS(DBaaS) 목록 > EPAS(DBaaS) 상세 > Migration 구성

Target 클러스터 상세 페이지 우측 상단의 Migration 구성 메뉴를 클릭하여 마이그레이션 구성을 시작할 수 있습니다.

Migration 구성 메뉴를 클릭하면 Migration 구성 페이지가 보여지고 Source DB 대한 정보를 입력할 수 있습니다.

  • Source DB Database명 : 필수 값. 영문으로 시작하여 1~63자 이내로 입력하세요.
  • Source DB IP : 필수 값. IP형식(ex. 192.168.10.1)으로 입력하세요.
  • Source DB Port : 필수 값. Port 입력 가능 범위는 1024~65535입니다.
  • Source DB 사용자명 : 필수 값. 영문으로 시작하여 1~63자 이내로 입력하세요.
  • Source DB 비밀번호 : 필수 값. 영문,숫자와 특수문자(" ’ 제외)를 포함하여 8~30자로 입력하세요.

취소

취소 버튼을 선택 시 Migration 구성을 취소하고 이전 화면으로 돌아가게 됩니다.

접속 확인

Source DB의 정보를 입력한 후 접속 확인 버튼을 클릭하면 Source DB로의 접속 확인, DB 사용자 권한, Database정보 등 본 가이드에 명시된 제약 사항을 먼저 체크합니다. 제약 사항을 만족하지 못하면 접속 확인에 실패하며, 에러 메시지를 확인 후 조치해야 합니다.

Migration 구성 완료

접속 확인에 성공하면 완료 버튼이 활성화됩니다. 완료 버튼을 클릭하면, Source DB로부터의 데이터 마이그레션 구성을 시작하며 전체 데이터를 한번 이관한 후 Replication 연결까지 성공해야 마이그레이션 구성이 완료됩니다. 이 단계는 데이터의 사이즈에 따라 수 시간 이상 소요될 수 있습니다. 마이그레이션 중 클러스터의 상태는 Migrating으로 표시되며 Migrating 중에는 Target 클러스터에 대한 수정 작업을 수행할 수 없습니다. Migration 구성 완료 버튼을 클릭하면, 현재 Target DB에 존재하는 데이터는 모두 삭제됩니다.

안내
Target DB가 Migrating인 상태에서 Source DB의 상태가 변경되어(중지, 재시작, SwitchOver 등이 수행 시) DB프로세스가 중단될 경우에는 마이그레이션 작업이 실패합니다. 마이그레이션 중에 Source DB에 대한 변경 작업을 지양해야 합니다.
Migration 구성결과메뉴 활성화
Migration 구성 성공 시Master 승격, 상세 화면에서 각종 설정 변경 불가
Migration 구성 실패 시Migration 구성
표. 마이그레이션 구성 결과에 따른 메뉴 활성화

서비스 상태 동기화

Migration 구성이 완료되고 Target 클러스터의 상태가 Running이 되고, Master 승격 버튼이 활성화되면 정상적으로 Migration이 수행된 상태입니다. Database > PostgreSQL(DBaaS) > PostgreSQL(DBaaS) 목록 > PostgreSQL(DBaaS) 상세 > 작업 이력 > 작업 내역 클릭 > 작업 내역 상세 또는 Database > EPAS(DBaaS) > EPAS(DBaaS) 목록 > EPAS(DBaaS) 상세 > 작업 이력 > 작업 내역 클릭 > 작업 내역 상세에서 상세 내용을 확인하시기 바랍니다. 현재 복제 상태를 확인하기 위해서는 Target DB의 상세화면에서 우측 상단의 서비스 상태 동기화 버튼을 클릭한 후, 복제 상태를 확인할 수 있습니다.

추가로 DB에서 직접 다음 쿼리를 실행하여 상세한 복제 상태를 확인할 수 있습니다.

  • Source 클러스터

    SELECT * FROM pg_stat_replication;
    
  • Target 클러스터

    SELECT * FROM pg_stat_wal_receiver;
    

Master 승격

컷-오버 시점에 복제 상태를 확인 한 후, Master 승격 버튼을 클릭하여 DB를 주 서버로 전환하면 마이그레이션이 완료됩니다. 위의 그림. Migration 구성 완료 후 상세 페이지 에서 Target DB의 상세화면에서 우측 상단의 ‘Master 승격’ 버튼을 클릭하면 됩니다. Master 승격 이후에는 일반적인 클러스터와 마찬가지로 PostgreSQL(DBaaS) 상세 페이지 또는 EPAS(DBaaS) 상세 페이지에서 설정값을 변경할 수 있습니다.

제약 사항

  • 아래에 해당되는 Target 클러스터는 Migration 구성을 수행할 수 없습니다.

    • 인스턴스 유형이 Replica인 경우
    • Replica를 갖는 Master 클러스터인 경우
    • Running 상태가 아닌 경우
    • Migration 구성을 수행하고 Master 승격을 하기 전인 경우(클러스터 유형이 Migration인 경우)
  • Target 클러스터는 Audit 로그와 Backup 설정을 Off 한 후 마이그레이션을 수행할 수 있습니다.

  • 한번 Migration을 구성한 이후에는 서버에 대한 수정(Spec 변경, Disk 추가 작업, Parameter 관리 등) 작업이 불가합니다.

    • Master 승격 이후, Target 클러스터를 수정하세요.