AWS RDS에서 로컬 MariaDB 데이터 불러오기

승등·2024년 5월 26일

AWS를 사용하여 프로젝트 배포를 하던 중 기존 로컬환경에서 사용하던 DB의 데이터를 RDS에 생성한 DB에서 불러오게 되었다.

mysqldump 명령어로 데이터 옮기기

$ mysqldump -u <local_user> \
    --databases <database_name> \
    --single-transaction \
    --compress \
    --order-by-primary  \
    -p<local_password> | mysql -u <RDS_user> \
        --port=<port_number> \
        --host=<host_name> \
        -p<RDS_password>

로컬 환경에서 터미널을 실행하여 위의 명령어를 입력해준다.

주의: local_password, RDS_password 입력 시 p 뒤에 공백 없이 입력해야 한다.

입력 값

  • local_user : local DB의 user명
  • database_name : local DB명
  • local_password : local DB의 비밀번호
  • RDS_user : RDS DB 인스턴스의 DB user(마스터 유저명)
  • port_number : RDS DB 인스턴스의 포트 번호.(defalut - mariaDB : 3306)
  • host_name : RDS DB 인스턴스의 Host URL(엔드포인트)
  • RDS_password : RDS DB 인스턴스의 비밀번호

설정

  • --single-transaction : 로컬 데이터베이스에서 로드한 모든 데이터가 단일 시점에서 일치하는지 확인하기 위해 사용, mysqldump가 데이터를 읽는 동안 데이터를 변경하는 다른 프로세스가 있는 경우, 이 파라미터를 사용하여 데이터 무결성을 유지
  • --compress : 데이터를 Amazon RDS로 전송하기 전에 로컬 데이터베이스에서 데이터를 압축하여 네트워크 대역폭 사용을 줄이기 위해 사용
  • --order-by-primary : 기본 키를 기준으로 각 테이블의 데이터를 정렬하여 로드 시간을 줄이기 위해 사용

 

5만건이 조금 넘는 데이터였는데 쉽고 간단하게 옮길 수 있었다.


참고

[AWS 공식문서] 외부 MariaDB 또는 MySQL 데이터베이스에서 RDS for MariaDB 또는 MySQL 또는 RDS for MySQL DB 인스턴스로 데이터 가져오기

profile
기록, 코딩보다 어렵다-!

0개의 댓글