본문 바로가기
데이터베이스/MySQL, MariaDB

MySQL DB백업 및 원격서버 파일 전송

by 배추잠자리 2021. 5. 11.
반응형

준비는 Putty  ! ! !

먼저 푸티를 실행하여 디비서버를 접근해줍니다 !

 

개발하면서 리눅스를 접근할일이 많지는 않지만,

리눅스 커맨드 명령어들에 대해 익숙해지고 많이 알수록

개발 외적으로 편해지는 부분이 있는것 같습니당~ 

 

 

putty를 이용해 DB서버 접근

 

 

SSH ( root 계정 ) 로그인

 

1. SSH 접속 계정( DB 백업할 서버 접속 )
2. 백업파일을 생성할 폴더로 이동
 ▶ example :  cd /hdd/  
3. 백업하기 
mysqldump -u root -p --databases 스키마명 > 파일명.sql
▶ example : mysqldump -u root -p --databases testdb > testdb.sql
** --databases 옵션은 schema 생성 스크립트가 포함되게 백업된다. 때문에 같은 schema로 복구 시 유용.

mysqldump -u root -p 스키마명 > 파일명.sql 
example : mysqldump -u root -p testdb > testdb2.sql
** --databases 옵션을 제외하면 schema 생성 스크립트가 미 포함 백업된다. 다른이름의 schema로 복구 시 유용.
4. 파일 목록 조회를 해보면 testdb.sql 파일을 확인 할 수 있다.
▶ example : 명령어 ls , ll  등
5. DB백업 파일을 다른 서버로 파일 전송
scp -P 포트번호 db백업 파일경로 root@ip: 전송받을 파일경로
▶ example : scp -P 22 /hdd/testdb.sql root@111.111.222.222:/hdd/
6. 파일전송을 받은 다른 서버에서 sql파일을 실행하여 백업DB 풀기
mysql -u root -p < 파일명.sql

▶ example : mysql -u root -p < testdb.sql

 

------ 21.06.04 추가 -----

- 특정 테이블을 제외하고 백업하기
mysqldump -u root -p DBname --ignore-table=DBname.tbname1 --ignore-table=DBname.tbname2 > 저장파일명.sql

▶ example  ( DBname이 test 일때 )
mysqldump -u root -p test --ignore-table=test.tb_board --ignore-table=test.tb_user_info > test.sql


DB전체를 백업하기에 용량이 너무 크거나, 테스트용 DB를 새로 만드는 경우 또는 log를 관리하는 테이블의 경우에는 데이터가 워낙 많기 때문에 복구가 오래걸린다. 굳이 필요없는 테이블을 제외하고 백업하는 상황에 사용하면 된다.

------ 21.07.23 추가 -----

mysqldump -u[userId] -p [스키마명] [테이블명] > 파일명.sql

▶ example  ( userId가 test / 스키마명이 testBak일때 )
mysqldump -utest -p testBak tb_user_info tb_test_info tb_mapping_info > test.sql


test 라는 userId의 testBak 스키마에 있는 tb_user_info, tb_test_info, tb_mapping 테이블 3개만 백업을 하는 예시입니다.

 

MySQL 디비 백업 예제입니당

순서대로 따라해보시면 어렵지 않게 백업 후 다른 서버로 파일전송까지 가능합니다.

 

[keyWord]

mysql db dump, mysql db 덤프, mysql db 복구, mysql db backup, mysql db 백업, mysql 특정 테이블, mysqldump, mysql 덤프, mysql 백업, maria db 덤프, maria db 백업, maria db 특정테이블, mysql 원격서버, mysql scp, mysql 디비 백업

반응형

댓글