xtrabackup에서는 stream 방식을 지원한다. 때문에 다른 프로그램의 표준 입력을 통해 direct하는 기능을 활용할 수 있다.
백업 파일을 gz로 압축하기
gzip대신 압축시 multicore를 지원하는 pigz
를 사용하면 좋다.
$ yum install pigz
$ innobackupex \
--no-lock \
--compress \
--compress-threads=$THREAD_COUNT \
--user='$ID' \
--password='$PASSWORD' \
--stream=xbstream ./ | pigz -p $CORE > /PATH/TO/SAVE/NAME.tar.gz
스트림 백업을 Remote로 전송하기
-x
: xbstream binary를 extract한다.-C
: Remote서버의 경로를 지정한다.
$ innobackupex \
--no-lock \
--password='$PASSWORD' \
--stream=xbstream ./ | ssh root@xx.xx.xx.xx "xbstream -x -C /REMOTE/PATH"
압축 + 스트림 백업을 Remote로 전송하기
여기에서 압축은 qpress
를 사용한다.
$ yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm
$ yum intsall qpress
주의:
-x
옵션은 xbstream의 binary extract옵션이다. 압축 해제 옵션이 아니다. 때문에 데이터 복구시 파일을 전송 받은 Remote서버에서 decompress작업이 필요하다.
$ innobackupex \
--no-lock \
--compress \
--compress-threads=$THREAD_COUNT \
--user='$ID' \
--password='$PASSWORD' \
--stream=xbstream ./ | ssh root@xx.xx.xx.xx "xbstream -x -C /REMOTE/PATH"
$ innobackupex \
--decompress \
/REMOTE/PATH
궁금한거
innobackupex
에서 제공하는 --parallel
옵션의 정확한 역할을 모르겠다. 파일 복사에 대한 병렬 처리를 지원하는 것 같은데 --decompress
옵션이 제공된 경우에만 작동하는건가?..