필요한 옵션을 사용하여 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이 플래그는 COLUMN_STATISTICS 테이블을 데이터베이스 내보내기에서 삭제하여
Unknown table 'COLUMN_STATISTICS' in information_schema (1109)오류를 방지합니다. 자세한 내용은 문제 진단을 참조하세요.
다음 플래그를 사용하는 것이 좋습니다.
--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). |
다음 단계
단계별 마이그레이션 전체 안내를 보려면 MySQL용 Cloud SQL 마이그레이션 시작하기를 참조하세요.