지금 지원 담당자와 채팅
지원 담당자와 채팅

NetVault Plug-in for MySQL 12.2 - 사용자 안내서

MySQL용 NetVault Backup 플러그인- 소개 플러그인 설치 및 제거 플러그인 구성 데이터 백업 데이터 복원 기본 MySQL 복제 작업 장애 조치 클러스터 환경에서 플러그인 사용 문제 해결

데이터 백업: 개요

백업을 완료하기 전에 다음 항목의 정보를 검토하십시오.

MySQL Standard/Community 옵션을 사용하려면 다음 지침 및 정보를 검토하십시오.

사용자 환경에서 이름에 하이픈과 같은 특수 문자가 포함된 데이터베이스를 사용하는 경우 다음과 같은 제한 사항을 고려해야 합니다.

데이터베이스 이름에 하이픈이 포함되어 있으면 MyISAM 백업 방법이 버전 4.2에 도입된 Mysqldump 옵션으로 설정되어 있는 경우 MyISAM 테이블이 백업됩니다. 그에 따라 백업 및 복원 성능에 부정적인 영향을 미칠 수 있습니다.
MyISAM 백업 방법이 기본 테이블 파일 잠금 및 복사 옵션을 사용하도록 설정되어 있고 데이터베이스 이름에 하이픈이 포함되어 있는 경우 MyISAM 테이블이 백업되지 않습니다. 플러그인이 MySQL 명령을 무시하고 테이블 파일을 직접 복제하려고 시도하므로 백업이 생성되지 않습니다. 이 플러그인은 테이블 파일을 찾을 수 없다는 오류 메시지를 기록한 다음 저장 집합을 생성하지 않고 백업 작업이 실패합니다.
Mysqldump 옵션을 사용할 때 최적화되지 않은 성능 효과 등의 이유로 원래 동작을 유지하면서 테이블 파일 잠금 및 복사 옵션을 사용할 수 있습니다. 이렇게 하려면 다음과 같이 플러그인 구성 파일 "Nvmyssql.cfg"에서 ValidateDatabaseDirectory 매개 변수를 수동으로 TRUE로 설정합니다.
그런 다음 새 동작을 대신 사용하려는 경우 매개 변수를 FALSE로 변경하거나 "Nvmyssql.cfg" 파일에서 매개 변수를 제거할 수 있습니다.
MIXED 바이너리 로깅 형식 사용

MySQL에서는 MIXED 바이너리 로깅 형식을 사용할 때 USE 문의 사용을 강제하지 않습니다. 그러므로 Quest의 권장 사항에 따라 모든 데이터베이스 사용자와 프로그램에서 수정된 테이블이 USE가 선택한 데이터베이스에 있도록 합니다. 또한 데이터베이스 간 업데이트가 실행되지 않도록 하는 것이 좋습니다. 이 지침이 사용자 환경에 적합하지 않을 경우 Quest에서는 MIXED 바이너리 로깅 형식을 사용하지 않는 것을 권장합니다.

중요: MIXED 바이너리 로깅 형식이 used인 경우 증분 및 차등 백업 작업이 경고와 함께 완료됩니다.

MIXED 바이너리 로깅 형식을 사용하는 환경에서는 PIT 복구 중에 바이너리 로그 항목이 재생되는 것을 방해할 수 있습니다. 복구 중에 플러그인은 "‑‑database" 옵션과 함께 mysqlbinlog를 사용하여 복원 작업을 위해 선택한 데이터베이스와 관련된 항목만 재생할 수 있습니다. "--Database"를 사용하지 않으면 모든 항목이 재생되고 모든 데이터베이스에 영향을 미칩니다. MIXED 바이너리 로깅 형식을 사용하는 경우, "‑‑database" 옵션을 사용하는 mysqlbinlog가 전체 또는 일부 항목을 재생하지 못하도록 하는 방식으로 항목이 작성됩니다. 자세한 내용은 https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html#option_mysqlbinlog_database 페이지를 참조하십시오.

MIXED 바이너리 로깅 형식이 "--database" 옵션과 함께 올바르게 작동하려면 데이터베이스에 대한 특정 업데이트의 트랜잭션이 모두 데이터베이스를 선택하는 USE 문에서 실행되어야 합니다.

증분 또는 차등 백업이 복원되지 않고 mysqlbinlog가 MySQL Server에서 현재 바이너리 로그를 적용하는 경우에도 이와 동일한 상황이 발생합니다. 이 상황은 바이너리 로그가 백업에 저장되는 방식 때문이 아니라 바이너리 로그가 기록되는 방식 때문에 발생합니다.

중요: 수정하는 테이블이 USE 문에 지정된 데이터베이스에 속하도록 하면 MySQL 명령 프롬프트를 통해 생성되는 트랜잭션에 적용됩니다. 또한 MySQL Server 데이터베이스와 상호 작용하는 스크립트, 프로그램 및 기타 응용 프로그램에 의해 생성되는 트랜잭션에도 적용됩니다.

다음 예제에서는 MIXED가 복원 동작에 영향을 미치는 다양한 방법을 보여 줍니다.

예 1: 이 예에서는 데이터 행이 my_databasemy_table에 삽입됩니다. USE 문이 없으므로, mysql 데이터베이스와 같이 사용 중인 데이터베이스가 기본 데이터베이스입니다. binlog_formatMIXED로 설정되어 있으면 mysqlbinlog"‑-database my_database" 옵션을 바이너리 로그에 적용할 경우 다음 트랜잭션이 재생되지 않습니다.
예 2: 이 예에서는 데이터 행이 my_databasemy_table에 삽입됩니다. USE 문이 있지만 다른 데이터베이스를 지정합니다. 즉, my_databaseUSE 문에서 선택되지 않습니다. binlog_formatMIXED로 설정되어 있으면 mysqlbinlog"‑-database my_database" 옵션을 바이너리 로그에 적용할 경우 다음 트랜잭션이 재생되지 않습니다.
예 3: 이 예에서는 데이터 행이 my_databasemy_table에 삽입되고 USE 문에서 my_database가 선택됩니다. binlog_formatMIXED로 설정되어 있으면 mysqlbinlog"‑-database my_database" 옵션을 바이너리 로그에 적용할 경우 다음 트랜잭션이 재생됩니다.
예 4: 이 예에는 두 개의 insert 쿼리가 있습니다. 첫 번째 insert는 USE 문에서 선택한 데이터베이스와 다른 my_database에 대해 수행됩니다. 두 번째 insert는 my_database를 선택하는 USE 문 범위에서 수행됩니다. binlog_format이 MIXED로 설정되어 있으면 my_databaseUSE 문에 지정되어 있지 않으므로 첫 번째 insert가 재생되지 않지만, 두 번째 insert는 my_databaseUSE 문에 지정되어 있으므로 재생됩니다.

MySQL Enterprise Backup 옵션을 사용하려면 다음 지침 및 정보를 검토하십시오.

예: 두 개의 데이터베이스(DB1 및 DB2)가 포함된 MySQL 인스턴스가 있습니다. 각 데이터베이스에는 두 개의 테이블이 있습니다. DB1은 T1_InnoDB와 T1_MyISAM을 포함하고 DB2 는 T2_InnoDB와 T2_MyISAM을 포함합니다. T1_MyISAM과 T2_MyISAM을 백업하는 경우 T1_InnoDB와 T2_InnoDB 또한 백업됩니다. InnoDB 테이블 중 하나를 포함하면 해당 InnoDB 테이블만 백업됩니다. 데이터베이스 중 하나를 선택하면 이 데이터베이스의 테이블만 백업됩니다.
예: 두 개의 데이터베이스(DB1 및 DB2)가 포함된 MySQL 인스턴스가 있습니다. 각 데이터베이스에는 두 개의 테이블이 있습니다. DB1은 T1_InnoDB와 T1_MyISAM을 포함하고 DB2 는 T2_InnoDB와 T2_MyISAM을 포함합니다. DB1과 DB2를 백업하고 T1_InnoDB와 T2_InnoDB를 제외하는 경우 T1_InnoDB와 T2_InnoDB 또한 백업됩니다. 두 개의 InnoDB 테이블 중 하나만 제외하면 다른 InnoDB 테이블만 백업됩니다.
이 설명은 Mysqlbackup 유틸리티인 MySQL Enterprise Backup의 현재 동작을 반영하며, 이 동작은 향후 릴리스인 MySQL 3.12 이후에 변경될 수 있습니다.
MySQL 5.6 이상에서는 innodb_file_per_table 구성 옵션이 기본적으로 활성화됩니다. innodb_file_per_table 옵션이 비활성화된 상태로 생성된 InnoDB 테이블은 InnoDB 시스템 테이블스페이스에 저장되며 백업에서 생략될 수 없습니다. 테이블스페이스 외부에 InnoDB 테이블을 배치해야 하는 경우 innodb_file_per_table 옵션이 MySQL에서 활성화되어 있는 동안 생성합니다. 각각의 .ibd 파일에는 테이블이 1개인 데이터 및 인덱스만 포함되어 있습니다.

백업 전략 정의

MySQL 백업 전략을 정의할 때 다음 질문에 답하십시오.

MySQL Standard/Community 또는 MySQL Enterprise Backup 옵션을 사용하기를 원하십니까? 두 가지 버전 모두 사용자 환경에 구축되어 있는 경우에도 플러그인과 함께 하나의 전략만 사용할 수 있습니다. MEB 기반 방법 또는 mysqldump 기반 방법을 사용하되 이 두 가지 조합을 함께 사용할 수는 없습니다.
MEB 기반 옵션을 사용하면 백업을 위해 선택한 모든 데이터베이스 개체에 대해 mysqlbackup 유틸리티 또는 해당 NetVault Backup 스크립트가 한 번 실행되고 mysqlbackup 출력 로그가 작업 로그에 포함됩니다. 데이터 백업은 두 단계로 수행됩니다. 첫 번째 단계에서는 모든 InnoDB 테이블이 복사됩니다. 두 번째 단계에서는 다른 모든 유형의 테이블이 복사됩니다. InnoDB 테이블의 핫 백업 지원 외에도 MEB 기반 옵션은 향상된 백업 성능을 지원합니다.

이러한 질문에 답변하면 이행해야 하는 백업의 유형 및 빈도를 정의하는 데 도움이 됩니다.

MySQL Standard/Community 백업 유형 검토

MySQL Standard/Community 옵션을 사용하는 경우 플러그인은 mysqldump를 사용하여 다음 유형의 백업을 제공합니다.

각 MySQL 인스턴스에 대한 데이터 보호 요구 사항에 부합하는 적절한 백업 시퀀스를 선택하기 위한 첫 번째 단계는 바로 이러한 백업이 어떻게 다른지 이해하는 것입니다.

MySQL Standard/Community 옵션의 전체 백업에서 플러그인은 mysqldump 유틸리티를 사용하여 인스턴스에 포함된 모든 데이터베이스를 백업합니다. 전체 백업은 거의 모든 복원 시나리오에 대한 시작점을 제공하므로 모든 백업 전략의 기본이 됩니다. 플러그인을 사용하여 생성된 전체 백업은 전체 인스턴스, 개별 또는 여러 데이터베이스, 개별 또는 여러 테이블을 복원하는 데 사용할 수 있습니다.

전체 또는 증분 백업 이후에 바이너리 로그 삭제 옵션을 사용하면 전체 또는 증분 백업 이후에 바이너리 로그가 삭제됩니다. 이 옵션은 표준 MySQL Server 구성에서 플러그인을 사용할 때, MySQL 복제 활성화가 비활성화되어 있을 때, 특정 시점 복구 활성화가 활성화되어 있을 때 기본적으로 사용됩니다. 플러그인이 클러스터에 연결되면 비활성화됩니다. 플러그인 외부에서 바이너리 로그 삭제를 관리해야 합니다.

바이너리 로그 삭제... 옵션을 선택하지 않으면 플러그인이 해당 구성 파일에서 마지막 백업 로그를 추적하므로 사용자는 재량에 따라 수동으로 바이너리 로그를 삭제할 수 있습니다. 예를 들어 바이너리 로그를 슬레이브 인스턴스에 복제할 때까지 마스터 인스턴스에서 삭제하지 않으려는 MySQL 복제 환경을 사용하는 경우 바이너리 로그를 수동으로 제거해야 합니다.

증분 백업에서는 마지막 전체 백업 또는 증분 백업 이후 생성된 트랜잭션 로그를 백업한 다음 바이너리 로그를 삭제합니다. 바이너리 로그는 인스턴스 기반이므로 모든 데이터베이스에 대한 트랜잭션 로그가 백업되고 하나의 단위로 삭제됩니다.

증분 백업은 미디어 오류 또는 데이터 손상이 발생한 후에 데이터 손실을 최소화하는 데 필수적입니다. 증분 백업을 사용하여 잘못된 업데이트 또는 삭제된 테이블과 같은 데이터 손상 전후의 시점으로 복원할 수 있습니다. 전체 백업과 달리 증분 백업은 백업 중에 읽기 전용 액세스가 필요하지 않습니다.

MySQL 증분 백업의 경우 바이너리 로그를 활성화하는 "‑log-bin" 옵션을 사용하여 MySQL 인스턴스를 시작해야 합니다. 이 절차는 MySQL Server에서 바이너리 로그 활성화(Standard/Community 옵션 전용)에 설명되어 있습니다. 자세한 내용은 MySQL 참조 안내서의 바이너리 로그 섹션을 참조하십시오.

앞에서 설명한 대로, 전체 또는 증분 백업 이후에 바이너리 로그 삭제 옵션을 사용하면 전체 또는 증분 백업 이후에 바이너리 로그가 삭제됩니다. 이 옵션을 사용하지 않으면 플러그인이 해당 구성 파일에서 마지막 백업 로그를 추적하므로 사용자는 재량에 따라 수동으로 바이너리 로그를 삭제할 수 있습니다.

차등 백업은 마지막 전체 백업 또는 증분 백업 이후 생성된 트랜잭션 로그를 백업합니다. 그러나 백업 완료 시 바이너리 로그는 삭제되지 않습니다. 따라서 이후의 차등 백업은 크기와 기간이 늘어납니다. 이 유형의 각 백업에는 이전 차등 백업에 포함된 바이너리 로그 이전 차등 백업 이후 생성된 바이너리 로그가 포함되므로 크기와 기간이 늘어납니다. 예를 들어 월요일부터 토요일까지 예약된 차등 백업과 함께 전체 백업을 일요일에 수행하는 경우 월요일의 차등 백업에는 일요일의 전체 백업 이후에 생성된 바이너리 로그가 포함됩니다. 또한 화요일의 차등 백업에는 월요일에 생성된 바이너리 로그와 화요일에 생성된 바이너리 로그가 포함됩니다. 수요일의 차등 백업에는 월요일, 화요일, 수요일의 바이너리 로그가 포함되는 식으로 작업이 진행됩니다.

증분 백업과 마찬가지로 차등 백업을 사용하여 미디어 오류 또는 데이터 손상 이후 데이터 손실을 줄이고 오류 또는 손상 전후의 시점으로 복원할 수도 있습니다. 전체 백업과 달리 차등 백업은 백업 중에 읽기 전용 액세스가 필요하지 않습니다.

차등 백업의 경우 바이너리 로그를 활성화하는 "‑log-bin" 옵션을 사용하여 MySQL 인스턴스를 시작해야 합니다. 이 절차는 MySQL Server에서 바이너리 로그 활성화(Standard/Community 옵션 전용)에 설명되어 있습니다. 자세한 내용은 MySQL 참조 안내서의 바이너리 로그 섹션을 참조하십시오.

증분 백업은 백업 후에 바이너리 로그를 삭제하므로 마지막 증분 백업 이후 생성된 바이너리 로그만 백업되어 후속 증분 백업이 더 빨라집니다. 하지만 증분 백업을 사용하는 복원 시퀀스에서는 전체 백업과 실패한 시점 사이에 수행한 모든 증분 백업을 연속으로 복원해야 합니다. 이 프로세스를 사용하면 다수의 복원 작업을 시작하는 데 필요한 DBA 개입이 증가하므로 복원 시간이 더 오래 걸릴 수 있습니다.

차등 백업은 백업된 후에 바이너리 로그를 삭제하지 않으므로 마지막 전체 백업 이후의 모든 바이너리 로그가 백업에 포함되어 후속적인 각 차등 백업이 더 오래 걸립니다. 그렇지만 차등 백업을 사용하는 복원 시퀀스에서는 전체 백업을 복원한 후에 단 하나의 차등 백업만 복원하면 됩니다. 이 프로세스는 복원 프로세스 중에 필요한 DBA 개입이 줄어들기 때문에 복원 속도가 빨라집니다.

특수한 용도로 백업을 수행해야 할 때도 있는데 이 경우 전체 데이터베이스에 대한 전반적인 백업 및 복원 절차에 영향을 주지 않아야 합니다. 예를 들어 백업이 테스트 환경의 소스일 수도 있고 복제 슬레이브 인스턴스에 대한 초기 동기화로 사용될 수도 있습니다. 개별 데이터베이스/테이블 복사 전용 백업은 이러한 특수 용도로 설계되었기 때문에 MySQL 환경을 "복사"할 수 있습니다. "복사 전용" 백업은 설정된 백업 시퀀스와 무관하며 전체, 증분 또는 차등 백업의 복구 성능에 영향을 주지 않습니다. 하지만 전체 백업의 대체 백업으로 사용할 수는 없습니다.

개별 데이터베이스/테이블 복사 전용 백업에 대해 설명된 것처럼, 전체 데이터베이스 복사본 백업 옵션은 선택한 MySQL 데이터베이스의 복사본(선택된 데이터베이스의 모든 해당 InnoDB 테이블 포함)을 생성하기 때문에 특수 용도로만 사용됩니다. "복사본" 백업은 설정된 백업 시퀀스와 무관하며 전체, 증분 또는 차등 백업의 복구 성능에 영향을 주지 않습니다. 하지만 전체 백업의 대체 백업으로 사용할 수는 없습니다.

선택한 각 데이터베이스에 대해 데이터베이스의 테이블이 하나만 선택되어 있더라도 전체 데이터베이스 복사본 백업 옵션은 전체 데이터베이스를 백업합니다. 이 옵션을 사용하면 백업할 개별 데이터베이스를 선택할 수 있지만 개별 테이블은 선택할 수 없습니다. 또한 이 옵션은 InnoDB 테이블 백업만 지원합니다.

개별 데이터베이스/테이블 복사 전용 백업 옵션을 사용하면 개별 데이터베이스 및 개별 테이블을 선택할 수 있으며 백업에 InnoDB 및 MyISAM 테이블을 포함할 수 있습니다. 그러나 일반적으로 개별 데이터베이스/테이블 복사 전용 백업 옵션보다 전체 데이터베이스 복사본 백업 옵션을 사용할 때 백업이 더 빨리 완료됩니다.

MySQL Enterprise Backup의 백업 유형 검토

MySQL Enterprise Backup 옵션의 경우, 플러그인이 선택된 모든 데이터베이스 개체에 대해 mysqlbackup 명령을 한 번 실행하여 전체, 증분 및 TTS 유형의 백업을 수행할 수 있습니다.

MySQL Enterprise Backup 옵션의 전체 백업에서 플러그인은 mysqlbackup 유틸리티 또는 해당 NetVault Backup 스크립트를 사용하여 인스턴스에 포함된 모든 선택된 데이터베이스 개체를 백업합니다. 전체 백업은 거의 모든 복원 시나리오에 대한 시작점을 제공하므로 모든 백업 전략의 기본이 됩니다. 플러그인을 사용하여 생성된 전체 백업은 전체 인스턴스, 개별 또는 여러 데이터베이스, 개별 또는 여러 테이블을 복원하는 데 사용할 수 있습니다.

InnoDB 테이블의 경우 마지막 전체 백업 또는 증분 백업 이후 변경된 데이터만 백업됩니다. InnoDB 외 테이블의 경우 마지막 전체 백업 또는 증분 백업 이후 테이블에서 변경된 사항이 있으면 전체 테이블이 백업됩니다.

TTS 백업을 수행하는 경우 플러그인이 전체 백업을 수행하고 "--use-tts" MySQL 옵션을 추가합니다.

TTS 백업을 생성하려는 경우 다음과 같은 제한 사항을 고려해야 합니다.

innodb_file_per_table 옵션을 활성화한 상태에서 생성된 테이블만 백업에 포함됩니다.

"--use-tts" 옵션 사용 시 제한 사항에 대한 자세한 내용은 https://dev.mysql.com/doc/mysql-enterprise-backup/4.0/en/backup-partial-options.html 페이지를 참조하십시오.

관련 문서

The document was helpful.

평가 결과 선택

I easily found the information I needed.

평가 결과 선택