[SQL] SQL File(백업, 복원)

박미영·2023년 4월 24일
0

📌SQL File

📍실습환경 만들기

sql_ws 폴더를 만들고 그 하위에서 실습하기로 하자.

  • cmd
cd Documents	# Documents 이동
mkdir sql_ws 	# 디렉토리 생성
cd sql_ws		# sql_ws 이동
code . 			# 해당 위치에서 vs 코드 열기

  • VS CODE



📍SQL 파일 실행 1 (로그인 이후)

  • 파일 생성
CREATE TABLE police_Station
(
    name varchar(16), 
    address varchar(128)
);



  • VS CODE에서 생성한 파일 데이터베이스에 넣기
source Filename.sql

  • 테이블 확인
show tables;
DESC police_station;



📍SQL 파일 실행 2 (외부에서 바로 실행)

  • 로그인과 동시에 파일을 데이터베이스에 넣는 방법
mysql -u root -p zerobase < test02.sql

로그인 후 확인



  • zerobase 데이터베이스의 내용을 zerobase.sql 파일을 생성해 저장
mysqldump -u root -p zerobase > zerobase.sql



📍Database Backup

SQL File 로 Database 를 백업할 수 있다.

- 로컬 데이터베이스 AWS 데이터베이스에 저장

  • AWS RDS (database-1) 서비스가 사용 가능한 상태에서 접속
mysql -h "엔드포인트" -P 3306 -u admin -p	# 외부 데이터베이스 로그인

  • zerobase Database 확인 및 사용

  • AWS RDS (database-1) 의 zerobase Database 를 복원
 source zerobase.sql;


  • 결과 확인




📍Table Backup

Table 단위로도 백업할 수 있다.

1. 로컬에서 작업했던 zerobase 데이터베이스의 celeb 테이블을 celeb.sql 파일에 백업

mysqldump -u root -p zerobase celeb > celeb.sql
mysqldump -u root -p zerobase celeb --default-character-set utf8 > celeb.sql



2. AWS RDS (database-1) 서비스가 사용 가능한 상태에서 접속

mysql -h "엔드포인트" -P 3306 -u admin -p	# 외부 데이터베이스 로그인



3. 복원

 source celeb.sql

⚠️ERROR 발생
백업, 복원 과정에서 테이블에 한글이 있어서 그런지 한글이 깨지는 상황이 발생한 듯 했다.

ERROR:
ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'ÿþ-'.

💡해결
백업할 때 --default-character-set utf8 코드 추가

mysqldump -u root -p zerobase celeb --default-character-set utf8 > celeb.sql

SQL 파일 백업 ERROR

 source celeb.sql



4. 복원 확인



📌문제

1. AWS RDS (database-1) 의 zerobase 데이터베이스를 백업하세요.
• 주의> AWS RDS database 를 백업할 경우 다음의 옵션을 추가합니다.

mysqldump --set-gtid-purged=OFF -h <"엔드포인트"> -P <portnum> -u <admin> -p<password> <database_name> > <backup_file_name.sql>



2. AWS RDS (database-1) 에 admin 계정으로 로그인한 후 Database (zerodb) 를 생성하세요.
(DEFAULT CHRACTER SET utf8mb4)

  • 로그인
mysql -h <"엔드포인트">  -P 3306 -u admin -p
PASSWORD
  • DB 생성
create database zerodb default character set utf8mb4;



3. 앞서 생성한 사용자 (zero@%) 에게 zerodb 의 모든 권한을 부여하세요.

  • 권한 부여
grant all on zerodb.* to 'zero'@'%';
  • 권한 확인
show grants for 'zero'@'%';



4. 앞서 백업한 zerobase 백업 파일을 zerodb 에서 실행하세요.

source backup_zerobase.sql



5. police_station 테이블에 아래 데이터를 INSERT 하기 위한 SQL 파일을 생성하세요.



6. SQL 파일을 실행하여 AWS RDS (database-1) zerobase 의 police_station 테이블에 데이터를 INSERT 하고 확인하세요.



7. AWS RDS (database-1) zerobase 의 police_station 테이블을 SQL 파일로 백업하세요.

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



8. SQL 파일을 실행하여 AWS RDS (database-1) zerodb 의 police_station 테이블을 zerobase 와 동일하게 만들고 확인하세요.

 use zerodb;
 source insert.sql;





"이 글은 제로베이스 데이터 취업 스쿨 강의를 듣고 작성한 내용으로 제로베이스 데이터 취업 스쿨 강의 자료 일부를 발췌한 내용이 포함되어 있습니다."

0개의 댓글