메뉴 건너뛰기

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로도 접근이 불가능한 참사가 이루어진다. 보통 접속 못 하

?

  1. No Image 02Jul
    by ne
    2025/07/02 by ne
    Views 0 

    스마트폰 반복알림 끄기

  2. GoolDriver

  3. 모뎀,허브,공유기,와이파이공유기

  4. CCTV

  5. No Image 25Nov
    by ne
    2024/11/25 by ne
    Views 0 

    리눅스 압축명령어 옵션 사용법

  6. freedns.afraid.org 에 문제

  7. qnap nas,pc-backup 백업현황

  8. RaiDrive로 QNAP NAS연결하기

  9. No Image 21Sep
    by ne
    2024/09/21 by ne
    Views 0 

    esxi osx설치

  10. 백업현황

  11. 공유기하위 qnap ftp연결하기

  12. 건강,연금 가입여부 조건부서식

  13. IP Time공유기 포트포워딩설정하기

  14. freedns패스워드변경하기

  15. 리눅스 상대경로 설정하기

  16. Let's인증서등록

  17. 내도메인사이트 등록하기

  18. 공유기 80포트설정하기

  19. No Image 04Jul
    by ne
    2024/07/04 by ne
    Views 0 

    DB 백업, 복원하기

  20. Sever to Server Copy(freefilesync)

Board Pagination Prev 1 ... 2 Next
/ 2
위로