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=
path
mysqld가 실행중인 chroot jail의 기본 디렉토리.
path
값은 mysqld에 주어지는--chroot
옵션과 일치하도록하십시오.--debug
디버깅 출력을 활성화합니다.
--dryrun
,-n
작업을 수행하지 않고보고합니다.
--flushlog
모든 테이블이 잠긴 후에 로그를 플러시합니다.
--host=
,host_name
-h
host_name
로컬 서버에 TCP / IP 연결을 위해 사용하는 로컬 호스트의 호스트 이름입니다. 기본적으로 Unix 소켓 파일을 사용하여
localhost
에 연결합니다.--keepold
종료 후에 이전 (이름 변경된) 대상을 제거하지 않습니다.
--method=
command
파일 복사 방법 (
cp
또는scp
). 기본값은cp
입니다.--noindices
MyISAM
테이블의 전체 인덱스 파일을 백업에 포함되지 않습니다. 따라서 백업을 작고 빠르게 할 수 있습니다. 장전 된 테이블의 인덱스는 나중에 myisamchk -rq를 사용하여 재구성 할 수 있습니다.--password=
,password
-p
password
서버에 연결할 때 사용하는 암호입니다. 다른 MySQL 프로그램과는 달리,이 옵션은 암호 값은 옵션이 없습니다.
명령 행에서 암호를 지정하는 것은 안전하지 않은 것으로 간주한다. 섹션 6.1.2.1 "비밀번호 보안에 대한 최종 사용자 지침" 을 참조하십시오. 옵션 파일을 사용하면 명령 행에서 암호를 지정하는 것을 방지 할 수 있습니다.
--port=
,port_num
-P
port_num
로컬 서버에 연결할 때 사용하는 TCP / IP 포트 번호.
--old_server
MySQL 5.6에서 mysqlhotcopy는
FLUSH TABLES
을 사용하여 테이블의 플래시와 락을 실행합니다. 서버가이 문이 도입 된 5.5.3 이전의 경우tbl_list
WITH READ LOCK--old_server
옵션을 사용합니다.--quiet
,-q
오류 발생시 이외 침묵합니다.
--record_log_pos=
db_name
.tbl_name
지정된 데이터베이스
db_name
와 테이블tbl_name
마스터와 슬레이브의 상태를 기록합니다.--regexp=
expr
주어진 정규 표현식과 일치하는 이름을 가진 모든 데이터베이스를 복사합니다.
--resetmaster
모든 테이블을 잠근 후에 바이너리 로그를 재설정합니다.
--resetslave
모든 테이블을 잠근 후 마스터 정보 저장소 파일 또는 테이블을 재설정합니다.
--socket=
,path
-S
path
localhost
에 연결하는 데 사용되는 Unix 소켓 파일.--suffix=
str
복사 된 데이터베이스의 이름에 사용할 접미사.
--tmpdir=
path
임시 디렉토리. 기본값은
/tmp
입니다.--user=
,user_name
-u
user_name
서버에 연결할 때 사용하는 MySQL 사용자 이름.
--checkpoint
옵션 및 --record_log_pos
옵션에 필요한 테이블 구조에 대한 정보를 포함하여 추가 mysqlhotcopy 문서에 대해서는 perldoc
을 사용하십시오.
shell>perldoc mysqlhotcopy