MariaDB 또는 MySQL 데이터베이스에서 MySQL 또는 MariaDB DB 인스턴스로 데이터 가져오기
기존 MySQL 또는 MariaDB 데이터베이스에서 MySQL 또는 MariaDB DB 인스턴스로 데이터를 가져올 수도 있습니다. 이렇게 하려면 mysqldumpmysqldump
명령줄 유틸리티는 한 MySQL 또는 MariaDB 서버에서 다른 MySQL 또는 MariaDB 서버로 데이터를 전송하고 백업본을 만드는 데 흔히 사용됩니다. 이 유틸리티는 MySQL 및 MariaDB 클라이언트 소프트웨어와 함께 포함되어 있습니다.
참고
MySQL DB 인스턴스에 많은 양의 데이터를 가져와서 내보내는 경우 xtrabackup
백업 파일 및 Amazon S3를 사용하여 Amazon RDS 내부 및 외부로 데이터를 더 빠르고 안정적으로 이동할 수 있습니다. 자세한 내용은 MySQL DB 인스턴스로 백업 복원 섹션을 참조하세요.
외부 데이터베이스에서 Amazon RDS DB 인스턴스로 데이터를 이동하는 일반적인 mysqldump
명령은 다음과 같습니다.
mysqldump -u
local_user
\ --databasesdatabase_name
\ --single-transaction \ --compress \ --order-by-primary \ -plocal_password
| mysql -uRDS_user
\ --port=port_number
\ --host=host_name
\ -pRDS_password
중요
-p
옵션과 입력한 암호 사이에 공백이 없어야 합니다.
보안 모범 사례로 여기에 표시된 프롬프트 이외의 보안 인증 정보를 지정하는 것이 좋습니다.
다음 권장 사항과 고려 사항을 잘 파악하고 있어야 합니다.
-
덤프 파일에서 다음 스키마를 제외합니다.
sys
,performance_schema
및information_schema
.mysqldump
유틸리티는 기본적으로 이러한 스키마를 제외합니다. -
사용자 및 권한을 마이그레이션해야 하는 경우 이를 다시 생성하는 데이터 제어 언어(DCL)를 생성하는 도구 사용을 고려합니다. 예를 들어 pt-show-grants
유틸리티가 있습니다. -
가져오기를 수행하려면 사용자가 DB 인스턴스에 액세스할 수 있어야 합니다. 자세한 내용은 보안 그룹을 통한 액세스 제어 섹션을 참조하세요.
사용되는 파라미터는 다음과 같습니다.
-u
– 사용자 이름을 지정하기 위해 사용합니다. 이 파라미터를 처음 사용할 때, 로컬 MySQL 또는 MariaDB 데이터베이스에서local_user
--databases
파라미터로 식별되는 사용자 계정 이름을 지정합니다.--databases
– 로컬 MySQL 또는 MariaDB 인스턴스에서 Amazon RDS로 가져오려는 데이터베이스 이름을 지정합니다.database_name
-
--single-transaction
– 로컬 데이터베이스에서 로드한 모든 데이터가 단일 시점에서 일치하는지 확인하기 위해 사용합니다.mysqldump
가 데이터를 읽는 동안 데이터를 변경하는 다른 프로세스가 있는 경우, 이 파라미터를 사용하여 데이터 무결성을 유지합니다. --compress
– 데이터를 Amazon RDS로 전송하기 전에 로컬 데이터베이스에서 데이터를 압축하여 네트워크 대역폭 사용을 줄이기 위해 사용합니다.--order-by-primary
– 기본 키를 기준으로 각 테이블의 데이터를 정렬하여 로드 시간을 줄이기 위해 사용합니다.-p
– 암호를 지정하기 위해 사용합니다. 이 파라미터를 처음 사용할 때, 첫 번째local_password
-u
파라미터로 식별되는 사용자 계정 암호를 지정합니다.-u
– 사용자 이름을 지정하기 위해 사용합니다. 이 파라미터를 두 번째로 사용할 때, MySQL용 기본 데이터베이스 또는 MariaDB DB 인스턴스에서RDS_user
--host
파라미터로 식별되는 사용자 계정 이름을 지정합니다.--port
- MySQL 또는 MariaDB DB 인스턴스의 포트를 지정하기 위해 사용합니다. 인스턴스를 생성할 때 값을 변경하지 않는 한, 기본값은 3306입니다.port_number
-
--host
- Amazon RDS DB 인스턴스 엔드포인트의 도메인 이름 시스템(DNS) 이름을 지정하기 위해 사용합니다(예:host_name
myinstance.123456789012.us-east-1.rds.amazonaws.com
). Amazon RDS Management Console의 인스턴스 세부 정보에서 엔드포인트 값을 찾을 수 있습니다. -
-p
– 암호를 지정하기 위해 사용합니다. 이 파라미터를 두 번째로 사용할 때, 두 번째RDS_password
-u
파라미터로 식별되는 사용자 계정 암호를 지정합니다.
Amazon RDS 데이터베이스에서 저장 프로시저, 트리거, 함수 또는 이벤트를 수동으로 만들어야 합니다. 복사 중인 데이터베이스에 이런 객체가 하나라도 있는 경우에는 mysqldump
를 실행할 때 이런 객체를 제외합니다. 그렇게 하면 mysqldump
명령(--routines=0 --triggers=0
--events=0
)을 사용하여 다음과 같은 파라미터를 포함합니다.
다음 예제에서는 로컬 호스트에 있는 world
샘플 데이터베이스를 MySQL DB 인스턴스로 복사합니다.
Linux, macOS 또는 Unix 대상:
sudo mysqldump -u
localuser
\ --databasesworld
\ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocalpassword
| mysql -urdsuser
\ --port=3306
\ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com
\ -prdspassword
Windows의 경우, 다음 명령은 Windows 프로그램 메뉴에서 명령 프롬프트(Command Prompt)를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행(Run as administrator)을 선택하여 열린 명령 프롬프트 창에서 실행해야 합니다.
mysqldump -u
localuser
^ --databasesworld
^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocalpassword
| mysql -urdsuser
^ --port=3306
^ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com
^ -prdspassword
참고
보안 모범 사례로 여기에 표시된 프롬프트 이외의 보안 인증 정보를 지정하는 것이 좋습니다.