문뜩 상세 옵션이 궁금해서 정리

 

--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

+ Recent posts