4.6.10 mysqlhotcopy - 데이터베이스 백업 프로그램
이 유틸리티는 MySQL 5.6.20에서 비추천에서 MySQL 5.7에서 삭제됩니다.
mysqlhotcopy는 원래 Tim Bunce에 의해 작성되었으며 제공된 Perl 스크립트입니다. FLUSH TABLES , LOCK TABLES 및 cp 또는 scp 를 사용하여 데이터베이스를 백업합니다. 데이터베이스 또는 단일 테이블을 백업하기위한 빠른 방법이지만, 데이터베이스 디렉토리가 놓여져있는 것과 같은 머신에서만 실행할 수 없습니다. mysqlhotcopy은 MyISAM 테이블 및 ARCHIVE 테이블에만 작동합니다. Unix에서 실행됩니다.
mysqlhotcopy를 사용하려면 백업 할 테이블 파일에 대한 읽기 권한이 테이블의 SELECT 권한, RELOAD 권한 ( FLUSH TABLES 를 실행 할 수 있도록) 및 LOCK TABLES 권한 (테이블을 잠글 수 있도록)를 가지고 있지 않으면 안됩니다.
shell> mysqlhotcopy db_name [ /path/to/new_directory ]
shell> mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory
지정된 데이터베이스에서 정규 표현식과 일치하는 테이블을 백업합니다.
shell> mysqlhotcopy db_name ./ regex /
테이블 이름의 정규 표현식은 물결표 ( " ~ ")를 프리픽스로 사용함으로써 부정 할 수 있습니다.
shell> mysqlhotcopy db_name ./~ regex /
mysqlhotcopy는 다음 옵션을 지원합니다. 이들은 명령 행 또는 옵션 파일의 [mysqlhotcopy] 그룹과 [client] 그룹에 지정할 수 있습니다. MySQL 프로그램에서 사용되는 옵션 파일에 대한 자세한 내용은 섹션 4.2.6 "옵션 파일 사용" 을 참조하십시오.
표 4.17 mysqlhotcopy 옵션
| 형식 | 설명 |
|---|---|
| --addtodest | 대상 디렉토리의 이름 변경을하지 않고 (존재하는 경우) 단순히 파일을 추가 |
| --allowold | 대상이 존재하는 경우 중지하지 않고 _old 접미사를 추가하여 이름 변경 |
| --checkpoint | 체크 포인트 엔트리를 삽입 |
| --chroot | mysqld가 작동 chroot 감옥의 기반 디렉토리 |
| --debug | 디버깅 로그를 작성한다 |
| --dryrun | 작업을 수행하지 않고 보고서 |
| --flushlog | 모든 테이블이 잠긴 후에 로그를 플러시 |
| --help | 도움말 메시지를 표시하고 종료 |
| --host | 지정된 호스트에서 MySQL 서버에 연결 |
| --keepold | 종료 후에 이전 (이름 변경된) 목적 디렉토리를 삭제하지 |
| --method | 파일을 복사하는 방법 |
| --noindices | 전체 인덱스 파일을 백업에 포함하지 |
| --old_server | FLUSH TABLES tbl_list WITH READ LOCK을 지원하지 않는 서버에 연결하지 |
| --password | 서버에 연결할 때 사용하는 비밀번호 |
| --port | 연결에 사용하는 TCP / IP 포트 번호 |
| --quiet | 오류 발생시 아닌 자동 |
| --regexp | 주어진 정규 표현식과 일치하는 이름을 가진 모든 데이터베이스를 복사 |
| --resetmaster | 모든 테이블을 잠근 후에 바이너리 로그를 리셋 |
| --resetslave | 모든 테이블을 잠근 후 master.info 파일을 리셋 |
| --socket | 로컬 호스트에 연결하는 데 사용하는 Unix 소켓 파일 |
| --tmpdir | 임시 디렉토리 |
| --user | 서버에 연결할 때 사용하는 MySQL 사용자 이름 |
--help,-?도움말 메시지를 표시하고 종료합니다.
--addtodest대상 디렉토리의 이름 변경을하지 않고 (존재하는 경우) 단순히 파일을 추가합니다.
--allowold대상이 존재하는 경우 중단없이
_old접미사를 추가하여 이름을 바꿉니다.--checkpoint=db_name.tbl_name지정된 데이터베이스
db_name과 테이블tbl_name에 체크 포인트 엔트리를 삽입합니다.--chroot=pathmysqld가 실행중인 chroot jail의 기본 디렉토리.
path값은 mysqld에 주어지는--chroot옵션과 일치하도록하십시오.--debug디버깅 출력을 활성화합니다.
--dryrun,-n작업을 수행하지 않고보고합니다.
--flushlog모든 테이블이 잠긴 후에 로그를 플러시합니다.
--host=,host_name-hhost_name로컬 서버에 TCP / IP 연결을 위해 사용하는 로컬 호스트의 호스트 이름입니다. 기본적으로 Unix 소켓 파일을 사용하여
localhost에 연결합니다.--keepold종료 후에 이전 (이름 변경된) 대상을 제거하지 않습니다.
--method=command파일 복사 방법 (
cp또는scp). 기본값은cp입니다.--noindicesMyISAM테이블의 전체 인덱스 파일을 백업에 포함되지 않습니다. 따라서 백업을 작고 빠르게 할 수 있습니다. 장전 된 테이블의 인덱스는 나중에 myisamchk -rq를 사용하여 재구성 할 수 있습니다.--password=,password-ppassword서버에 연결할 때 사용하는 암호입니다. 다른 MySQL 프로그램과는 달리,이 옵션은 암호 값은 옵션이 없습니다.
명령 행에서 암호를 지정하는 것은 안전하지 않은 것으로 간주한다. 섹션 6.1.2.1 "비밀번호 보안에 대한 최종 사용자 지침" 을 참조하십시오. 옵션 파일을 사용하면 명령 행에서 암호를 지정하는 것을 방지 할 수 있습니다.
--port=,port_num-Pport_num로컬 서버에 연결할 때 사용하는 TCP / IP 포트 번호.
--old_serverMySQL 5.6에서 mysqlhotcopy는
FLUSH TABLES을 사용하여 테이블의 플래시와 락을 실행합니다. 서버가이 문이 도입 된 5.5.3 이전의 경우tbl_listWITH READ LOCK--old_server옵션을 사용합니다.--quiet,-q오류 발생시 이외 침묵합니다.
--record_log_pos=db_name.tbl_name지정된 데이터베이스
db_name와 테이블tbl_name마스터와 슬레이브의 상태를 기록합니다.--regexp=expr주어진 정규 표현식과 일치하는 이름을 가진 모든 데이터베이스를 복사합니다.
--resetmaster모든 테이블을 잠근 후에 바이너리 로그를 재설정합니다.
--resetslave모든 테이블을 잠근 후 마스터 정보 저장소 파일 또는 테이블을 재설정합니다.
--socket=,path-Spathlocalhost에 연결하는 데 사용되는 Unix 소켓 파일.--suffix=str복사 된 데이터베이스의 이름에 사용할 접미사.
--tmpdir=path임시 디렉토리. 기본값은
/tmp입니다.--user=,user_name-uuser_name서버에 연결할 때 사용하는 MySQL 사용자 이름.
--checkpoint 옵션 및 --record_log_pos 옵션에 필요한 테이블 구조에 대한 정보를 포함하여 추가 mysqlhotcopy 문서에 대해서는 perldoc 을 사용하십시오.
shell>perldoc mysqlhotcopy