AWS RDS 생성, SQL File 실행/백업/복구

이수연·2024년 7월 27일
0

[Chapter 11.] AWS RDS

AWS RDS란?

  • AWS RDS: Amazon Relational Database Service
    • 아마존에서 제공하는 관계형 데이터베이스 서비스
    • Cloud 상에 데이터베이스 구축
  • AWS 회원가입: https://portal.aws.amazon.com/billing/signup#/start

AWS RDS에서 MySQL RDS 생성 후 원격으로 접속하기

  • 서비스 중 RDS 선택 -> 데이터베이스 생성
  • DB 식별자 선택 -> 보안 그룹 ID 클릭 -> 인바운드 규칙 추가하여 외부에서도 접근 가능하도록 설정
  • 원격으로(=외부에서) MySQL RDS 접속하는 방법
    • 터미널: mysql -h "엔드포인트" -P 포트 -u <마스터 사용자 이름:admin> -p 후 root pw 입력
    • 참고 내 정보) mysql -h "database-1.cpys04aeky7e.ap-northeast-2.rds.amazonaws.com" -P 3306 -u admin -p ("쌍따옴표"를 붙이지 않아도 됨)
  • AWS RDS 중지
    • 프리 버전은 750시간 사용할 수 있다는 제약 사항이 있어, 사용하지 않을 때는 중지하자!
    • DB식별자 체크(선택) -> 상단 작업: 중지 클릭 -> 스냅샷 생성: 아니요
      • 최대 7일 동안 중지 가능함. 즉, 7일 이후에는 자동으로 다시 시작함.
  • AWS RDS 다시 시작하는 방법
    • DB 식별자 페이지 들어감 -> 상단 작업: 시작 클릭

[Chapter 12.] SQL File

SQL File 실행하기

  • SQL File: SQL 쿼리를 모아놓은 파일

실행 방법1. 로그인 이후

  • VS Code 실행 -> sql_ws 폴더 오픈: test01.sql로 파일 생성 -> 상단 Terminal에서 New Terminal 실행
% cd sql_ws #sql_ws 폴더 위치로 이동
sql_ws % mysql -u root -p zerobase  # zerobase 데이터베이스에 바로 접속
mysql> source test01.sql  #zerobase 데이터베이스에 생성한 test01.sql 파일을 넣겠다는 뜻 = SQL File 실행
desc police_station; #결과 확인

실행 방법1. 외부에서 바로 실행

% mysql -u username -p database < </path/filename.sql>

sql_ws % mysql -u root -p zerobase < test02.sql #zerobase 데이터베이스에 생성한 test02.sql 파일을 넣겠다는 뜻 = SQL File 실행
desc crime_status; #결과 확인

Database Backup

  • SQL File로 Database를 백업할 수 있다
% mysqldump -u username -p dbname > backup.sql #특정 Database Backup
# dbname에 있는 테이블들을 backup.sql이라는 이름의 SQL File로 백업하여 생성하는 것
% mysqldump -u username -p --all-databases > backup.sql #모든 Database Backup

-> VSCode에서 backup.sql 확인: 백업한 시점의 데이터가 확인됨 (실습파일명: zerobase.sql)

Database Backup Restore

전체 zerobase 데이터베이스 자체 백업/복구

  • 데이터베이스를 백업한 SQL File을 실행하여 그 시점으로 복구하거나 이전할 수 있다(SQL File 실행 방법과 동일)
# 외부 터미널에서 생성해둔 나의 AWS RDS 접근
mysql -h "database-1.cpys04aeky7e.ap-northeast-2.rds.amazonaws.com" -P 3306 -u admin -p
use zerobase;

# local에 있던 table들을 원격으로 AWS RDS에 백업해두기
# AWS RDS(database-1)의 zerobase 데이터베이스를 복원
source zerobase.sql 

Table 단위 백업: tablename을 명시하여 backupname.sql로 백업

sql_ws % mysqldump -u username -p dbname tablename > backupname.sql
# celeb.sql로 celeb 테이블만 백업
sql_ws % mysqldump -u root -p zerobase celeb > celeb.sql

# AWS RDS 재접속 후 celeb 삭제
mysql -h "database-1.cpys04aeky7e.ap-northeast-2.rds.amazonaws.com" -P 3306 -u admin -p zerobase
drop table celeb;

# AWS RDS의 zerobase에서 celeb 복구
source celeb.sql;

mysql> show tables;
+--------------------+
| Tables_in_zerobase |
+--------------------+
| celeb              |
| crime_status       |
| police_station     |
| snl_show           |
| test1              |
| test2              |
+--------------------+
6 rows in set (0.02 sec)

Table Schema Backup

  • 데이터를 제외하고 테이블 생성 쿼리(규칙)만 백업할 수 있다 => -d 옵션
  • zerobase 데이터베이스에 snl_show 테이블을 SQL File인 snl.sql로 Backup하기
#특정 Table Schema Backup
% mysqldump -d -u username -p dbname tablename > backupname.sql 
#모든 Table Schema Backup
% mysqldump -d -u username -p dbname > backupname.sql 

# Local 데이터베이스에서 snl_show 테이블의 Schema만 백업
sql_ws % mysqldump -d -u root -p zerobase snl_show > snl.sql

0개의 댓글