사용하기 전에

Q. 백업은 언제 진행되나요?

  • 자동으로 설정할 경우 임의의 시간이 선택되며, 이후 매일 해당시간에 백업이 시작됩니다.
  • 사용자 정의로 시간을 설정한 경우 사용자가 설정한 시간에 시작됩니다.

Q. 백업 파일은 어디에 저장되나요?

  • 백업 파일은 별도 데이터 스토리지 파티션에 저장됩니다. 백업 사이즈에 따라 스토리지 계약이 진행됩니다.

Q. mysqldump를 사용하여 Cloud DB for MySQL의 데이터를 받을 수 있나요?

  • mysqldump 수행을 위해서 우선 APP 서버를 설치해야 합니다. APP 서버 설치는 퀵스타트 가이드를 참고하세요.
  • Cloud DB for MySQL 상품은 GTID(global transaction identifier)를 사용하므로 APP 서버에서 mysqldump 수행 시, --set-gtid-purged=OFF 옵션을 추가하세요.
  • 예: mysqldump dbname --set-gtid-purged=OFF > dbname.sql
  • mysqldump --set-gtid-purged=OFF -h [recovery DB 도메인] -u [DDL 권한 유저] -p --databases [특정 databases] > [db 명].sql

Q. mysqldump를 수행하여 받은 파일을 이용해서 Cloud DB for MySQL에 복원할 수 있나요?

  • mysqldump를 사용하여 Cloud DB for MySQL의 데이터를 받을 때와 동일하게 APP 서버가 필요합니다.
  • APP 서버 설치는 퀵스타트 가이드를 참고하세요.
  • APP 서버 설치후에는 아래와 같은 절차로 진행할 수 있습니다.
    • MC 콘솔에서 Restore하기 위한 Database를 생성합니다.
    • Import를 수행하기 위한 DDL 권한을 지닌 계정을 생성합니다.
    • mysql -h [Cloud DB 도메인명] -u [DB User] -p [Database] -P [Port] < mysqldump.sql 명령어를 수행합니다.

Q. 백업 파일을 이용해서 소실된 데이터를 복구하고 싶습니다. 어떻게 진행하면 될까요?

database-5-4-101

  • 백업 복원하기 기능을 이용하여 읽기 전용 DB 서버를 생성할 수 있습니다. 생성된 읽기 전용 DB 서버를 통해 소실된 데이터를 복구할 수 있습니다.
  • 복구된 DB는 DB 서버 목록에서 DB Role이 "Recovery"로 표시되며, 읽기만 가능한 DB로 동작합니다. 해당 DB를 기반으로 새로운 DB 서비스를 생성하기 위해서는 "Reocovery" 상태의 DB 서버를 선택 후 DB 관리 메뉴에서 신규 DB 서비스 생성을 선택합니다.

Q. 백업 파일로부터 복구 DB를 생성하는 경우, 복구되는 데이터는 어떤 시점의 데이터인가요?

  • 백업파일은 백업 완료시점의 데이터를 보관하므로 복구 DB는 백업 완료시점 기준의 데이터로 복구됩니다. 백업 완료시간은 "백업 현황 상세보기" 페이지에서 확인할 수 있습니다.
  • 시점 복원 기능을 이용하시면 복원이 가능한 범위 내에서 원하는 시간의 분 단위까지 복원할 수 있습니다.

Q. Stand Alone로 운영중인 DB 서버도 백업 및 복구가 가능한가요?

  • Stand Alone 서버도 DB 백업 및 복구 기능을 사용할 수 있습니다. 데이터가 삭제되어도 백업 보관일 설정 내에서 백업으로 데이터를 복구할 수 있습니다.
  • 단, Stand Alone 서버의 경우 시점 복원은 지원하지 않습니다.

백업 기능 소개

Cloud DB for MySQL에서는 사용자의 데이터를 안전하게 보관하기 위해 백업 기능을 지원합니다.

백업은 하루 한 번씩 매일 수행되며, 사용자 설정에 따라 최대 30일까지 보관할 수 있습니다.

DB 서버 백업 현황

등록된 DB 서버의 백업 현황을 조회합니다. 이 화면에서는 서비스명, 백업 보관일, 백업 시작 시간, 백업 데이터 크기, 마지막 백업 일자를 확인할 수 있습니다.

상세정보 보기를 클릭하면 해당 DB 서버 백업의 상세 내용을 확인할 수 있는 페이지로 이동합니다.

database-5-4-102

항목 설명
DB 서비스 이름 사용자가 지정한 서비스 이름
Backup 보관일 백업 파일의 보관일
Backup 시작시간 백업이 시작되는 시간
Backup 데이터 크기 완료된 백업 파일의 크기
마지막 Backup 일자 백업이 가장 마지막으로 수행된 일자
상세정보 보기 선택한 DB 서버에 대한 백업 내용을 상세히 볼 수 있는 페이지로 이동

백업 현황 상세보기

선택한 DB 서버의 백업 현황에 대한 상세 내용을 조회합니다.

database-5-4-103

항목 설명
Backup날짜 백업이 수행된 날짜(yyyy-mm-dd)
Backup시작시간 백업이 시작된 시간(hh:mm:ss)
Backup완료시간 백업이 완료된 시간(hh:mm:ss)
소요시간 백업이 완료되기까지 소요된 시간(hh:mm)
Backup크기 완료된 백업 파일의 크기(GB)
스토리지 계약 백업 파일을 저장하기 위한 스토리지의 계약 내용

Backup 파일 복원하기

Cloud DB for MySQL에서는 DB 복원 기능을 제공합니다. 보관 중인 백업 리스트 중 하나를 선택하여 DB를 복원할 수 있습니다.

복원 요청 시 신규 VM이 생성되며, 선택한 백업 파일로 복원됩니다. 이때 DB 서버는 Recovery 모드로 복원되며 데이터 조회만 가능합니다.

database-5-4-101

Step 1. 백업 파일 선택

복구하고자 하는 백업 파일을 선택합니다.

Step 2. 복원하기

Backup 파일 복원 버튼이 활성화됩니다. Backup 파일 복원 버튼을 클릭하면 다음 단계로 진행합니다.

Step 3. Backup 파일 정보 확인

선택한 백업 파일에 대한 정보를 확인합니다.

Step 4. DB 서버 이름 입력

백업 파일로 새로 생성될 DB 서버의 이름을 입력합니다. 생성된 DB 서버는 읽기 전용으로 생성됩니다.

시점 복원하기

Cloud DB for MySQL은 시점 복원 기능을 제공합니다.

복원 가능한 시간 범위 내에서 사용자가 원하는 시간대로 데이터를 복원할 수 있습니다.(분 단위까지 지원)

database-5-4-104

Step 1. 시점 복원하기

시점 복원 버튼을 클릭합니다. Backup 파일을 선택하면 시점 복원 버튼은 비활성화됩니다.

Step 2. DB 복원 가능한 시간 확인

DB 복원 가능한 시간을 확인합니다. 해당 범위 내에서 시간을 선택할 수 있습니다.

Step 3. DB 복원 시간 입력

복원 가능한 시간 범위 내에서 복원하고자 하는 시간을 입력합니다. 분 단위까지 입력이 가능합니다.

Step 4. DB 서버 이름 입력

백업 파일로 새로 생성될 DB 서버의 이름을 입력합니다. 생성된 DB 서버는 읽기 전용으로 생성됩니다.

Object Storage로 보내기

Cloud DB for MySQL은 백업 파일을 사용자의 Object Storage로 보내는 기능을 제공합니다.

사용자는 자신의 Access Key, Secret Key을 입력하고 원하는 Bucket에 백업 파일을 전송할 수 있습니다.

Access Key와 Secret Key는 마이페이지 > 계정관리 > 인증키 관리에서 확인 가능합니다.

전송된 백업 파일은 별도의 작업을 통해 다른 서버에 복구가 가능합니다.

database-5-4-105

Secure Zone에 생성된 DB 서버의 경우는 Secure Zone 상품에서 Policy를 추가해야 합니다.

database-5-2-112

① Source IP

  • Object Storage로 옮기고자 하는 파일이 있는 DB 서버의 DNS 정보와 포트 정보를 확인 후 선택합니다.

② Destination IP

  • Object Storage를 선택합니다.

③ Port

  • Port는 443으로 자동 입력됩니다.

Object Storage에 있는 백업 파일로 복구하기

Object storage에 받은 백업 파일을 사용자의 MySQL 서버로 복원하는 시나리오입니다.

Cloud DB for MySQL 상품에는 다음의 방식으로 복원이 불가합니다.

Cloud DB for MySQL 상품에 복원이 필요할 경우 별도의 mysql 서버에 복원 후 사용자의 schema를 dump export하여 복원하시기 바랍니다.

Object Storage에 있는 백업 파일로 복원 시 전제조건

1) 복원하기 전에 사용자의 별도 서버에 MySQL 5.7 버전이 설치되어 있어야 합니다.

2) MySQL 5.7이 아닌 하위 버전(MySQL 5.6, 5.5)의 경우 복원이 불가합니다.

3) 백업 파일을 복원 가능하도록 recovery하기 위해 xtrabackup binary가 필요합니다.

4) 복원할 MySQL 서버에 datadir 변수가 설정되어 있는 my.cnf 파일이 준비되어 있어야 합니다.

5) 복원 명령을 수행하는 OS user는 datadir 디렉터리에 접근 및 쓰기가 가능해야 합니다.

6) 복원 시 사용자 서버의 MySQL은 shutdown 상태여야 합니다.

복원 가이드

다음 복원 가이드는 Linux (CentOS)를 기준으로 작성됩니다.

다른 OS를 사용하실 경우 download link에서 사용 중인 OS 이미지에 맞는 xtrabackup binary를 다운로드해야 합니다.

Xtrabackup binary의 옵션에 대해서는 percona xtrabackup document를 참조하시기 바랍니다.

Step 1. 백업파일을 복원하기 위한 xtrabackup binary를 다운로드합니다.

다운로드: https://www.percona.com/downloads/Percona-XtraBackup-2.4/LATEST/

관련 문서: https://www.percona.com/doc/percona-xtrabackup/2.4/index.html

file 명 : percona-xtrabackup-2.4.13-Linux-x86_64.libgcrypt145.tar.gz

Step 2. 복원할 사용자의 서버에 다운로드한 xtrabackup binary 파일을 업로드합니다.

Step 3. Object storage에서 다운로드한 백업 파일을 사용자 서버에 업로드합니다.

백업 파일 이름의 포맷은 [백업날짜]_BACKUP.[object_storage_upload_unixtime]입니다.

예: 20190502_BACKUP.1556845606

Step 4. 사용자 서버의 OS에 로그인하여 아래와 같이 명령을 수행합니다.

사용자 서버에서 mysql 데몬이 실행 중인지 확인합니다. 실행 중이면 shutdown 후 아래 순서대로 복원을 진행합니다.

$ ps -ef | grep mysqld

업로드한 xtrabackup binary 파일을 압축 해제합니다.

$ tar xzf percona-xtrabackup-2.4.13-Linux-x86_64.libgcrypt145.tar.gz

$ cd percona-xtrabackup-2.4.13-Linux-x86_64

$ tar xzf percona-xtrabackup-2.4.13-Linux-x86_64.libgcrypt145.tar.gz
$ cd percona-xtrabackup-2.4.13-Linux-x86_64
$ XTRABACKUP_DIR=`pwd`

사용자가 미리 준비한 my.cnf 파일의 절대경로를 입력하세요.

$ MYSQL_CONF=/etc/my.cnf

백업 파일의 복구를 위해 임시 디렉터리를 생성합니다.

임시 디렉터리에는 백업 파일과 동일한 disk 유휴 공간이 있어야 합니다.

$ cd [백업파일을 저장할 경로]
$ mkdir backup
$ cd ./backup/
$ BACKUP_DIR=`pwd`

위에서 지정한 파일 및 binary의 경로가 잘 지정되었는지 확인합니다.

echo $XTRABACKUP_DIR
echo $MYSQL_CONF
echo $BACKUP_DIR

3개 파일 경로가 모두 잘 지정되었으면 지정한 임시 디렉터리에 백업파일을 복구합니다.

$ cd ${BACKUP_DIR}

cat [업로드한_백업파일] | ${XTRABACKUP_DIR}/bin/xbstream -x

$ ${XTRABACKUP_DIR}/bin/innobackupex --defaults-file=${MYSQL_CONF} --apply-log ${BACKUP_DIR}/

: completed OK!

다음 명령을 실행하면 복구된 파일이 사용자의 MYSQL에 datadir로 옮겨집니다.

datadir 변수에 설정된 디렉터리가 비어있지(empty) 않을 경우 에러가 발생합니다. 기존 파일이 있다면 옮기고 진행합니다.

정상적으로 완료되어 datadir 변수에 설정된 디렉터리에 데이터 파일 복사가 완료되었으면 mysql을 시작합니다.

$ ${XTRABACKUP_DIR}/bin/innobackupex --defaults-file=${MYSQL_CONF} --move-back  ${BACKUP_DIR}

$ service mysql start

연관 정보 바로가기

DB 서버 생성, 접속, 관리, 백업 및 이벤트 관련하여 아래 사용 가이드를 참고하실 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...