데이터베이스 복원 실패 해결: 오류 1105(HY000) - Adobe Commerce Cloud에서 최대 쓰기 집합 크기를 초과했습니다.
Galera 클러스터에서 MariaDB 백업을 복원할 때 2GB 트랜잭션 크기 제한으로 인해 최대 쓰기 집합 크기 초과 오류가 발생할 수 있습니다. 이 문서에서는 보다 큰 트랜잭션을 처리할 수 있도록 백업 및 복원 명령을 조정하여 성공적인 복원 프로세스를 보장하는 단계별 솔루션을 제공합니다.
설명 description
환경
Adobe Commerce Cloud
이 문제는 MariaDB Galera 클러스터 환경에서 발생합니다.
문제/증상
Galera 클러스터에서 MariaDB 데이터베이스 백업을 복원하려고 하면 다음 오류로 인해 프로세스가 실패할 수 있습니다.
줄 [에 있는 HY005(오류 1100) 특정 줄 번호]: 최대 쓰기 집합 크기를 초과했습니다
원인
Galera 클러스터의 wsrep_max_ws_size 시스템 변수는 최대 쓰기 집합 크기를 2GB로 설정합니다. 백업에 이 크기를 초과하는 큰 행 또는 이진 데이터가 포함된 경우 복원 프로세스가 실패합니다.
해결 방법 resolution
이 문제를 해결하려면 --max_allowed_packet 크기를 늘려 큰 트랜잭션을 방지하도록 백업 프로세스를 조정하십시오. 따라서 MySQL 서버는 백업 및 복원 작업 동안 더 큰 행이나 이진 데이터를 처리할 수 있습니다. 비프로덕션 환경에서 항상 테스트해야 합니다.
-
MySQL 오류 로그에서 정확한 오류 원인을 식별합니다. 다음과 유사한 메시지를 찾습니다.
줄
[에 있는 HY005(오류 1100) 특정 줄 번호]: 최대 쓰기 집합 크기를 초과했습니다이는 Galera의 한도를 초과하는 거래 규모에 의한 오류임을 확인한다.
-
더 큰 데이터 크기를 허용하고 크기를 초과한 트랜잭션을 방지하려면
--max_allowed_packet매개 변수를 지정하여 새 백업을 만드십시오.The --max_allowed_packet매개 변수는 클라이언트와 통신하는 동안 서버에서 처리할 수 있는 데이터 패킷의 최대 크기를 정의합니다. 이 크기를 늘리면 더 큰 행이나 개체를 처리할 수 있으므로 트랜잭션이 분할되거나 쓰기 집합이 너무 커지지 않게 됩니다. 대부분의 경우--max_allowed_packet=64M이면 충분합니다. 데이터베이스에 매우 큰 행 또는 이진 데이터가 포함된 경우 이 값을 —max_allowed_packet=128M으로 조정합니다. 또한 압축(예: gzip)을 사용하여 파일 크기를 줄입니다.
백업 명령 예:code language-none mysqldump -h <host> -u <username> -p <password> --single-transaction --max_allowed_packet=64M <db_name> | gzip > /tmp/<dump_name>.sql.gz -
백업을 복원할 때 수정된 백업과의 호환성을 보장하려면 증가된
--max_allowed_packet값을 지정하십시오.
복원 명령 예:zcat /tmp/<dump_name>.sql.gz | sed -e 's/DEFINER[ ] *=[ ] *[ *] *\*/\*/' | mysql --host=127.0.0.1 -u <username> -p <password> -
백업을 복원한 후 프로세스가 오류 없이 완료되었는지 확인합니다. 로그를 확인하여 경고 또는 예외 항목이 없는지 확인합니다.