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
위의 링크에서 확인
'생계 > MySQL' 카테고리의 다른 글
| percona toolkit pt-online-schema-change 설치 및 사용하기 (0) | 2025.11.23 |
|---|---|
| mysql collate 종류와 변경 방법 (0) | 2025.11.13 |
| mysql multi master 에 대해 알아보자 (0) | 2025.01.01 |
| [ mysql ] 날짜 파티션 검색 시 (첫번째) 파티션 프루닝 안되는 현상 (0) | 2024.12.24 |
| mysql 참조 제약 조건 생성시 자동 인덱스 생성 테스트 (0) | 2024.12.24 |