문제

한 DBM에서 다른 DBM으로 마이그레이션 한 경험이 있습니까? 이 작업을 수행했다면 왜 그렇게 했습니까? 특징? 비용? 기업 지침?

때때로, 나는 DBM과 관련된 DBAS와 협력했으며 DBMS와 관련된 기능을 사용하지 않는다고 주장했습니다 (예 : SQL Server의 CLR 저장 프로 시저) DBAS 포인트는 이러한 기능을 사용하면 더 어렵다는 것입니다. 필요한 경우 다른 DBMS로 전환하십시오. 그러나 지금까지 나는 전환을 요구 한 적이 없습니다.

도움이 되었습니까?

해결책

제 생각에는 사용중인 DB의 모든 기능을 활용하지 않아야합니다. 사용하는 기능 수에 관계없이 DBM을 변경하는 것은 어려울 것입니다. 시스템 사이에는 (일부 레코드 날짜와 같은 레코드 날짜와 시간과 같은) 차이가있어 큰 두통이 변경 될 수 있습니다. 새로운 DBM으로 전환하는 것은 없습니다.

비즈니스 관점에서해야 할 일이 많이 있습니다. 새로운 DBS에 대한 분석. 새로운 시스템에 대한 DBS 변화의 영향을 파악합니다. 개발이 변경되면 기존 시스템이 변경되고 변경 사항을 테스트합니다. 목록은 계속됩니다. 엔터프라이즈 시스템에서 그런 스위치를 만드는 데 몇 년이 아니라 몇 달이 걸립니다. 내가 마지막으로 일했던 곳은 DBS를 변경해야했으며 컨설턴트, 하드웨어, 소프트웨어 및 직원 급여를 위해 11 개월 동안 약 2 백만 달러가 걸렸습니다. 큰 문제입니다. 누군가가 기능을 사용하지 말라고 말하는 경우, "그럴 수있다"는 언젠가는 "아마도"가 발생하며 그 사람이 로커에서 벗어나기가 더 쉬울 것입니다. 이러한 기능을 변환하는 데 걸리는 시간과 돈은 다른 모든 것에 비해 미미합니다 (대부분). IMO가 시간과 비용을 절약 할 경우 이제 이러한 기능을 사용하여 구매하면 최선의 행동 과정입니다.

우리는 오래된 DBM에서 실행 한 시스템이 너무 컸기 때문에 그렇게했습니다. 데이터가 너무 많았고 훨씬 더 강력한 것이 필요했습니다. 또한 더 이상 지원되지 않았습니다.

다른 팁

나는 몇 년 동안 회사에서 일했으며, 제품은 Oracle 또는 SQL Server를 지원했습니다. 우리는 Erwin에서 모델을 유지하고 스키마 스크립트, 트리거 및 오라클 패키지를 생성했습니다. 패키지는 Oracle Triggers가 SQL Server (논리적 '삽입'및 '삭제 된'테이블 포함)와 동시에 작동하도록하는 데 사용되었습니다. 두 세트의 저장 프로 시저 스크립트를 보관했습니다.

내 벨트 아래에 그 혼란을 겪으면서, 나는 당신이 당신의 데이터 계층을 모든 논리 코드에서 완전히 분리시킬 수있는 한 큰 프로젝트를 마이그레이션 할 수 있다고 제안합니다. 이를 수행 할 수 있다면 핵심 앱에 영향을 미치지 않고 데이터베이스 기능의 속도를 높이는 데이터베이스 기능을 구현할 수 있습니다.

여러 번 전환했습니다. 대부분 "비자발적 변환" - 오래된 제품은 더 이상 지원되지 않거나 더 이상 적합하지 않기 때문입니다.

  • DB2에서 Oracle. 사전 UDB 데이터가 보존되어 Oracle로 이동했습니다.
  • 오라클에 대한 MS 액세스. Oracle 테이블 위의 액세스 프론트 엔드를 계속 사용했습니다.
  • 오라클에게 오라클. 6 ~ 8, 나는 생각합니다 ...

"왜 그렇게 했어?" 기능이 아닙니다. 비용이 아닙니다. 모든 경우에 무언가가 깨졌습니다.

  • 오래된 제품은 더 이상 작동하지 않습니다. OS 업그레이드 또는 기타 항목으로 인해 레거시 제품이 중단되었습니다.
  • 오래된 제품은 확장되지 않았습니다.

스위칭은 당신이 선택한 일이 거의 없습니다. 공급 업체가 비즈니스를 중단하거나 (Ingres가 한 번 수행했는지) 또는 버전 지원을 중단 할 때 (Microsoft가 자주 수행) 강제로 강요됩니다.

물론, 그것은 위기입니다. 트리거 및 저장 프로 시저 변경의 기술적 복잡성에 의해 복잡해집니다. 그것이 데이터 일 뿐이라면 위기가 많지 않을 것입니다. 예를 들어 일부 표준 형태 (CSV), 다시로드로 덤프하면 UP가 진행되고 있습니다.

더 중요한 것은 데이터베이스에서 더 많은 "저장된 절차, 트리거 등)가 많을수록 애플리케이션 소프트웨어가 혼란스럽고 팔로우하기 어려운 (그리고 유지하기 어려운) Kludges가됩니다. 누군가가 저장된 절차 이름을 추적하기 위해 몇 주 동안 기다리는 것만 큼 실망스러운 것은 없습니다. VB 코드라면 모든 사람이 액세스 할 수 있었을 것입니다. 그러나 데이터베이스에 있었기 때문에 역설적으로 눈에 띄지 않았습니다. 코드는 코드이며 데이터에서 멀리 떨어져 있어야합니다.

보다 코드를 어디에 두어야하는지 - 데이터베이스 대 응용 프로그램? 이 주제에 대한 자세한 내용.

한 데이터베이스에서 다른 데이터베이스로 데이터를 마이그레이션하기 위해 여러 프로젝트에 참여했습니다. 모든 경우에, 그것은 RDMB가 아닌 마이그레이션 된 데이터였습니다. 응용 프로그램이 작동하는 경우 전환을 위해 데이터베이스를 전환하라는 압력이 없습니다. 마이그레이션의 원동력은 일반적으로 이전 시스템의 데이터가 오래되지 않거나 양립 할 수 없거나 둘 다이므로 RDBMS를 전환 할 수있는 기회를 제공하기 때문입니다.

가장 큰 변화는 참조 데이터 (직원, 고객 등)를 기존 마스터 데이터베이스 (일관성 및 사용 편의성)로 통합 한 다음 키가 새로운 참조 데이터를 가리키도록 다른 모든 테이블을 수정하는 것입니다. . 이를 위해서는 스키마가 필요하고 해당 코드가 스택 위아래로 변경됩니다. 데이터베이스 마이그레이션이 아닌 데이터 마이그레이션입니다. 그리고 아마도 데이터를 추가하거나 표준화 할 수있는 기회를 활용하거나 테이블을 정상화하는 등의 기회를 활용하고 싶을 가능성이 높습니다.

이 프로젝트는 거의 항상 데이터, 스키마 및 코드에 큰 영향을 미치며 T-SQL을 PL-SQL로 전송 해야하는 모든 작업이 프로젝트의 사소한 부분이 될 것입니다. . 따라서 멋진 RDBMS 비용을 지불하는 경우 모든 것을 사용하십시오. 그렇지 않으면 새 차를 구입할 때 자동차를 더 쉽게 전환 할 수 있도록 새 차의 트렁크 나 글러브 칸을 사용하지 않는 것과 같습니다.

다른 요점 (S.Lott 지원). 개발 환경에 따라 개발자는 개발 또는 저장 절차를 쉽게 개발하거나 보는 시간이 없을 수 있습니다. 두 가지 다른 개발 도구 세트와 실행 환경으로 응용 프로그램 코드를 분할하면 복잡해 질 수 있으며 숙련 된 직원을 찾기가 더 어려워 질 수 있습니다.

저장된 절차에 대한 논쟁이라고 생각하지는 않지만 응용 프로그램의 주어진 구성 요소에 대한 코드가 어디에 있어야하는지 결정할 때 고려해야 할 사항입니다.

우리는 Oracle Migration에서 HP3000을했습니다. 그것은 우리에게 2,500 만 달러가 들었고 또한 그들이하고있는 일에 대해 생각하지 않았기 때문에 2 억 달러의 데이터를 잃는 비용을 추가했습니다. 또한 나는 그것을 단지 움직임으로 보는 많은 장소를 발견했습니다. 그들은 나중에 나머지를 알아낼 것입니다 ....... 훨씬 나중에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top