본문 바로가기

퍼블릭 클라우드

AWS RDS mysqldump(backup) error

반응형

AWS RDS mysqldump(backup) error

mysqldump(backup) 명령어

mysqldump -h "RDS Endpoint" -u "User NAME" -p "PASSWORD" --databases "DB NAME"" > "DB NAME"-${date +%Y%m%d).sql

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events.

 

이 경고 메시지는 AWS RDS(Relational Database Service)에서 MySQL 데이터베이스의 GTID(Global Transaction Identifier)를 이용한 부분 덤프(partial dump)를 수행할 때 발생하는 것으로 보입니다. GTID는 서버의 모든 트랜잭션을 고유하게 식별하는 데 사용되며, 일부 데이터베이스 변경을 제외하고 모든 트랜잭션의 GTID를 포함하여 덤프가 생성되기 때문에 경고가 발생합니다.

 

해결 방법은 덤프를 생성할 때 --set-gtid-purged=OFF 옵션을 추가하거나, 완전한 덤프를 위해 --all-databases, --triggers, --routines, --events를 추가해주면 됩니다. 각각의 옵션에 대해 간단히 설명드리겠습니다.

 

  1. --set-gtid-purged=OFF: 이 옵션을 추가하면 GTID가 포함되지 않도록 설정됩니다.
  2. --all-databases: 모든 데이터베이스를 덤프에 포함시킵니다.
  3. --triggers: 트리거를 덤프에 포함시킵니다.
  4. --routines: 저장 프로시저 및 함수 등의 루틴을 덤프에 포함시킵니다.
  5. --events: 이벤트 스케줄러를 덤프에 포함시킵니다.

덤프를 생성하는 명령어에서 위의 옵션을 사용하여 필요한 옵션을 추가하시면 됩니다. 예를 들어, GTID를 포함하지 않고 모든 데이터베이스 및 루틴, 트리거, 이벤트를 포함하여 완전한 덤프를 생성하려면 다음과 같은 명령어를 사용할 수 있습니다.

mysqldump --all-databases --triggers --routines --events --set-gtid-purged=OFF > dump.sql

 

적절한 옵션을 사용하여 원하는 방식으로 덤프를 생성하면 경고가 더 이상 발생하지 않습니다. 주의깊게 옵션을 선택하고 덤프를 생성하시기 바랍니다. AWS RDS의 데이터베이스를 다룰 때는 신중함이 필요합니다.

 

mysqldump(backup) 명령어

mysqldump --set-gtid-purged=OFF --column-statistics=0
mysqldump --set-gtid-purged=OFF --column-statistics=0 -h "RDS Endpoint" -u "User NAME" -p "PASSWORD" --databases "DB NAME"" > "DB NAME"-${date +%Y%m%d).sql

 

728x90
반응형