필요한 옵션을 사용하여 MySQL 데이터베이스에 mysqldump 유틸리티를 직접 실행할 수 있습니다. 그러나 Cloud SQL 데이터베이스로 데이터를 가져오기 위해 내보내는 경우 다음 플래그와 함께 mysqldump 유틸리티를 사용합니다.
--databases
내보낼 데이터베이스의 명시적 목록을 지정합니다. 이 목록에는 시스템 데이터베이스 (sys
,mysql
,performance_schema
,information_schema
)가 포함되어 선택해서는 안 됩니다.--hex-blob
데이터베이스에 바이너리 필드가 포함된 경우 이 플래그를 사용하여 바이너리 필드를 올바르게 가져와야 합니다.--single-transaction
실행하기 전에 트랜잭션을 시작합니다. 전체 데이터베이스를 잠그는 대신 mysqldump가 현재 상태에서 데이터베이스를 읽을 수 있으므로 일관된 데이터 덤프가 가능합니다.--routines
저장 프로시저 및 함수를 포함합니다.mysqldump
버전 8 이상을 사용하여 8 미만의 MySQL 데이터베이스 버전을 내보내는 경우:--column-statistics=0
이 플래그는
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
오류를 방지하기 위해 데이터베이스 내보내기에서 COLUMN_STATISTICS 테이블을 삭제합니다. 자세한 내용은 문제 진단을 참고하세요.
다음 플래그를 사용하는 것도 좋습니다.
--no-autocommit
--default-character-set=utf8mb4
--master-data
MySQL 서버와 네트워크 연결이 설정된 머신에서 다음 명령어를 실행합니다.
mysqldump \
-h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
--databases [DBS] \
--hex-blob \
--no-autocommit \
--default-character-set=utf8mb4 \
--master-data=1 \
--single-transaction \
--routines \
| gzip \
| gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz
마이그레이션 소스가 MySQL용 관계형 데이터베이스 서비스 (RDS)인 경우:
master-data
속성은 지원되지 않습니다.- 소스 데이터베이스 서버가 GTID를 지원하는 경우
--set-gtid-purged=on
속성을 사용합니다. 그렇지 않은 경우에는 이 속성을 사용하지 마세요. - 수동 덤프를 사용하여 데이터를 이전하는 경우 GTID를 사용 설정한 상태에서 이전을 실행합니다.
이 명령어는 다음 예시처럼 표시될 수 있습니다.
mysqldump \
-h [SOURCE_ADDR] -P [SOURCE_PORT] -u [USERNAME] -p \
--databases [DBS] \
--hex-blob \
--no-autocommit \
--default-character-set=utf8mb4 \
--set-gtid-purged=on \
--single-transaction \
--routines \
| gzip \
| gcloud storage cp - gs://[BUCKET_NAME]/[DUMP_FILENAME].gz
또한 binlog를 더 오래 보존하도록 RDS 인스턴스를 구성해야 합니다. 이 명령어는 다음 예시처럼 표시될 수 있습니다.
# Sets the retention period to one week.
call mysql.rds_set_configuration('binlog retention hours', 168);
[PROPERTIES_IN_BRACKETS]를 다음 값으로 바꿉니다.
속성 | 값 |
[SOURCE_ADDR] | 소스 데이터베이스 서버의 IPv4 주소 또는 호스트 이름입니다. |
[SOURCE_PORT] | 소스 데이터베이스 서버의 포트입니다. |
[USERNAME] | MySQL 사용자 계정입니다. |
[DBS] | 덤프에 포함할 소스 데이터베이스 서버의 데이터베이스 목록으로 공백으로 구분됩니다. SHOW DATABASES MySQL 명령어를 사용하여 데이터베이스를 나열합니다. |
[BUCKET_NAME] | 사용자가 만들고 덤프 파일을 저장하는 데 사용하는 Cloud Storage의 버킷입니다 (예: replica-bucket ). |
[DUMP_FILENAME] | 덤프의 파일 이름으로, .gz 파일 확장자로 끝납니다 (예: source-database.sql.gz ). |