본 문서에서는 콘솔 및 TCCLI를 통한 두 가지 데이터 마이그레이션 방법에 대해 소개합니다.
콘솔로 데이터 마이그레이션
콘솔을 통해 데이터를 물리적 백업 혹은 로직 백업하여 마이그레이션할 수 있으며, 자세한 작업 내용은 다음을 참조 바랍니
다. TCCLI로 데이터 마이그레이션
1. 다음의 방식처럼, MySQL의 TCCLI인 mysqldump로 가져올 SQL 파일을 생성합니다.
주의:
mysqldump로 내보낸 데이터 파일은 구매한 TencentDB for MySQL 버전의 SQL 규격과 호환되어야 하며, CDB에 로그인한 뒤 'select version();'을 통해 MySQL 버전 정보를 확인할 수 있습니다. 생성한 SQL 파일 이름은 영어/숫자/언더바로 구성되어야 하며, 'test'란 단어는 포함할 수 없습니다.
원본 데이터베이스와 타깃 데이터베이스의 버전 및 문자 세트, mysqldump 툴의 버전이 일치해야 합니다. --default-character-set와 같은 매개변수를 통해 문자 세트를 지정할 수 있습니다.
데이터 가져오기에 실패한 경우 권한 문제일 수 있으며, 가져오기 파일 생성 시 --set-gtid-purged=OFF 매개변수를 사용하여 가져오기 파일을 생성할 수 있습니다.
shell > mysqldump <options> <db_name> <tbl_name ...> > <bak_pathname>
<options>: 내보내기 옵션 또는 매개변수로, 일반적으로 사용되는 옵션에는 -h, -u, -p 등이 있으며, 매개변수에는 --default-character-set 등이 있습니다.
<db_name>: 데이터베이스 이름으로, 필요한 데이터베이스로 교체해야 합니다.
<tbl_name>: 테이블 이름으로, 필요한 데이터베이스의 테이블 이름으로 교체해야 합니다.
<bak_pathname>: 내보내기 경로 이름으로, 실제 생성 파일 경로로 교체해야 합니다.
2. 다음의 방식처럼, MySQL의 TCCLI를 통해 타깃 데이터베이스로 데이터를 가져옵니다.
shell > mysql -h <hostname> -P <port> -u <username> -p < <bak_pathname>
<hostname>: 데이터를 복원할 대상 호스트로 교체합니다.
<port>: 대상 호스트의 포트로 교체합니다.
<username>: 대상 호스트의 데이터베이스 사용자 이름으로 교체합니다.
<bak_pathname>: 백업 파일의 전체 경로로 교체합니다.
데이터 마이그레이션(Windows 시스템)
1. Windows 시스템의 mysqldump 툴로 가져올 SQL 파일을 생성합니다. 자세한 내용은 TCCLI로 데이터 마이그레이션의 설명을 참조 바랍니다. 2. 명령 프롬프트에서 MySQL TCCLI를 통해 타깃 데이터베이스로 데이터를 가져옵니다.
데이터 마이그레이션(Linux 시스템)
1. CVM에 로그인한 뒤, MySQL TCCLI인 mysqldump로 가져올 SQL 파일을 생성합니다. CDB의 db_blog 데이터베이스를 예시로 사용합니다. 2. MySQL TCCLI를 통해 타깃 데이터베이스로 데이터를 복원합니다.
3. 타깃 MySQL 데이터베이스에 로그인하여 'show databases;' 명령어를 실행하면 타깃 데이터베이스로 가져온 백업 데이터베이스를 확인할 수 있습니다.
가져온 데이터 파일 문자 세트의 인코딩 문제
1. CDB에 가져온 데이터 파일에 지정된 문자 세트 인코딩이 없다면, CDB에 설정된 문자 세트로 인코딩이 실행됩니다.
2. 가져온 데이터 파일에 지정된 문자 세트 인코딩이 있다면, 지정된 문자 세트로 인코딩이 실행됩니다.
3. 가져온 데이터 파일의 문자 세트 인코딩과 CDB의 문자 세트 인코딩이 다를 경우 글자가 깨질 수 있습니다.
문자 세트 인코딩 문제에 관한 더 자세한 내용은 사용 제한의 문자 세트 설명을 참조 바랍니다. 자주 묻는 질문
데이터 가져오기 기능 사용 시 오류 발생: wait err=exit status 255, busi errmsg=import sql file failed, err=ERROR 1227 (42000) at line 24: Access denied; 어떻게 처리하나요?
데이터 가져오기 기능 사용 시 42000 오류가 발생하면, SQL 파일을 가져오는 과정에서 접근 거부 오류가 발생하여 가져오기에 실패했음을 의미합니다. 이는 현재 사용자에게 충분한 권한이 없을 수 있으므로, 다음 두 가지 방법으로 처리하는 것이 권장됩니다.
MySQL의 TCCLI인 mysqldump를 사용하여 가져올 SQL 파일을 다시 생성하고, 매개변수 --set-gtid-purged=OFF를 지정한 후 다시 가져오기를 시도하세요. SQL 파일 가져오기 명령 생성은 TCCLI로 데이터 마이그레이션을 참고하십시오. 오류 메시지에 따라 관련 구문을 수동으로 주석 처리하여 가져오기 권한 문제를 회피할 수도 있습니다. 예시는 다음과 같습니다.
SET @MYSOLDUMP TEMP LOG BIN = COSESSION.SQL LOG BIN;
SET @@SESSION.SQL LOG BIN = 0;
SET @@GLOBAL.GTID PURGED=