2009-09-18 4 views
3

10 년 넘게 응용 프로그램을 사용한 후 확장 성이 부족하여 끊임없이 제한되어 왔지만 처음부터 완전히 다시 작성하기로 결정했습니다. 새 아키텍처가 이전 응용 프로그램과 다르므로 데이터베이스도 다릅니다. 여기에 문제가 있습니다 : 이전 데이터베이스의 데이터를 새로운 데이터베이스로 이전하는 산업 프로세스가 있습니까? 일부 테이블은 비슷하지만 다른 테이블은 그렇지 않습니다. 전반적으로 마이그레이션하는 동안 데이터 또는 논리적 제약이 없어지지 않도록 프로세스가 필요합니다.아키텍처가 변경되는 응용 프로그램의 데이터 마이그레이션 프로세스?

PS : 이전 및 새 데이터베이스는 모두 Oracle 데이터베이스입니다.

답변

6

질문에이 내용을 지정하지 않았지만 새 버전의 응용 프로그램/데이터베이스를 개발하고 일부 전환점에서 모든 실제 데이터를 마이그레이션해야한다고 가정합니다. 이전 데이터베이스를 새 데이터베이스에 추가하십시오.

이 경우 데이터베이스 구조의 마이그레이션 (일부 수정 포함)과 나중에 데이터 자체의 마이그레이션이라는 두 가지 별개의 프로세스에 대해 실제로 묻습니다.

첫 번째 프로세스의 경우 가장 좋은 도구는 개발자입니다 (사용자가 "도구"라는 의미는 아닙니다). 으로 이전 데이터베이스의 구조를 가져온 다음 새 버전에 필요한만큼 변경합니다. 그러나이 접근법은 일반적으로 오래된 구조를 너무 많이 남겨 두는 경향이 있습니다. 나는 상황을 이용하고 원본 데이터베이스를 일반적인 참조로 사용하여 처음부터 데이터베이스를 다시 작성하는 것이 더 바람직하다고 생각합니다.

두 번째 프로세스에서는 별도로 작성되고 테스트 된 응용 프로그램을 필요로하는 별도의 작업으로 데이터 마이그레이션을 처리합니다. 이 응용 프로그램은 일련의 스크립트 또는 컴파일 된 응용 프로그램 또는 가장 편리한 모든 것이 될 수 있습니다. 기존 데이터베이스와 새 데이터베이스는 동일한 구조를 가지지 않으므로 (실제로는 매우 다를 수 있음) 자동으로이 작업을 처리 할 상용 도구가 없습니다. 이것을 자신이 작성하는 별개의 응용 프로그램으로 처리하면 "라이브로 이동"하기 전에 여러 번 데이터 변환 프로세스를 테스트 할 수 있습니다.

+0

+1 훌륭한 답변! 고마워요, 아주 분명 해요. 두 번째 프로세스를 수행하기위한 베스트 프랙티스/자습서/기사를 찾을 수있는 장소를 알고 있습니까? – karlipoppins

+0

@m_oLogin :이 작업을 수행하는 데는 여러 가지 방법이 있으므로 한 방향으로 가리 키기가 어렵습니다. 오라클 자체가 테이블 정의가 정확하게 일치하지 않을 때 테이블에서 테이블로 데이터를 복사 할 수있는 툴을 갖추고 있습니다. Justin에서 언급 한 SQL Server Management Studio의 SSIS 도구는이 작업을 막연하게 잘못 해석합니다. 순수하게 Oracle에서 Oracle 로의 작업). 또한 데이터 판독기 및 데이터 작성자를 사용하여 테이블에서 테이블로 복사하는 C#으로 ADO.Net 응용 프로그램을 작성할 수 있습니다. – MusiGenesis

+0

관계형 데이터베이스이기 때문에 테이블을 복사하는 순서는 분명히 중요합니다. 종속 테이블에 외래 키를 작성하려면 외래 키 값이 있어야하기 때문입니다. 이 문제를 해결하는 한 가지 방법은 모든 주요 제약 조건을 해제하고 이전 테이블의 모든 테이블을 복사 한 다음 모든 제약 조건을 다시 설정하는 것입니다. – MusiGenesis

2

나는 이와 같은 문제를 공격하는 몇 가지 다른 방법에 대해 들어 봤습니다. 가장 간단한 솔루션은 Microsoft Access 데이터베이스를 사용하고 ODBC 연결을 사용하여 새롭거나 오래된 Oracle 데이터베이스에 모두 연결하는 것입니다. 그런 다음 Access를 사용하여 필요에 따라 데이터를 마이그레이션하고 변환 할 수 있습니다.

더 우아한 솔루션은 Microsoft SQL Server Development 도구를 설치합니다. Business Intelligence Development Studio를 사용하여 두 개의 Oracle 끝점이있는 SSIS 패키지를 만들 수 있습니다. SSIS는 데이터베이스간에 데이터를 변환하는 작업을 처리 할 수 ​​있으며 패키지를 로컬에서 실행할 수 있으므로 SQL Server 인스턴스를 어디서나 실행할 필요가 없습니다.

http://www.developerdotstar.com/community/node/364

당신은 또한 Oracle Warehouse Builder (OWB)을 확인 할 수 있습니다 :

에서 SSIS에 대한 튜토리얼 시리즈가있다. 이름은 다소 혼란 스럽지만 Oracle의 ETL (Extract, Transform 및 Load) 패키지입니다. 나는 그것을 개인적으로 사용한 적이 없지만, 당신이하고 싶은 일을 할 수도 있습니다.

+0

Development Studio를 사용하는 방법에 대한 좋은 기사 또는 자습서가 있습니까? – karlipoppins

+3

Microsoft Access를 사용하여 Oracle 데이터를 Oracle 데이터로 변환하려는 이유가 확실하지 않습니다. Oracle 데이터베이스 내에서 SQL 및 PLSQL을 사용하여 원하는 작업을 완벽하게 수행 할 수 있습니다. – Rene

+0

액세스는 사람들이 이미 일반적으로 가지고있는 간단한 솔루션입니다. 그것은 분명히 최선의 해결책이나 제안 된 해결책이 아닙니다 ... 그러나 나는 그것이 끝났다고 확실히 들었습니다. 개인적으로 ... 스스로하지 않을 것입니다. –

관련 문제