[SQL] Database Backup

MJ·2024년 2월 8일

SQL

목록 보기
12/23

Database Backup

mysqldump -u username -p dbname > backup.sql #특정 database backup
mysqldump -u username -p --all-databases > backup.sql #모든 database backup

워크 스페이스에서 실행하면 그 폴더에 백업파일이 생성

mysqldump -u root -p zerobase > zerobase.sql

Database Restore

데이터베이스를 백업한 SQL File을 실행하여 그 시점으로 복구하거나 이전
SQL File 실행 방법과 동일

로컬에서 저장한 백업파일을 리모트 데이터베이스로 보내기 (sql_ws 폴더 위치에서 실행)

mysql -h "엔드포인트" -P 3306 -u admin -p
패스워드입력
show databases;
use zerobase;
source zerobase.sql
show tables;

로컬에서 작업한 테이블들이 리모트 데이터베이스에도 생긴 것을 확인 할 수 있음


Table Backup

테이블 단위로도 백업 가능

mysqldump -u username -p dbname tablename > backup.sql

Table Restore

데이터베이스 restore 방법과 동일


Table schema Backup

데이터를 제외하고 테이블 생성 쿼리만 백업할 수 있음

mysqldump -d -u username -p dbname tablename > backup.sql #특정 table schema backup
mysqldump -d -u username -p dbname > backup.sql #모든 table schema backup

mysqldump -d -u root -p zerobase snl_show > snl.sql

문제1. AWS RDS(database-1)의 zerobase 데이터베이스를 백업
AWS RDS database를 백업할 경우 --set-gtid-purged=OFF 옵션 추가

mysqldump --set-gtid-purged=OFF -h "엔드포인트" -P 3306 -u admin -p zerobase > backup_zerobase.sql

문제2-1. 데이터를 입력하기 위한 SQL 파일 생성

insert into tablename values();
insert into tablename values();

위와 같은 쿼리를 포함하는 파일을 insert.sql로 저장

문제2-2. 앞서 생성한 SQL파일을 실행하여 AWS RDS(database-1) zerobase의 police_station테이블에 데이터를 insert하고 확인

use zerobase;
select * from police_station; #비어있는 테이블
source insert.sql
select * from police_station; #데이터가 입력 됨
  • vscode에서 작업을 하고 결과를 확인하니 한글이 깨짐
    -> cmd chcp이 949인데 chcp 65001로 변경하고 작업을 해야한다거나 vscode의 encoding을 바꿔야 한다는 글을 봄
    -> cmd chcp 변경 후 select만 다시 했더니 여전히 한글 깨짐 (여기서 police_station에 데이터를 입력하기 전으로 restore 했으면 어땠을지...)
    -> 윈도우 제어판 - 시계 및 국가 - 국가 또는 지역 - 관리자 옵션 - 시스템 로캘 변경 - "Beta : 세계 언어 지원을 위해 unicode UTF-8사용" 체크 까지 해준 후 , zerobase.sql 을 실행해 restore 함
    -> insert.sql 실행해 다시 데이터 입력, 테이블 확인, 한글이 더이상 깨지지 않음
    cmd를 건드린게 도움이 된 건지 제어판에서 설정한게 도움이 된 건지는 모르겠음;)

0개의 댓글