MariaDB/MySQL
MariaDB/MySQL
개요
본 문서는 SCP V에 사용 중인 MariaDB, MySQL을 SCP V2에 마이그레이션하는 방법을 가이드합니다. 마이그레이션은 Target DB에 Source DB로부터 전체 데이터를 이관한 후, Replication 방식을 통해 Source DB의 변경사항을 Target DB에 복제하는 방식으로 진행합니다.
Source DB가 Online상태에서 Replication 방식을 통해 데이터를 복제하므로 마이그레이션 시, Source DB의 중단시간을 최소화할 수 있습니다.
사전작업
- SCP(Samsung Cloud Platform)을 활용한 DB Migration에 대해서만 가이드하며, 사전에 Source, Target 클러스터 간 Network이 연결되어 있어야 합니다.
- Source, Target 클러스터 간 사용하는 DB Port가 동일해야하며, Target DB에서 Source DB의 DB Port로 접근이 가능해야 합니다.
마이그레이션 절차
1. Target 클러스터 생성
다음의 절차에 따라 Target DB를 생성합니다.
- 모든 서비스 > Database > MariaDB(DBaaS) > MariaDB생성/MySQL생성 메뉴를 클릭하세요. MariaDB(DBaaS)/MySQL(DBaaS)의 Service Home 페이지로 이동합니다.
- Service Home페이지에서 MariaDB(DBaaS)/MySQL(DBaaS) 생성 버튼을 클릭하세요. MariaDB(DBaaS)/MySQL(DBaaS) 생성 페이지로 이동합니다.
- MariaDB(DBaaS)/MySQL(DBaaS) 생성 페이지에서 서비스 생성에 필요한 정보들을 입력하고, 상세 옵션을 선택하세요.
- Target DB의 버전 및 서비스 정보를 입력합니다. 서비스 정보 입력 시 아래와 같은 제약사항을 확인합니다.
제약사항(MariaDB, MySQL 공통)
- Source 클러스터가 사용중인 데이터 사이즈의 약 2배 이상의 디스크를 할당해야 합니다.
- 할당된 Disk 기준이 아닌 실제 사용량의 2배가 필요합니다.
- Target 클러스터의 아래의 정보는 Source 클러스터와 동일해야 합니다.
- Database버전(Major,Minor버전)
- Port
- Database명
- DB 캐릭터셋(Collation)
- 시간대(서버 Timzone)
- Target 클러스터는 아래와 같은 조건을 만족해야 합니다.
- 백업 미설정
- Audit Log 미설정
제약사항(MySQL Only)
- Target 클러스터의 아래의 정보는 Source 클러스터와 동일해야 합니다.
- Table대소문자 구분
* DB 캐릭터셋, Collation은 character_set_server, collation_server 파라미터에 해당하는 값입니다.
* DB 생성 이후, Parameter 관리 페이지에서 Source DB에 맞게 변경해야 합니다.
* 백업, Audit Log 설정은 DB 생성 이후 변경 가능한 값이므로, 설정되어 있다면 상세 페이지에서 Migration 구성 전 미설정으로 변경해야 합니다.
2. Source 클러스터 권한 확인
Source DB로부터 데이터를 이관하고 Replication을 수행하기 위해서는 아래와 같은 권한이 필요합니다.
MariaDB/MySQL 공통
Migration용 계정 권한 확인 쿼리 수행 결과 아래 권한이 모두 ‘Y’여야 합니다.
select select_priv , lock_tables_priv , show_view_priv , tirgger_priv , event_priv , reload_priv , process_priv , show_db_priv , repl_client_priv , repl_slave_priv from mysql.user where user='Migration용 계정' and host='%'또는 아래의 명령어로 현재 계정에 부여된 권한을 확인할 수 있습니다.
show grants for 'Migration용 계정'@'%';
제약사항
마이그레이션용 계정의 권한은 host=’%’ 조건으로 확인하고 있으므로, 마이그레이션용 계정 생성 시에는 Host정보는 ‘%‘로 생성해야 합니다.
Migration용 계정 권한 추가 1번에서 수행한 계정 권한 중 Y가 아닌 값이 있다면, 해당 계정에 권한을 추가해야 합니다.
grant select, lock tables, show view, trigger, event, reload, process, show databases, replication client, replication slave on *.* to 'Migration용 계정'@'%';
3. Migration 구성
Target DB가 생성되면, Network 연결을 확인한 후 Migration 구성을 수행할 수 있습니다.
제약사항
- 아래에 해당되는 Target 클러스터는 Migration 구성을 수행할 수 없습니다.
- 인스턴스 유형이 Replica인 경우
- Replica를 갖는 Master 클러스터인 경우
- Running 상태가 아닌 경우
- Migration 구성을 수행하고 Master 승격을 하기 전인 경우(클러스터 유형이 Migration인 경우)
- Audit Log, 백업이 설정되어 있는 경우
Target DB의 상세 페이지에서 우측 상단의 Migration 구성 메뉴를 클릭하여 구성을 시작할 수 있습니다.
- 모든 서비스 > Database > MariaDB(DBaaS) > MariaDB(DBaaS)상세 메뉴를 클릭하세요. MariaDB(DBaaS)/MySQL(DBaaS)의 MariaDB(DBaaS)/MySQL(DBaaS) 상세 페이지로 이동합니다.
- MariaDB(DBaaS)/MySQL(DBaaS) 상세 페이지 우측 상단의 더보기버튼을 클릭하세요. 더보기 메뉴들이 보여집니다.
- Migration 구성 메뉴를 클릭하세요. 알림 팝업의 메시지를 확인한 후 확인 버튼을 클릭하세요.
- Target DB의 버전 및 서비스 정보를 입력합니다. 서비스 정보 입력 시 아래와 같은 제약사항을 확인합니다.
- Source DB Database명 : 필수 값. 영문으로 시작하여 1~63자 이내로 입력하세요.
- Source DB IP : 필수 값. IP형식(ex. 192.168.10.1)으로 입력하세요.
- Source DB Port : 필수 값. Port 입력 가능 범위는 1024~65535입니다.
- Source DB 사용자명 : 필수 값. 영문으로 시작하여 1~80자 이내로 입력하세요.
- Source DB 비밀번호 : 필수 값. 영문,숫자와 특수문자(" ’ 제외)를 포함하여 8~30자로 입력하세요.
취소
취소 버튼을 선택 시 Migration 구성을 취소하고 이전 페이지로 돌아가게 됩니다.
접속 확인
Source DB의 정보를 입력한 후 접속 확인 버튼을 클릭하면 N/W, 계정 권한, Database정보 등 본 가이드에 명시된 제약 사항을 체크합니다. 제약사항을 하나라도 만족하지 않으면 접속 확인에 실패하며, 에러 메시지를 확인 후 조치해야 합니다. 접속 확인에 성공한 이후 Source DB에 대한 정보를 수정하면, 완료 버튼은 다시 비활성화 되고 ‘접속 확인’ 버튼이 활성화 됩니다.
Migration 구성 완료
접속 확인에 성공하면 완료 버튼이 활성화됩니다. 완료 버튼을 클릭하면, Source DB로부터 데이터 이관을 시작하며 전체 데이터를 한번 이관한 후 Replication 연결까지 성공해야 마이그레이션 구성이 종료됩니다.
이 단계는 데이터의 사이즈에 따라 수 시간 이상 소요될 수 있습니다. 마이그레이션 중 클러스터의 상태는 Migrating으로 표시되며 Migrating 중에는 Target 클러스터에 대한 수정 작업을 수행할 수 없습니다.
Migration 구성 완료 버튼을 클릭하면, 현재 Target DB에 존재하는 데이터는 모두 삭제됩니다.
- Target DB가 Migrating인 상태에서 Source DB의 상태가 변경되면(중지, 재시작, SwitchOver 등이 수행 시) 마이그레이션 작업에 실패합니다.
- 마이그레이션 중에 Source DB에 대한 작업을 중지해야 합니다.
| Migration 구성결과 | 메뉴 활성화 |
|---|---|
| Migration 구성 성공 시 | Master 승격 활성화, 상세 페이지에서 각종 설정 변경 불가 |
| Migration 구성 실패 시 | Migration 구성 활성화 |
서비스 상태 동기화
Migrating상태의 Target 클러스터의 상태가 Running이 되고, Master 승격 버튼이 활성화되면 정상적으로 Migration이 수행된 상태입니다.
현재 복제 상태를 확인하기 위해서는 Target DB의 상세페이지에서 우측 상단의 ‘서비스 상태 동기화’ 버튼을 클릭한 후, 복제 상태를 확인할 수 있습니다.
복제 상태는 MariaDB(DBaaS) > MariaDB(DBaaS)목록 > MariaDB(DBaaS)상세 > 작업 이력 > 작업 내역 클릭 > 작업 내역 상세 에서 eventdata항목을 확인하시기 바랍니다.
4. Master 승격
복제 상태를 확인 한 후, Master 승격 버튼을 클릭하면 마이그레이션이 완료됩니다.
- 모든 서비스 > Database > MariaDB(DBaaS) > MariaDB(DBaaS)상세 메뉴를 클릭하세요. MariaDB(DBaaS)/MySQL(DBaaS)의 MariaDB(DBaaS)/MySQL(DBaaS) 상세 페이지로 이동합니다.
- MariaDB(DBaaS)/MySQL(DBaaS) 상세 페이지 우측 상단의 Master승격버튼을 클릭하세요.
- Editing 상태로 변경되며, Master 승격이 완료되면 Running 상태로 변경됩니다.
- Source DB에 설정된 Parameter는 마이그레이션 되지 않습니다. Master 승격 이후, Source DB의 설정에 맞게 MariaDB(DBaaS) > MariaDB(DBaaS)목록 > MariaDB(DBaaS)상세 > Parameter 관리 페이지에서 수정하세요.
- 사용자의 계정 정보는 Source에서 동기화 됩니다. Master 승격 이후에는 Source DB의 계정 정보를 사용하여 DB에 접속하세요.