생계/MySQL2025. 11. 6. 16:27
반응형

 

mysql 에서 데이터이관 방법들 정리해보자. 



1. 데이터내리기

  1) mysqldump

  별도 설치 필요없는 기본 툴로 mysqldump 가 있다. 백업용으로 많이 사용하지만 병렬처리 불가하여 

  큰 테이블 작업에는 적합하지 않지만 논리적 백업 방식이라 원하는 테이블, 원하는 조건만 백업 가능. 

  ex) --where 옵션으로 원하는 데이터만 필터하여 내리기 가능

 # 자주쓰는 옵션들

--set_gtid_purged off
--no_create_info
--single_transaction
--extended_insert
--max_allowed_packet=512m



2) outfile 로 저장

- load data 를 쓰기위해 csv 로 형식으로 내린다.
- secure_file_priv (지정되지 않았다면 ) 변경후 재기동
- local 에서 원격으로 붙어 파일을 내리려면 local_infile 설정 필요


3) 개별 툴 방식

 - mysqlsh
병렬 처리 가능. 기본 설치된 util 이 아니라개별설치 필요

* 비슷하게 mydumper loader 라는 util 도 있다. 

- xtrabackup 

  물리적 방식의 백업 복구 툴. 개별 설치 필요하고 아래 링크 글 참조

https://riorio.tistory.com/812

 

위의 방법들은 서로 호환이 안된다. (ex. mysqldump 로 받은 파일을 load data 로 복원할수 없다. )

 

2. 복원하기 

1) source

mysqldump 로 받은 파일은 insert 로 표현된 일반 sql 이다. 
 - mysql -uroot -p  < abc.sql 
 - cli 접속후 source abc.sql 
  
위의 두가지 중 한가지로 복원 가능하다. 

# 로드시 use db;  "reading table information..."  행걸릴때 
 => mysql -u --skip-auto-rehash

 

# 설정들 
 - 강제로 gtid 무시옵션
 - autocommit
 - unique check
 - foreign check


2) load data

 .csv 로 받은 파일로 복원하기. 

 innodb_buffer_pool에서 대량 행 캐싱 후 디스크 동기화 방식으로 빠르다. (옵티마이저를 거치지 않는다.) 
 


3) 개별 툴 방식

 - mysqlsh

 - xtrabackup 

 위의 링크에서 확인 


반응형
Posted by 돌고래트레이너