Loading...
MySQL 9.5 Reference Manual 9.5의 25.6.9 Importing Data Into MySQL Cluster의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
새로운 NDB Cluster 인스턴스를 설정할 때, 기존 NDB Cluster, MySQL 인스턴스, 또는 다른 소스로부터 데이터를 가져와야 할 필요가 있는 경우가 흔합니다. 이 데이터는 대개 다음 형식들 중 하나 또는 그 이상으로 제공됩니다:
mysqldump에 의해 생성된 SQL 덤프 파일. 이는 이후에 이 섹션에서 보여 주는 것처럼 mysql 클라이언트를 사용하여 가져올 수 있습니다.
mysqldump 또는 다른 내보내기 프로그램에 의해 생성된 CSV 파일. 이러한 파일은 mysql 클라이언트에서 LOAD DATA INFILE을 사용하여 NDB로 가져올 수 있으며, 또는 NDB Cluster 배포판에 포함된 ndb_import 유틸리티를 사용하여 가져올 수 있습니다. 후자에 대한 자세한 내용은 Section 25.5.13, “ndb_import — Import CSV Data Into NDB”를 참조하십시오.
NDB 관리 클라이언트에서 START BACKUP을 사용하여 생성된 네이티브 NDB 백업. 네이티브 백업을 가져오려면 NDB Cluster의 일부로 제공되는 ndb_restore 프로그램을 사용해야 합니다. 이 프로그램 사용에 대한 자세한 내용은 Section 25.5.23, “ndb_restore — Restore an NDB Cluster Backup”을 참조하십시오.
SQL 파일에서 데이터를 가져올 때는, 트랜잭션이나 외래 키를 강제할 필요가 없는 경우가 많으며, 이러한 기능을 일시적으로 비활성화하면 가져오기 처리 속도를 크게 높일 수 있습니다. 이는 클라이언트 세션 내에서 또는 커맨드 라인에서 mysql 클라이언트를 호출하여 수행할 수 있습니다. mysql 클라이언트 세션 내에서는 다음 SQL 문들을 사용하여 가져오기를 수행할 수 있습니다:
1SET ndb_use_transactions=0; 2SET foreign_key_checks=0; 3 4source path/to/dumpfile; 5 6SET ndb_use_transactions=1; 7SET foreign_key_checks=1;
이 방식으로 가져오기를 수행할 때는, mysql 클라이언트의 source 명령이 실행된 후에 반드시(must) ndb_use_transaction과 foreign_key_checks를 다시 활성화해야 합니다. 그렇지 않으면, 같은 세션에서 이후의 문들도 트랜잭션이나 외래 키 제약을 강제하지 않은 채로 실행될 수 있으며, 이는 데이터 불일치로 이어질 수 있습니다.
시스템 셸에서, 트랜잭션 및 외래 키 강제를 비활성화한 상태로 SQL 파일을 가져오려면, 다음과 같이 --init-command 옵션과 함께 mysql 클라이언트를 사용할 수 있습니다:
1$> mysql --init-command='SET ndb_use_transactions=0; SET foreign_key_checks=0' < path/to/dumpfile
또한 데이터를 InnoDB 테이블로 로드한 후, ALTER TABLE ... ENGINE NDB)를 사용하여 이후에 이를 NDB 스토리지 엔진을 사용하도록 변환하는 것도 가능합니다. 특히 많은 테이블이 있는 경우, 이러한 연산이 여러 번 필요할 수 있다는 점을 고려해야 합니다. 추가로, 외래 키를 사용하는 경우, 외래 키가 서로 다른 MySQL 스토리지 엔진을 사용하는 테이블 간에는 동작하지 않는다는 사실로 인해, ALTER TABLE 문들의 순서를 주의 깊게 결정해야 합니다.
이 섹션에서 앞서 설명한 방법들은 매우 큰 데이터 세트나 큰 트랜잭션에 대해 최적화되어 있지 않다는 점을 알아 두어야 합니다. 어떤 애플리케이션이 정상적인 동작의 일부로 정말로 큰 트랜잭션이나 많은 동시 트랜잭션을 필요로 하는 경우, 데이터 노드가 트랜잭션 코디네이터가 예기치 않게 중지되었을 때 해당 트랜잭션을 인계받을 수 있도록 더 많은 메모리를 예약하는 데이터 노드 구성 파라미터인 MaxNoOfConcurrentOperations의 값을 증가시키는 것이 좋을 수 있습니다.
NDB Cluster 테이블에 대해 대량의 DELETE 또는 UPDATE 연산을 수행할 때에도 이를 고려할 수 있습니다. 가능하다면, 애플리케이션이 이러한 연산을 청크 단위로 수행하도록 시도해 보십시오. 예를 들어, 이런 문에 LIMIT을 추가하는 방식입니다.
어떠한 이유에서든 데이터 가져오기 연산이 성공적으로 완료되지 않는 경우, 하나 이상의 DROP TABLE 문, DROP DATABASE 문 (또는 둘 다)을 포함하여 필요한 정리를 수행할 준비가 되어 있어야 합니다. 이를 수행하지 못하면 데이터베이스가 일관성 없는 상태로 남겨질 수 있습니다.
25.6.8 Online Backup of NDB Cluster
25.6.10 MySQL Server Usage for NDB Cluster