XtraBackup과 rsync의 차이점은 무엇입니까?


11

네, 둘 다에 strace를 실행할 것입니다 ...하지만 알고 싶습니다 ...

  • XtraBackup은 rsync -ac src dest 이상 무엇을하고 있습니까?
  • XtraBbackup의 특별한 점은 무엇입니까?
  • XtraBackup은 mysqld와 어떻게 상호 작용합니까?

1
이것은 "XtraBackup에 대해 들어 보았지만 쇄빙선 질문을하는 것이 두렵습니다"중 하나입니다. 나는 이런 유형의 질문을 좋아한다 !!! +1 !!!
RolandoMySQLDBA

1
@RolandoMySQLDBA : 저는 생각을 불러 일으키고 사람들이 지식을 공유하도록합니다. 그것이 우리가 더 나아지는 방법입니다. 고독한 레인저가되는 것은 그리 재미 있지 않습니다. :-)
randomx

답변:


16

rsync 는 한 장소에서 다른 장소로 데이터를 바이트 단위로 복사하는 것입니다. 마지막 rsync까지 여러 rsync를 수행하면 매우 빠릅니다. 그런 다음 MySQL을 완전히 종료하고 한 번 더 rsync를 수행합니다.

XtraBackup 은 rsync처럼 동작하지만 삶의 목적을 지시하는 포괄적 인 도구입니다. 모든 InnoDB 데이터 및 테이블 스페이스 복사를 시작할 수 있습니다. 내부적으로 검사 점을 생성하고 InnoDB 응급 복구를 수행하여 완벽한 특정 시점 백업을 수행 할 수 있습니다. XtraBackup에는 증분 백업을 생성 할 수있는 추가 기능도 있습니다. 또 다른 추가 기능은 InnoDB 로그 파일을 생성하는 것입니다. MyISAM 테이블의 고정 된 복사를 제공하는 래퍼 소프트웨어도 있습니다.

두 방법 모두 훌륭합니다. XtraBackup은 InnoDB 트랜잭션 기능을 초기 복사의 대부분에 구현합니다. Xtrabackup은 기존 MySQL 인프라에 드롭 할 수있는 파일을 만듭니다. 말할 것도없이 XtraBackup은 계측 백업 및 구체화 된 매우 유용한 InnoDB 파일을 제공합니다.

rsync를 사용하면 복사 프로세스를 여러 번 관리하고 mysql을 종료하여 rsync를 한 번만 수행해야합니다.

하나를 사용하는 것이 개인적인 취향 일 수 있습니다. XtraBackup은 복사 된 데이터보다 다소 큰 백업을 만듭니다. 나는이 질문의 독자에게 방법의 선택을 남겨둔다.

사용이 간단하기 때문에 rsync를 선호합니다. 프로세스가 시작되기 전에 특정 시점을 결정할 수 있습니다. 또한 mysqld를 잠 그거나 종료하는 것과 같은 제어를 수행 할 수있을 때, 어떤 순서로든 지정할 수 있습니다. .

두 백업 스타일 모두 공통점이 있습니다 . XtraBackup을 사용하면 백업 프로세스가 완료되고 XtraBackup을 신뢰해야 할 때까지 실제 포인트 인 시간이 이동 대상이됩니다 (지금까지 20 만 번 다운로드). Facebook은 가장 큰 사용자 중 하나입니다. 그것은 많은 신뢰를 얻었습니다). 즉, 자정에 XtraBackup을 시작하고 백업이 오전 2:20까지 지속되면 백업의 실제 시점은 오전 2:20입니다. rsync를 사용하면 수동으로 여러 rsync를 수행 한 다음 최종 rsync 이전에 'service mysql stop'을 발행 할시기를 결정해야하므로 동일한 이동 목표 문제점이 있습니다.

이러한 방법은 rsync 방법을 사용하여 mysqld를 종료해야 한다는 점에서 다릅니다 . 반면 XtraBackup은 mysqld와 독립적으로 작동합니다. 실제로 XtraBackup은 래퍼 소프트웨어를 통해 MyISAM 테이블을 다룰 때를 제외하고는 mysqld와 전혀 상호 작용하지 않습니다. XtraBackup은 mysqld와는 별개의 InnoDB 스토리지 엔진 작업을 사용하여 모든 기능을 갖춘 InnoDB 데이터 및 로그 파일을 구축하려고합니다.

mysql을 종료하는 것은 매우 큰 이유로 rsync 메소드에 매우 필요합니다. InnoDB 버퍼 풀은 디스크에 다시 기록되지 않은 데이터 및 인덱스 페이지 (1 페이지 = 16KB) 인 "더티 페이지"를 보유 할 수 있습니다. rsync를 사용하면 InnoDB 버퍼 풀에서 보류중인 데이터 변경 사항을 포착 할 수 없습니다. 최종 rsync에 대한 mysqld 종료 속도를 높이려면 다음 명령을 실행하십시오.

SET GLOBAL innodb_max_dirty_pages_pct = 0;

이 명령은 더티 페이지 수를 최소한으로 유지합니다. 이 명령은 rsync 백업 방법을 수행하기 약 1 시간 전에 실행해야합니다. XtraBackup에는 mysql 종료가 필요하지 않지만 XtraBackup에도 도움이 될 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.