Linux/SQL

DB 백업하기

GGkeeper 2021. 12. 8. 22:24

실습> DB 백업하기

현재 시간 동기화
[root@localhost ~]# rdate -s time.bora.net
[root@localhost ~]# date
2021. 12. 01. (수) 19:10:38 KST

[root@localhost ~]# date +%Y (년도만 출력)
2021


[root@localhost ~]# date +%m (월 만 출력)
12


[root@localhost ~]# date +%d (일 만 출력)
01


[root@localhost ~]# date +%Y%m%d
20211201
[root@localhost ~]# date +%Y-%m-%d
2021-12-01

[root@localhost ~]# mysqldump -A > DBALL_$(date +%Y%m%d).sql
mysqldump: Got error: 1146: "Table 'entest.entest2_tb3' doesn't exist" when using LOCK TABLES


[root@localhost ~]# ls -l DBALL_20211201.sql 
-rw-r--r--. 1 root root 5108 12월  1 19:12 DBALL_20211201.sql


백업은 mysqldump 로 출력 리다이렉션으로 받는다.
mysqldump 명령어는 백업 받을 때 사용하는 명령어이다.
기본이 화면출력이므로 파일로 저장하기 위해서는 > 를 이용한다.

DMBM 전체를 mysqldump1.sql 로 저장한다.
한가지 문제점은 자료가 많으면 파일이 커지므로 복구할 때 어려움이 있다.
이 문제는 반드시 고민해봐야 한다.
# mysqldump -A > mysqldump1.sql

mysql DB를 mysqldump2.sql 로 백업한다.
# mysqldump mysql > mysqldump2.sql

실습> naver_db 를 백업받고 복구해보자.

백업 받을 때는 : > (출력 리다이렉션)
복구 할 때는 : < (입력 리다이렉션)

데이터베이스 naver_db 를 naver_db.sql 로 백업한다.
# mysqldump naver_db  > naver_db.sql
# mysql -e "drop database naver_db"
# mysql -e "show  databases"

naver_db.sql 파일에는 데이터베이스를 생성하고 선택하는 명령어가 없으므로 
관리자가 전부 설정해야 한다.
# mysql < naver_db.sql
ERROR 1046 (3D000) at line 22: No database selected

데이터베이스 naver_db를 생성한다.
# mysql -e "create database naver_db"

데이터베이스를 선택하지 않았기 때문에 에러가 발생했다.
# mysql < naver_db.sql
ERROR 1046 (3D000) at line 23: No database selected

반드시 naver_db.sql 파일을 복구할 경우에는 naver_db 를 명시해야 한다.
# mysql naver_db < naver_db.sql

실습> 파일 자체를 백업

데이터 디렉터리 : /var/lib/mysql
백업 디렉터리 : /backup  drwx------. 1 root root

1. 백업 디렉터리 생성
[root@localhost ~]# mkdir -m 700 /backup
[root@localhost ~]# ls -ld /backup/
drwx------. 2 root root 6 12월  1 19:24 /backup/

2. 백업 디렉터리 복사
[root@localhost ~]# yum -y install rsync
[root@localhost ~]# mkdir /backup/$(date +%Y%m%d)

/var/lib/mysql 가 없으면 mysql 디렉터리가 생기고 파일을 백업한다.
[root@localhost ~]# rsync -a /var/lib/mysql /backup/20211201
[root@localhost ~]# ls /backup/20211201/
mysql

/var/lib/mysql/ 가 있으면 그 디렉터리 안에 존재하는 모든 파일을 백업한다.
[root@localhost ~]# rsync -a /var/lib/mysql/ /backup/20211201


정보보호 관리 체계

https://isms.kisa.or.kr/


ISMS 인증마크 확인
가비아 : http://gabia.co.kr
카페24 : http://cafe24.co.kr

https://kisa.or.kr/public/laws/laws3.jsp

'Linux > SQL' 카테고리의 다른 글

information_schema  (0) 2022.01.30
DBMS 포트 리슨 방법  (0) 2021.12.08
트리거 실습 (회원 탈퇴 테이블을 이용한 트리거 생성)  (0) 2021.12.08
[DBMS] 저장 함수 실습  (0) 2021.12.08
[DBMS] 저장 프로시저 실습  (0) 2021.12.08