적용 대상:
Azure Database for MySQL - 유연한 서버
Azure Database for MySQL은 고급 데이터베이스 관리 작업을 간소화하고 자동화하는 몇 가지 기본 제공 저장 프로시저를 제공합니다. 이러한 저장 프로시저를 사용하면 데이터 입력 복제, Undo 로그 정리 및 플러그인 관리와 같은 기능을 효율적으로 구성할 수 있습니다.
이 문서에서는 Azure Database for MySQL에서 사용할 수 있는 기본 제공 저장 프로시저, 해당 기능 및 사용 방법을 소개합니다.
현재 사용 가능한 기본 제공 저장 프로시저
1. 데이터 유입 복제 관리
Azure Database for MySQL은 시작, 중지, 상태 확인 및 복제 재설정을 포함하여 데이터 내 복제를 관리하는 저장 프로시저를 제공합니다.
이러한 절차에 대한 자세한 내용은 Azure Database for MySQL - 유연한 서버 데이터 인 복제를 구성하는 방법을 참조하세요.
2. 플러그 인 관리
Azure Database for MySQL은 암호 강도 정책을 적용하는 암호 유효성 검사 플러그 인을 지원합니다. 사용자는 다음 저장 프로시저를 사용하여 이 플러그 인을 사용하거나 사용하지 않도록 설정할 수 있습니다.
암호 플러그 인 유효성 검사 사용
CALL az_install_validate_password_plugin();
플러그 인을 사용하도록 설정한 후 Azure Portal의 서버 매개 변수 페이지에서 관련 매개 변수를 보고 구성할 수 있습니다.
암호 플러그 인 유효성 검사 사용 안 함
CALL az_uninstall_validate_password_plugin();
이 저장 프로시저는 플러그 인을 제거합니다.
비고
- HA(고가용성) 서버의 경우 먼저 주 서버에서 이러한 저장 프로시저를 실행합니다. 그런 다음 강제 장애 조치를 수행하고 새 주 노드에서 저장 프로시저를 다시 실행합니다.
- 복제본 서버의 경우 주 서버에서 이러한 저장 프로시저를 실행해도 복제본과 자동으로 동기화되지 않습니다. 주 복제본에서 실행한 후 각 복제본에서 수동으로 실행합니다.
3. 로그 정리 실행 취소
경우에 따라 실행 취소 로그가 커질 수 있으며 이를 정리하고 싶을 수도 있습니다. Azure Database for MySQL은 이 작업에 도움이 되는 저장 프로시저를 제공합니다.
- 테이블 공간을 확인하려면 먼저 다음 명령을 실행합니다.
SELECT NAME, FILE_SIZE, STATE FROM INFORMATION_SCHEMA.INNODB_TABLESPACES WHERE SPACE_TYPE = 'Undo' AND STATE = 'active' ORDER BY NAME; - 실행 취소 로그가 커진 경우 다음 명령을 실행해 새 테이블 공간을 만드세요.
현재는 기본 테이블스페이스 2개를 포함하여 최대 8개의 테이블스페이스를 지원합니다. X 값은 3에서 8 사이여야 합니다. 명령이 완료되면 새 테이블스페이스가 활성 상태여야 합니다.call az_create_undo_tablespace(X) - 다음 명령을 실행하여 innodb_undo_001 비활성화합니다(기본값).
그런 다음 innodb_undo_001 상태가 비어 있을 때까지 기다립니다(실행 취소 로그가 잘림).call az_deactivate_undo_tablespace(1)
실행 취소 테이블스페이스 확인 및 확인을 선택하여 실행 취소 로그 잘림을 확인할 수 있음 - 다음 명령을 실행하여 innodb_undo_001 활성화합니다(기본값).
그런 다음 innodb_undo_001 상태가 활성화될 때까지 기다립니다.call az_activate_undo_tablespace(1) - innodb_undo_002 대해 1-4단계를 반복합니다.
- 새로 만든 테이블 공간을 비활성화하려면 실행
call az_deactivate_undo_tablespace(3);합니다. 상태가 비어질 때까지 기다리세요. 그런 다음 새로 만든 테이블 공간을 삭제하려면 실행Call az_drop_undo_tablespace(3);합니다. 기본 항목은 삭제할 수 없습니다(innodb_undo_001, innodb_undo_002). 만든 항목만 삭제할 수 있습니다. 이 예제에서는 x_undo_003.삭제하기 전에 먼저 x_undo_003 빈 상태로 비활성화합니다.
실행 취소 테이블스페이스 확인 및 검사
실행 취소 테이블스페이스를 비우기 전에 활성 트랜잭션이 없는지 확인합니다.
SELECT COUNT(1) FROM information_schema.innodb_trx;
- 결과가 0이면 활성 트랜잭션이 없습니다.
- 실행 취소 테이블스페이스는 이 수가 0일 때만 비울 수 있습니다.
트랜잭션이 0에 도달했는지 확인한 후 실행 취소 테이블스페이스의 상태를 확인합니다.
SELECT NAME, FILE_SIZE, STATE
FROM information_schema.innodb_tablespaces
WHERE SPACE_TYPE = 'Undo'
ORDER BY NAME;
문제가 있는 테이블 삭제
테이블에 액세스할 때 다음과 같은 오류가 발생하면 테이블이 손상되었을 수 있습니다.
Incorrect information in file: './DATABASE_NAME/TABLE_NAME.frm'
이 문제를 해결하려면 기본 제공 저장 프로시저를 사용할 수 있습니다.
mysql.az_drop_broken_table(DBNAME, TABLENAME)
절차를 실행한 후에는 변경 내용이 적용되도록 서버를 다시 부팅하는 것이 좋습니다.
또는 특정 시점 복원을 수행하여 문제가 발생하기 전 상태로 서버를 되돌릴 수 있습니다.
결론
Azure Database for MySQL은 고급 데이터베이스 관리 작업을 간소화하는 기본 제공 저장 프로시저를 제공합니다. 이러한 절차를 통해 복제를 설정하고, 실행 취소 로그를 관리하고, 플러그 인을 효율적으로 사용하도록 설정할 수 있습니다. 이러한 도구를 적용하면 성능을 향상시키고 스토리지를 최적화하며 원활한 데이터 동기화를 보장할 수 있습니다.