문뜩 상세 옵션이 궁금해서 정리
--apply-log-only
- Redo Log 적용단계만 수행되고 다른 Cash Reecovery 단계는 무시된다.
로그만을 적용하고 데이터베이스를 실제로 복원하지 않는다.
Commit 되지 않은 트랜잭션의 롤백단계 방지용
- 증분 백업시에 사용
--backup
- --target-dir 에 지정한 디렉토리에 데이터베이스를 백업한다.
--backup-lock-retry-count=
- 메타데이터 락을 획득하려는 시도 횟수
--backup-lock-timeout=
- 메타데이터 락을 획득하려는 시도시의 제한 시간(초)
--binlog-info (OFF | ON | LOCKLESS | AUTO)
- xtrabackup 이 binlog 로그 좌표를 검색하는 방법 지정
- OFF : binlog 정보 검색 없이 백업한다.
LOCK BINLOG FOR BACKUP 명령어 실행안함
- ON : binlog 정보 검색 활성화
가능한 경우 LOCK BINLOG FOR BACKUP 명령어를 실행하여 binlog-lock의 공유 장금을 적용하여 일관성을 보장한다.
- LOCKLES : 락을 최소화하여 테이블 잠금없이 binlog 정보를 백업한다.
LOCK BINLOG FOR BACKUP 명령어 실행안함
xtrabackup_binlog_info 파일 생성안함
- AUTO : 기본값
백업 대상서버의 have_backup_safe_binlog_info 서버 변수값에 따라 자동으로 ON, LOCKLESS로 전환된다.
have_backup_safe_binlog_info 변수가 나타내는 정보는 MySQL 서버의 현재 상태에 따라 동적으로 변경된다.
--check-privileges
- 백업을 수행하기전에 백업을 수행하기 위한 권한이 있는지 확인한다.
--close-files
- xtrabackup은 테이블스페이스를 열때 일반적으로 DDL 작업을 올바르게 관리하기 위해 파일 핸들을 닫지 않는다.
테이블스페이스 수가 너무 많아 제한에 맞지 않을 경우 더 이상 액세스할 수 없으면 파일 핸들을 닫도록 이 옵션을 사용할 수 있다.
- 옵션 사용시 일관성 없는 백업을 생성할 수 있다. (주의)
--compact
- 보조 인덱스(Secondary Index) 페이지를 건너뛰어 백업 파일의 크기를 최적화하는 옵션이다.
주요 인덱스(primary index)는 백업 파일에 유지되지만, 보조 인덱스(Secondary Index)는 필요한 경우에만 유지되고 그렇지 않으면 생략된다.
--compress
- 지정된 압축 알고리즘을 사용하여 트랜잭션 로그 파일, 메타데이터 파일을 포함한 모든 출력 데이터를 압축한다.
- quicklz 알고리즘만 지원하고 있다.
결과 파일은 qpress 아카이브 형식을 갖는다.
- xtrabackup 에서 생성된 모든 \*.qp 파일은 기본적으로 단일 파일 qpress 아카이브이며 qpress 파일 아카이버로 추출하고 압축을 풀 수 있다.
--compress-chunk-size=
- 압축 스레드의 작업 버퍼 크기(바이트), 기본값 64K
--compress-threads=
- 병렬 데이터 압축을 위해 사용하는 스레드 수 지정, 기본값 1
- 병력 압축(--compress-threads)은 병렬 백업 (--parallel)와 함께 사용할 수 있다.
ex) --parallel=4 --compress --compress-threads=2
4개의 스레드로 병렬 압축 백업, 압축 스레드로 2개의 스레드를 사용한다.
--copy-back
- 백업된 데이터를 실제 데이터 디렉토리로 복원
- 데이터 디렉토리에 비워져 있어야함
데이터가 있을 경우 덮어쓰여질 수 있다.
--core-file
- xtrabackup이 비정상 종료될 때 발생한 Core Dump를 저장하는 경로를 지정하는 옵션
--databases=
- 백업 대상 데이터베이스 및 테이블 목록을 지정
- "databasename1[.table_name1] databasename2[.table_name2] . . .". 형식으로 사용
--databases-exclude=name
- 백업시 제외할 데이터베이스명 지정
- --databases 옵션보다 우선순위가 높다.
--databases-file=
- 백업대상 데이터베이스, 테이블의 파일 경로 지정
--datadir=DIRECTORY
- 백업할 MySQL 서버의 datadir 과 동일하게 지정
- my.cnf 가 있을 경우 해당 디렉토리에서 읽어야됨
- 별도의 경로 지정시 별도로 지정해야됨
- --copy-back, --move-back 옵션과 같이 사용하면 xtrabackup 은 --datadir 디렉토리를 참조한다.
- 백업을 위해 datadir의 파일시스템 수준에서 READ 및 EXECUTE 권한이 필요함
--debug-sleep-before-unlock
- xtrabackup 테스트에서 사용되는 디버그 전용 옵션
--decompress
- --compress 옵션을 사용하여 백업받은 .qp 확장자의 파일의 압축 해제
- --parallel 옵션 사용시 여러 파일을 동시 처리 가능
- 압축해제를 위해 qpress 유틸티가 필요하며, 액세스할수 있는 경로에 있어함
- 압축 파일을 삭제하기 위해서는 --remove-original 옵션을 사용해야함
- xtrabackup 은 압축 파일을 자동으로 삭제 하지 않는다.
--decrypt
- --encrypt 옵션을 사용하여 백업한 백업에서 .xbcrypt 확장자 파일을 복호화한다.
- --parallel 옵션 사용시 여러 파일을 동시 처리 가능
- 압축 파일을 삭제하기 위해서는 --remove-original 옵션을 사용해야함
- xtrabackup 은 압축 파일을 자동으로 삭제 하지 않는
--defaults-extra-file=[MY.CNF]
- xtrabackup에서 MySQL 서버와의 통신에 필요한 추가 설정을 지정하는데 사용
- ex) xtrabackup.cnf 파일에 아래와 같이 설정
[client]
user=username
password=password
host=localhost
port=3306
- /path/to/xtrabackup.cnf 파일에 저장된 설정을 사용하여 MySQL 서버에 연결하여 백업을 처리한다.
xtrabackup --backup --defaults-extra-file=/path/to/xtrabackup.cnf --target-dir=/path/to/backup_directory
--defaults-file=[MY.CNF]
- my.cnf 파일의 경로를 지정하여 해당 파일에 저장된 설정을 참조한다.
--defaults-group=GROUP-NAME
- my.cnf 파일에서 읽어야하는 그룹을 설정
- --default-group 옵션은 mysqld_multi 배포에서 사용한다.
--defaults-group-suffix=
- my.cnf 파일에서 그룹 이름에 접미사를 추가하는 방식을 사용한다.
- concat(group, suffix)
--dump-innodb-buffer-pool
- InnoDB 버퍼풀의 상태를 파일로 덤프하는데 사용 (기본 OFF)
--dump-innodb-buffer-pool-timeout
- InnoDB 버퍼풀 덤프가 완료되었는지 확인하기 위해 innodb_buffer_pool_dump_status 값을 모니터링 해야하는 시간(초) (기본 10초)
--dump-innodb-buffer-pool-pct
- InnoDB 버프풀을 덤프할때 사용할 버퍼풀의 비율
--encrypt=ENCRYPTION_ALGORITHM
- xtrabackup 으로 백업시 지정한 알고리즘으로 압축
--encrypt-key=ENCRYPTION_KEY
- --encrypt 옵션을 사용할때 지정한 ENCRYPTION_KEY를 사용하도록 설정
--encrypt-key-file=ENCRYPTION_KEY_FILE
- --encrypt 옵션을 사용할때 지정한 ENCRYPTION_KEY_FILE 에 저장된 암호화 키를 사용하도록 설정
--encrypt-threads=
- 병렬 암호화/복호화에 사용될 스레드수를 지정
--encrypt-chunk-size=
- 암호호 스레드에 대한 작업 버퍼의 크기 지정(바이트 단위)
- 암호화 사용시 xbcloud/xbstream 청크 크기를 조정하려면 --encrypt-chunk-size, --read-buffer-size 변수를 모두 조정해야한다.
--export
- 테이블을 내보내기 위한 파일을 만든다.
--extra-lsndir=DIRECTORY
- 백업시에 이 디렉토리에 xtrabackup_checkpoints, xtrabackup_info 파일의 복사본을 저장한다.
--force-non-empty-directories
- --copy-back, --move-back 옵션 사용시 대상 디렉토리가 비어있지 않을 경우에도 처리한다.
- xtrabackup 은 백업을 수생할때 타켓 디렉토리가 비어 있는지 확인하고 처리하는데 --force-non-empty-directories 옵션 지정시 디렉토리가 비어 있지 않아도 백업을 수행한다.
--ftwrl-wait-timeout=SECONDS
- xtrabackup 이 실행하기전에 FLUSH TABLES WITH READ LOCK을 차단하는 쿼리를 기다려야 하는 시간(초)를 지정한다.
- 제한 시간이 만료된 후에도 여전히 그러한 쿼리가 있는 경우 xtrabackup은 오류와 함께 종료된다.
- 기본값은 0이며, 이 경우 쿼리가 완료될 때까지 기다리지 않고 즉시 FLUSH TABLES WITH READ LOCK을 시작한다.
--ftwrl-wait-threshold=SECONDS
- FLUSH TABLES WITH READ LOCK를 차단하는 장기 실행 쿼리를 식별하기 위한 최소 임계값 (기본값 60초)
- FLUSH TABLES WITH READ LOCK은 이러한 장기 실행 쿼리가 있을 경우 시작되지 않습니다.
- --ftwrl-wait-timeout이 0인 경우 이 옵션은 효과가 없습니다.
- FLUSH TABLES WITH READ LOCK을 실행 하기 전에 –ftwrl-wait-timeout 설정 만큼 기다렸는데도 –-ftwrl-wait-threshold(기본값 60초)에 설정된 시간 보다 더 오래 실행되는 쿼리가 있으면 백업을 취소시켜 lock 대기로 인한 이슈를 최소화 시킨다.
--ftwrl-wait-query-type=all|update
- 전역 잠금을 실행하기 전에 완료할 수 있는 쿼리 유형을 정의
- xtrabackup은 백업중에 데이터가 변경되지 않도록 전역 잠금을 건다.
실행 과정에서 명령문을 만나면 명령문이 완료될 때까지 기다렸다가 전역 잠금을 건다.
- ALL : 전역 잠금을 실행하기 전에 모든 쿼리가 완료될 때까지 대기 (기본값)
- SELECT : 전역 잠금을 실행하기 전에 SELECT 문이 완료될 때까지 대기
- UPDATE : 전역 잠금을 실행하기 전에 UPDATE 문이 완료될 때까지 대기
--galera-info
- 백업시의 로컬 노드 상태를 포함하는 xtrabackup_galera_info 파일을 생성한다.
- Percona XtraDB Cluster 백업할때 사용하는 옵션
- 백업 잠금을 사용하여 백업을 하는 경우 아무런 효과가 없다.
--generate-new-master-key
- copy-back 작업을 할때 새 마스터 키를 생성한다.
--history=name
- PERCONA_SCHEMA.xtrabackup_history 테이블에서 백업 기록을 추적하도록 하는 옵션
--incremental
- 증분 백업시 사용하는 옵션
- --incremental-lsn, --incremental-basedir 옵션 지정가능
- 두 옵션 모두 지정하지 않으면 백업 기본 디렉토리에 백업
--incremental-basedir=DIRECTORY
- 증분 백업시 기본 전체 백업이 저장되는 디렉토리
--incremental-dir=DIRECTORY
- 중분 백업시에 전체 백업과 증분 백업을 결합하여 새로운 전채 백업을 저장하는 디렉토리
--incremental-force-scan
- 증분 백업을 생성할 때 전체 변경된 페이지 비트맵 데이터를 사용할 수 있는 경우에도 백업에 사용할 인스턴스의 데이터 페이지에 대한 전체 스캔을 강제로 수행한다.
--incremental-history-name=name
- 중분백업의 기반이 되는 PERCONA_SCHEMA.xtrabackup_history 테이블에 저장되는 백업 시리즈의 이름 지정
--innodb-checksum-algorithm=name
- InnoDB 가 페이지 체크섬을 계산하는데 사용하는 알고리즘
- 사용가능한 알고리즘
- CRC32, INNODB, NONE, STRICT_CRC32, STRICT_INNODB, STRICT_NONE
--incremental-history-uuid=UUID
- 중분백업의 기반이 되는 PERCONA_SCHEMA.xtrabackup_history 테이블에 저장되는 백업 시리즈에 UUID 를 지정한다.
--incremental-lsn=LSN
- 증분백업시에 --incremental-basedir을 지정하는 대신 LSN 을 지정
--innodb-log-arch-dir=DIRECTORY
- archived log 디렉토리를 지정
- --prepare 옵션과 함께 사용함
--innodb-undo-directory=name
- undo tablespace 의 경로
--innodb-undo-tablespace=
- 사용할 undo tablespace 수
--keyring-file-data=FILENAME
- 키랑 파일의 경로, --xtrabackup-plugin-dir 옵션과 같이 사용
--kill-long-queries-timeout=
- xtrabackup이 FLUSH TABLES WITH READ LOCK 을 시작하고 이를 차단하는 실행중인 쿼리를 종료하는 사이에 대기하는 시간(초)
- 기본값은 0초로 쿼리 종료를 하지 않는다.
- --kill-long-queries-timeout=60 60초동안 실행 중인 쿼리가 있으면 해당 쿼리를 중단하고 백업을 실행한다.
--kill-long-query-type=select|all
- FLUSH TABLES WITH READ LOCK을 차단하는 쿼리를 종료할때 대상 쿼리 유형 지정
- 기본값 : select
--lock-ddl
- 백업시 서버에서 모든 DDL 작업을 차단
--lock-ddl-per-table
- xtrabackup이 복사를 시작하기 전과 백업이 완료될 때까지 각 테이블에 대한 DDL을 잠근다.
--lock-ddl-timeout
- 지정한 시간내에 LOCK TABLES FOR BACKUP 이 되지 않을 경우 백업을 중단한다.
--log-bin[=name]
- 로그 시퀀스의 기본 이름
--log-copy-interval=
- 로그 복사 스레드 확인 사이의 시간 간격을 밀리초 단위로 지정(기본값 1초)
--login-path=
- 로그인 파일에서 이경로를 읽는다.
--move-back
- 백업의 모든 파일을 백업디렉토리에서 원래 위치로 이동
--no-backup-locks
- FLUSH TABLES WITH READ LOCK 대신 백업 잠금을 사용할지 여부를 설정
- 백업 잠금은 서버에서 지원해야 옵션이 적용됨
- 기본적으로 활성화되어 있어 --no-backup-locks를 사용하여 옵션을 비활성화한다.
--no-defaults
- xtrabackup이 MySQL 설정 파일 (예: my.cnf)의 기본값을 사용하지 않도록하는 옵션
--no-lock
- InnoDB 테이블을 백업하는 동안 잠금을 설정하지 않도록 하는 옵션
- 백업중에 다른 트랜잭션이나 쿼리 실행가능
--no-version-check
- xtrabakcup --backup 시 자동 버전확인 비활성화
--open-files-limit=
- 백업 작업 중에 열린 파일의 제한 설정
- 백업 작업 중에 동시에 열 수 있는 InnoDB 데이터 파일의 수를 제한
--parallel=
- 병렬 작업에 사용할 스레드 수 (기본값 1)
--password=PASSWORD
- 데이터베이스에 연결할 때 사용할 비밀번호
--prepare
- 백업본으로 복구 수행
--print-defaults
- xtrabackup 실행 시 현재 설정값을 표시
- xtrabackup이 어떤 설정값을 사용하는지 확인하고 디버깅할 때 유용함
--print-param
- 데이터 파일을 원래 위치로 다시 복사하여 복원할 수 있는 매개 변수를 xtrabackup에서 출력한다.
--read-buffer-size[=#]
- 읽기 버퍼 크기 설정 (기본값 10MB)
- 이 옵션으로 xbcloud/xbstream 청크 크기를 기본값인 10MB에서 조정가능
- 암호화를 사용할 때 xbcloud/xbstream 청크 크기를 조정하려면 --encrypt-chunk-size 변수와 --read-buffer-size 변수를 모두 조정해야함
--rebuild-indexes
- --prepare 시 로그 적용후 InnoDB 테이블에서 보조 인덱스를 재구축
--rebuild-threads=
- 백업에서 인덱스를 재구성할 스레드 수를 정의. --prepare 및 --rebuild-index와 함께만 사용한다.
--redo-log-version=
- 백업의 redo log 파일의 버전 지정, --prepare 와 함께 사용
--reencrypt-for-server-id=
- 복제 복제본이나 Galera 노드와 같이 암호화된 백업을 가져온 서버 인스턴스와 다른 server_id로 서버 인스턴스를 시작할 수 있다.
- xtrabackup이 새 server_id를 기반으로 ID를 가진 새 마스터 키를 생성하여 키링 파일에 저장한 후 테이블스페이스 헤더 내의 테이블스페이스 키를 다시 암호화한다.
--remove-original
- 복호화 및 압축 해제 후 .qp, .xbcrypt 및 .qp.xbcrypt 파일 삭제
--rsync
- rsync를 사용하여 InnoDB가 아닌 모든 파일을 복사한다.
- --stream과 함께 사용할 수 없다.
--safe-slave-backup
- FLUSH TABLES WITH READ LOCK 을 실행하기전에 replica SQL thread 를 중지하고 SHOW STATUS 의 Slave_open_temp_tables가 0이 될때까지 백업 시작을 대기한다.
- 열려 있는 임시 테이블이 없으면 백업이 수행되고, 열려 있는 임시 테이블이 없을 때까지 SQL 스레드가 시작되고 중지된다.
- --safe-slave-backup-timeout 초 후에 Slave_open_temp_tables가 0이 되지 않으면 백업이 실패한다.
- 백업이 완료되면 replica SQL thread 가 다시 시작된다.
- 이 옵션은 임시 테이블 복제를 처리하기 위해 구현되었으며 행 기반 복제에서는 필요하지 않다.
--safe-slave-backup-timeout=SECONDS
- Slave_open_temp_tables가 0이 될 때까지 기다려야 하는 시간(초) (기본값 300초)
--secure-auth
- 클라이언트가 이전(4.1.1 이전) 프로토콜을 사용하는 경우 서버에 대한 클라이언트 연결을 거부한다.
- 기본적 활성화. 비활성화하려면 --skip-secure-auth 를 사용
--server-id=
- 백업 중인 서버 인스턴스
--server-public-key-path=name
- PEM 형식의 public RSA 키 파일 경로
--skip-tables-compatibility-check
- 엔진 호환성 경고를 비활성화
--slave-info
- 복제본 서버를 백업할때 유용한 옵션
- 소스 서버의 binlog position 을 출력한다.
- xtrabackup_slave_info 파일에 CHANGE MASTER 명령으로 binlog position 을 기록한다.
- 백업으로 복제 서버를 시작하고 xtrabackup_slave_info 파일에 저장된 binlog position 으로 CHANGE MASTER 명령을 실행하여 이 소스에 대한 새 복제본을 설정할 수 있다.
--ssl
- ssl 연결을 활성화 한다.
--ssl-ca
- 신뢰할 수 있는 SSL CA 목록이 포함된 파일의 경로 지정
--ssl-capath
- PEM 형식의 신뢰할 수 있는 SSL CA 인증서가 포함된 디렉터리 경로지정
--ssl-cert
- PEM 형식의 X509 인증서가 포함된 파일의 경로지정
--ssl-cipher
- 연결 암호화에 사용할 수 있는 암호화 목록
--ssl-crl
- 인증서 해지 목록이 포함된 파일의 경로
--ssl-crlpath
- 인증서 해지 목록 파일이 포함된 디렉터리의 경로
--ssl-key
- PEM 형식의 X509 키가 포함된 파일의 경로
--ssl-mode
- ssl 모드 지정
--ssl-verify-server-cert
- 서버에 연결할 때 사용되는 호스트 이름에 대해 서버 인증서 일반 이름 값을 확인
--stats
- xtrabackup이 지정된 데이터 파일을 스캔하고 인덱스 통계를 출력
--stream=name
- 모든 백업 파일을 지정된 형식의 표준 출력으로 스트리밍. 현재 지원되는 형식은 xbstream, tar
--tables=name
- 부분백업시사용 이름이 일치하는 테이블만 백업
--tables-compatibility-check
- 엔진 호환성 경고 활성화
--tables-exclude=name
- 백업에서 제외할 테이블명
--tables-file=name
- 백업 대상 테이블을 특정 파일에서 읽어올 때 사용, 파일명 지정
--target-dir=DIRECTORY
- 백업을 저장할 디렉토리 지정
- 디렉터리가 존재하지 않으면 디렉터리를 생성한다.
- 디렉터리가 존재하고 비어 있으면 백업성공
- 파일이 있을 경우 운영 체제 오류 17가 발생하고 백업 실패
- 백업을 수행하려면 --target-dir 값으로 제공하는 디렉터리에 대한 파일 시스템 수준의 READ, WRITE 및 EXECUTE 권한이 필요하다.
--throttle=
- 초당 복사되는 청크 수를 제한합니다. 청크 크기는 10MB
- 대역폭을 10MB/s로 제한하려면 옵션을 1: --throttle=1로 설정한다.
--tls-version=name
- tls 버전 지정 (TLSv1, TLSv1.1, TLSv1.2)
--to-archived-lsn=LSN
- 로그를 적용할 LSN을 지정, --prepare 옵션과 함께 사용
--transition-key
- 옵션 사용시 키링 볼트 서버에 엑세스 하지 않고도 백업 처리 가능
- xtrabackup은 지정된 암호문에서 AES 암호화 키를 가져와 백업 중인 테이블 공간의 테이블 공간 키를 암호화하는데 사용한다.
--user=USERNAME
- MySQL DB 계정 지정
--version
- xtrabackup 버전 출력
--xtrabackup-plugin-dir=DIRNAME
- 키링 플러그인이 포함된 디렉터리의 절대 경로
'MySQL' 카테고리의 다른 글
CPU 사용률 높은 Thread (세션) 확인 (0) | 2022.10.05 |
---|---|
lock session 찾기 (0) | 2022.10.01 |
auto_increment 값 모니터링 (0) | 2022.09.28 |
Query Cache (0) | 2022.09.24 |
Index Hint (0) | 2022.09.22 |