Changes between Initial Version and Version 1 of MariaDB mysqlhotcopy


Ignore:
Timestamp:
Nov 11, 2025, 6:48:26 PM (4 weeks ago)
Author:
yongwoo
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • MariaDB mysqlhotcopy

    v1 v1  
     1[[PageOutline]]
     2= mysqlhotcopy =
     3mysqlhotcopy는 더이상 지원을 하지 않을 예정이다. 따라서 mysqlhotcopy를 써야 하는 상황이면 ["MariaDB mariabackup" mariabackup]을 사용하는 것이 낫다.
     4
     5mysqlhotcopy는 일반적인 응급상황시 대비용으로 백업하는 용도로는 제일 낫다. 데이터베이스 파일 자체를 백업하기 때문에 속도도 빠르고 다루기도 쉽기 때문이다. 더군다나 여러 문자셋이 하나의 데이터베이스에 존재해도 한 번에 데이터베이스 전부를 백업할 수 있다. 하지만 결정적인 단점이 있다.
     6 - '''MyISAM 테이블밖에 지원이 되지 않는다.'''
     7 - MySQL 버전이 달라지면 백업을 복원해도 제대로 작동하지 않는다. 특히 4.1 미만 버전에서 4.1 버전으로 바뀌었을 때 이 것 때문에 난리가 난 적이 있다.
     8
     9그 외에도 다음과 같은 단점이 있다.
     10 - 펄 스크립트이므로 펄이 설치되어있어야 작동한다.
     11 - 윈도우용 MySQL에서는 해당 명령이 없다. Perl 스크립트이기 때문에 굳이 사용한다면 Perl을 설치하면 가능할 수도 있겠다.
     12
     13따라서 mysqlhotcopy를 이용해 백업할 것인지 ["MariaDB mysqldump" mysqldump]를 이용해 백업할 것인지 잘 판단해야 한다.
     14
     15== 1. 사용하는 방법 ==
     16'''mysqlhotcopy -u''' [mysql user 이름] '''-p''' [암호] '''--allowold''' [데이터베이스 이름] [데이터 파일이 저장될 경로명 혹은 새로운 데이터베이스명]
     17
     18 - 다른 MySQL 명령과는 달리 -p 옵션 다음에 빈칸이 들어가는 점을 주의해야 한다.
     19=== 예 ===
     20{{{
     21mysqlhotcopy -u root -p password --allowold test ~
     22}}}
     23
     24=== 2. 권한 ===
     25mysqlhotcopy를 사용하려면 권한이 필요하다.
     26
     27 - 일단 flush tables 명령을 실행하기 위해서는 [mysql user 이름]에 mysql의 reload 권한이 필요하다.
     28{{{
     29mysql> update user set reload_priv='Y' where user='[mysql user 이름]';
     30mysql> flush privileges;
     31}}}
     32
     33 * 그리고 백업 파일을 생성하기 위해서는 mysqlhotcopy를 실행하는 사용자에게(MySQL user 이름이 아니다. 혼동하지 말 것) 리눅스의 파일 권한이 필요하다.(MySQL 권한이 아닌 리눅스의 파일 권한이다. 혼동하지 말 것).
     34  - 우선 백업파일을 생성할 권한이 있어야 하고,
     35  - mysql 데이터 파일을 읽을 수 있는 권한이 필요하다.
     36
     37 * 이런 복잡한 권한 때문에 골치아프기 싫다면 root로 명령을 실행하는 것을 추천한다.
     38
     39----
     40[관련 링크] : [WikiStart 처음으로], ["MariaDB mysqldump" mysqldump], ["MariaDB 증분 백업" 증분 백업], ["MariaDB mariabackup" mariabackup]
     41----
     42