메뉴 건너뛰기

XEDITION

기타

2024.07.04 20:48

DB 백업, 복원하기

ne 주소복사
조회 수 0 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

이번 시간에는 DB 백업, 복원하기 시간을 가졌습니다.

어떠한 원인에 의해 DB서버는 언제든지 문제가 생길 수 있으므로 백업은 매우 중요합니다.

가령, 서버를 포맷한다거나 이동으로 장애가 아닌 경우에도 사용할 수 있으므로 매우 중요한 기술입니다.

따라서 TEST를 위한 DB를 아무거나 무작정 사용할 수 없으므로 MariaDB를 사용하여 DB를 직접 만들고 사용하였습니다.

백업에 활용한 방식은 mysqldump 방식입니다.

이 방법은 innoDB 엔진에 한해 백업방식이며, 논리 백업 방식을 사용하면서도 간단하게 실행할 수 있어 무난히 사용할 수 있습니다.

다만, 데이터 수가 많아질수록 속도는 매우 느려지는 치명적인 단점을 지녔습니다.

 

 

백업 하기

1. 전체 데이터베이스 백업

 

1. mysqldump -u [아이디] -p [패스워드] -all-databases > [백업할 파일 명].sql

2. mysqldump -u [아이디] -p -all-databases > [백업할 파일 명].sql 

   [패스워드]

 

ex) mysqldump -uroot -proot -all-databaes > molang.sql

 

 

 

위와 같이 명령어를 입력하였을 경우, 사진처럼 molang.sql이 생긴 것을 확인할 수 있습니다.

해당 db가 소유하고 있는 모든 데이터베이스를 backup 하는 형태이며, 그만큼 실사용 db일 경우 용량이 클 수 있으므로 작업시간에는 상당한 오랜 시간이 소유될 수 있습니다.

 

 

 

2. 하나의 데이터베이스 백업

 

1. mysqldump -u [아이디] -p [패스워드] [데이터베이스 명] > [백업할 파일 명].sql

2. mysqldump -u [아이디] -p [데이터베이스 명] > [백업할 파일 명].sql

   [패스워드]

 

ex ) mysqldump -uroot -proot test > molang_test.sql

 

 

 

위와 다르게 데이터베이스 test만을 백업한 과정입니다. 전체 데이터베이스보다는 당연히 시간이 덜 소모되며, 해당 데이터베이스 내의 모든 TABLE의 정보가 필요할 경우 작업하는 방법입니다.

 

이 또한 해당 데이터베이스의 크기에 따라 작업시간, 용량이 결정되며 일부 데이터베이스만 DB 백업이 필요할 경우 주로 사용하는 방법입니다.

 

 

 

3. 특정 테이블만 백업하기

 

1. mysqldump -u [아이디] -p [패스워드] [데이터베이스 명] [테이블 명] > [백업할 파일 명].sql

2. mysqldump -u [아이디] -p [데이터베이스 명] [테이블 명] > [백업할 파일 명].sql

    [패스워드]

ex) mysql -uroot -proot test t_molang_test > molang_test_table.sql

 

 

 

데이터베이스 전체가 아닌, 데이터베이스 내의 특정 테이블만을 지목하여 백업하는 방법입니다.

이는 데이터베이스 내의 내용이 고객정보가 아닌 소모 값, 로그 등 지울 수 있는 DB의 내용을 소유하고 있는 특수한 데이터베이스일 경우 사용하는 백업 방식입니다.

 

혹은 저장공간이 부족하거나 반드시 백업해야 하지만 전체를 하기에는 시간이 너무 소유되는 경우 선택하는 방법이기 도 합니다.

 

 

 

4. 테이블 구조만 백업을 진행한다. 내용은 백업하지 않는다.


 

CREATE DEFINER=`root`@`%` PROCEDURE `MOLANG_PRO`(

)

LANGUAGE SQL

NOT DETERMINISTIC

CONTAINS SQL

SQL SECURITY DEFINER

COMMENT ''

BEGIN

END

이번 테스트를 위해서 프로시저 또한 준비하였습니다.

 

 

프로시저 없이, 테이블만 백업하는 방법

 

1. mysqldump -u [아이디] -p [패스워드] --no-data [데이터 베이스 명] > [백업할 파일 명].sql

2. mysqldump -u [아이디] -p --no-data [데이터 베이스 명] > [백업할 파일 명].sql

   [패스워드]

 

ex) mysqldump -uroot-proot --no-data test > molang_nodata.sql

 

 

 

 

 

프로시저 , 함수 포함 테이블만 백업하는 방법

 

1. mysqldump -u [아이디] -p [패스워드] --no-data --routines [데이터베이스 명] > [백업할 파일 명].sql

2. mysqldump -u [아이디] -p --no-data --routines [데이터베이스 명] > [백업할 파일 명].sql

   [패스워드]

 

ex) mysqldump -uroot -proot --no-data --routines test > m_tt.sql

 

 

 

 

 

옵션 활용하기

--no-data : 데이터 없이 구조만 백업
-all-databases : 모든 데이터베이스
--routines : 프로시저, 함수 포함

 

 

 

 

 

이제 백업한 데이터를 반대로 복원을 시작하겠습니다.

 

 

 

복구하기

 

1. 전체 데이터베이스 복구

 

1. mysql -u [아이디] -p [패스워드] < [백업 파일명].sql

2. mysql -u [아이디] -p < [백업 파일명].sql

   [패스워드]

 

ex) mysql -uroot -proot < molang.sql

 

 

 

 

 

 

2. 일부 데이터베이스 복구

 

1. mysql -u [아이디] -p [비밀번호] [데이터 베이스 명] < [백업 파일명].sql

2. mysql -u [아이디] -p [데이터 베이스 명] < [백업 파일명].sql

   [비밀번호]

 

ex) mysql -uroot -proot test < [백업 파일명].sql

 

 

 

 

 

 

3. 일부 테이블 복구하기

 

1. mysql -u [아이디] -p [비밀번호] [데이터베이스 명] < [백업 파일 명].sql

2. mysql -u [아이디] -p [데이터베이스 명] < [백업 파일 명].sql

  [비밀번호]

 

ex) mysql -uroot -proot test< molang_test_table.sql

 

 

 

 

4. 데이터 없이 테이블 구조만 복구하기

 

1. mysql -u [아이디] -p [비밀번호] [데이터베이스 명] < [백업 파일 명].sql

2. mysql -u [아이디] -p [데이터베이스 명] < [백업 파일 명].sql

  [비밀번호]

 

서로 다른 결과

 

프로시저 저장 없이 백업한 경우

ex) mysql -uroot -proot abc < molang_tt2.sql

 

 

 

 

프로시저 저장 후 백업한 경우

ex) mysql -uroot -proot abc < m_tt.sql

 

 

생성된 프로시저 또한 정상적으로 백업된 것을 확인할 수 있습니다.

 

 

만약 mysqldump 복원이 안된다면

2021.10.06 - [Computer/DB] - [MariaDB] mysqldump가 실행이 안 되는 경우

 

 

 

 

다시 확인하기

데이터베이스 단위로 백업된 파일은 다른 데이터베이스에도 넣을 수 있습니다. (복사, 붙여 넣기)

백업한 데이터는 복구 대상이 없으면 복구되지 않습니다. (테이블 백업했으나, 테이블이 없을 경우 백업이 되지 않는다.)

백업할 때는 mysqldump, 복구할 때는 mysql을 사용합니다.

특수문자는 특수문자 앞에 \을 통해 구분할 수 있습니다.

 

 

 

 

  mysqldump 없이 DB 복구하는 방법

2022.05.19 - [Computer/DB] - [MariaDB] DB 복구하기

 

[MariaDB] DB 복구하기

MariaDB, DB 복구하기 복구하기 위해 필요한 자료  DB가 날아가지 않았어도, 실행되지 않으면 백업을 할 수가 없다. 프로그램으로도, dump로도 접근이 불가능한 참사가 이루어진다. 보통 접속 못 하

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
27 IPTime원격접속  ne 2023.01.03 0
26 PC에;서 모바일 페이지로 보기  ne 2023.10.23 0
25 라이믹스 게시판 화면에 직접 이미지 콘트롤V 넣기에서 SQLSTATE[08S01]: Communication link failure: 1153 에러발생  ne 2023.12.27 0
24 통신사별 DNS서버주소  ne 2024.03.27 0
23 내도메인 도메인등록 방법  ne 2024.04.10 0
22 IPtime 에 qnap nas연결하여 웹서버 연결하기  ne 2024.04.11 0
21 앱션프린트 모바일로 집밖에서 집에있는 프린트로 프린트하기  ne 2024.05.11 0
20 Sever to Server Copy(freefilesync)  ne 2024.05.20 0
» DB 백업, 복원하기  ne 2024.07.04 0
18 공유기 80포트설정하기  ne 2024.07.05 0
17 내도메인사이트 등록하기  ne 2024.07.05 0
16 Let's인증서등록  ne 2024.07.07 0
15 리눅스 상대경로 설정하기  ne 2024.08.10 0
14 freedns패스워드변경하기  ne 2024.08.15 0
13 IP Time공유기 포트포워딩설정하기  ne 2024.08.24 0
12 건강,연금 가입여부 조건부서식  ne 2024.09.08 0
11 공유기하위 qnap ftp연결하기  ne 2024.09.10 0
10 백업현황  ne 2024.09.16 0
9 esxi osx설치  ne 2024.09.21 0
8 RaiDrive로 QNAP NAS연결하기  ne 2024.09.22 0
Board Pagination Prev 1 ... 2 Next
/ 2
위로