질문에이 내용을 지정하지 않았지만 새 버전의 응용 프로그램/데이터베이스를 개발하고 일부 전환점에서 모든 실제 데이터를 마이그레이션해야한다고 가정합니다. 이전 데이터베이스를 새 데이터베이스에 추가하십시오.
이 경우 데이터베이스 구조의 마이그레이션 (일부 수정 포함)과 나중에 데이터 자체의 마이그레이션이라는 두 가지 별개의 프로세스에 대해 실제로 묻습니다.
첫 번째 프로세스의 경우 가장 좋은 도구는 개발자입니다 (사용자가 "도구"라는 의미는 아닙니다). 은으로 이전 데이터베이스의 구조를 가져온 다음 새 버전에 필요한만큼 변경합니다. 그러나이 접근법은 일반적으로 오래된 구조를 너무 많이 남겨 두는 경향이 있습니다. 나는 상황을 이용하고 원본 데이터베이스를 일반적인 참조로 사용하여 처음부터 데이터베이스를 다시 작성하는 것이 더 바람직하다고 생각합니다.
두 번째 프로세스에서는 별도로 작성되고 테스트 된 응용 프로그램을 필요로하는 별도의 작업으로 데이터 마이그레이션을 처리합니다. 이 응용 프로그램은 일련의 스크립트 또는 컴파일 된 응용 프로그램 또는 가장 편리한 모든 것이 될 수 있습니다. 기존 데이터베이스와 새 데이터베이스는 동일한 구조를 가지지 않으므로 (실제로는 매우 다를 수 있음) 자동으로이 작업을 처리 할 상용 도구가 없습니다. 이것을 자신이 작성하는 별개의 응용 프로그램으로 처리하면 "라이브로 이동"하기 전에 여러 번 데이터 변환 프로세스를 테스트 할 수 있습니다.
+1 훌륭한 답변! 고마워요, 아주 분명 해요. 두 번째 프로세스를 수행하기위한 베스트 프랙티스/자습서/기사를 찾을 수있는 장소를 알고 있습니까? – karlipoppins
@m_oLogin :이 작업을 수행하는 데는 여러 가지 방법이 있으므로 한 방향으로 가리 키기가 어렵습니다. 오라클 자체가 테이블 정의가 정확하게 일치하지 않을 때 테이블에서 테이블로 데이터를 복사 할 수있는 툴을 갖추고 있습니다. Justin에서 언급 한 SQL Server Management Studio의 SSIS 도구는이 작업을 막연하게 잘못 해석합니다. 순수하게 Oracle에서 Oracle 로의 작업). 또한 데이터 판독기 및 데이터 작성자를 사용하여 테이블에서 테이블로 복사하는 C#으로 ADO.Net 응용 프로그램을 작성할 수 있습니다. – MusiGenesis
관계형 데이터베이스이기 때문에 테이블을 복사하는 순서는 분명히 중요합니다. 종속 테이블에 외래 키를 작성하려면 외래 키 값이 있어야하기 때문입니다. 이 문제를 해결하는 한 가지 방법은 모든 주요 제약 조건을 해제하고 이전 테이블의 모든 테이블을 복사 한 다음 모든 제약 조건을 다시 설정하는 것입니다. – MusiGenesis