본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


RDBMS

DBMS 공부 6 - 데이터베이스 백업과 복원 , 데이터베이스 로그

반응형

1. 데이터베이스 백업

  • dbms 전체 내용을 특정한 파일에 저장하는 것을 말한다
  • mysql은 콘솔에서 mysqldump 명령어를 사용하여 백업한다.

 

콘솔에서 백업

 

전체 데이터베이스 백업

mysqldump -u아이디 -p --all-databases > 덤프파일명.sql

 

특정 데이터베이스 백업

mysqldump -u아이디 -p --databases DB명 > 덤프파일명.sql

 

특정 테이블 백업(데이터포함)

mysqldump -u아이디 -p DB명 테이블명 > 덤프파일명.sql

 

스키마만 백업

mysqldump -u아이디 -p --no-data

 

데이터만 백업

mysqldump -u아이디 -p --no-create-info

 

 

전체데이터베이스를 백업하라
world DB를 백업하라
city테이블을 백업하라 
country 테이블의 스키마/데이터 각각 백업하라

mysqldump -uroot -p --all-databases > dump_all.sql
mysqldump -uroot -p --databases world > world.sql
mysqldump -uroot -p world city> city.sql
mysqldump -uroot -p --no-data world > no_data.sql
mysqldump -uroot -p --no-create-info world > no_schema.sql

 

 

2. 데이터 복원(Restore)

 

mysql -u아이디 -p DB명 <파일명 // DB 복원
mysql -u아이디 -p < 파일명    // 전체복원
mysql -u아이디 -p DB명 테이블명  < 파일명   // 테이블만 복원 

 

- city 테이블을  삭제 했다가 복원하라.

drop table city ;

mysql -uroot -p world < city.sql // city.sql의 내용을 읽어 world db에 city 테이블이 추가된다 

 

truncate : 테이블을 초기 상태로 만듬  (데이터와 , 메모리 공간도 없어짐)

delete: 메모리 공간은 남아있고 데이터만 지워짐

 

3.데이터 베이스 로그

 

에러로그

  • MySQL 구동과 모니터링 , Query 에러에 관련된 메시지를 포함

 

일반 로그(general Log)

  • 전체 쿼리에 대하여 General log를 활성화 시켜서 저장 가능
  • * 프로덕션 모드에서는 성능저하로 인해 사용하지 않는다.

 

슬로우 쿼리 로그 (slow query log)

  • logn_query_time에 설정된 시간 이상을 소요한 쿼리를 기록

 

이진 로그 (Binary Log)/ 릴레이 로그(relay log)

  • MySQL 쿼리를 수행하면서 쌓는 로그 , 시점 복구 등을 수행하는 역할을 한다 
  • Replication에서 사용됨
  • 바이너리 로그 (master) / 릴레이로그(slave)에서 사용 , 내용은 동일

- my.cnf log 설정

 

로그를 남기기 위해서 my.cnf 파일에 설정을 추가해줘야한다.

 

[mysqld]
# Only allow connections from localhost
# bind-address = 127.0.0.1
# mysqlx-bind-address = 127.0.0.1

# 로그파일 지정
log = mysql.log
# 수정 로그파일 지정
log-update = mysql-update.log
#바이너리 로그
log-bin = log-bins.log
# 슬로우 쿼리 로그
log-slow-queries = mysql-slow.log
# 아래 시간 이상걸리는 쿼리는 로깅된다.
long_query_time = 5

#데이터엔진 지정
default-storage-engine=InnoDB
반응형