2008-10-15 2 views

답변

1

내가 먼저 확인해야 할 것은 데이터 유형입니다. 데이터 유형의 정확한 정의는 데이터베이스마다 다릅니다. 필자는 각 데이터 유형을 매핑 할 매핑 목록을 만들 것입니다. 그러면 새 테이블을 만드는 데 도움이됩니다. 또한 지금 사용되지 않는 데이터 테이블이나 열을 확인합니다. 마이그레이션에 아무런 포인트가 없습니다. 기능, 직업, sps 등등과 동일하게하십시오. 지금은 쓰레기를 치울 시간입니다.

데이터베이스의 sp 또는 동적 쿼리를 통해 데이터에 어떻게 액세스하고 있습니까? 새 쿼리 데이터베이스를 실행하여 각 쿼리를 확인하고 여전히 작동하는지 확인하십시오. 다시 SQ1의 두 가지 맛이 어떻게 작용하는지에 차이가 있습니다. 내 SQL을 사용하지 않았기 때문에 일반적인 실패 지점이 무엇인지 잘 모르겠습니다. 그 동안 새로운 쿼리를 작성하고 최적화 할 수 있는지 확인하는 것이 좋습니다. 최적화는 데이터베이스마다 다르며, 사용자가 이동하는 동안 마이그레이션 중 일부로 수정할 수있는 성능이 좋지 않은 쿼리가있을 수 있습니다.

사용자 정의 함수도 검토해야합니다. 당신이 이것을하는 경우에 이것을 잊지 말라.

예약 된 작업을 잊지 마세요.이 작업은 checkd하고 myslq에서 다시 작성해야합니다.

정기적으로 데이터를 가져 오시겠습니까? 모든 수입품은 다시 써야합니다.

중요한 것은 테스트 데이터베이스를 사용하고 테스트, 테스트, 테스트하는 것입니다. 특히 분기 별 또는 연례 보고서 또는 잊어 버릴 일들에 대해 테스트하십시오.

당신이하고 싶은 또 다른 일은 버전 제어 된 스크립트를 통해 모든 것을하는 것입니다. 모든 스크립트를 실패없이 dev에서 순서대로 실행할 수있을 때까지 프로덕션으로 이동하지 마십시오.

+0

을 사용하면 데이터 마이그레이션을 할 수있는 모든 권리 드라이버가 있는지 확인 - http://technikhil.wordpress.com/2007/05/13/getting-microsoft-sql-server-and-mysql-to-talk/ 당신이 동기화 dev에 생산 스키마를 유지할 수없는 – Nikhil

0

내가 잊어 버린 것은 SQL 서버 데이터베이스에서 마이그레이션을 실행하는 dev 데이터베이스가 각 테스트 실행 직전에 프로덕션에서 업데이트되었는지 확인하는 것입니다. 오래된 레코드를 테스트했기 때문에 무언가를 싫어하는 것이 싫어서.

+0

경우에, 당신은 더 큰 문제가 :) – MarkR

+0

내가 스키마에 대한하지만 실제 데이터에 대해 이야기하지 않았다. deve 데이터베이스에 최신 레코드가 없으면 알려지지 않은 prod에서 비정상적인 값을 가진 레코드 하나가 나쁜 시간과 장소에서 멈추게 할 수 있습니다. – HLGEM

0

클라이언트 코드는 수정하기가 가장 복잡한 부분이 거의 확실합니다. 응용 프로그램에 매우 높은 품질의 테스트 스위트가 없으면 많은 테스트를 거쳐야합니다. 같은 일을하는 것에 의지 할 수는 없습니다. 심지어 당신이 기대할 수도 있습니다.

예, 데이터베이스 자체는 변경해야하지만 클라이언트 코드는 주요 동작이있는 곳이므로 작업 및 엄격한 테스트가 필요할 것입니다.

마지막으로 데이터를 마이그레이션하는 것을 잊어 버리십시오. 데이터베이스 스키마가 너무 어려움없이 변환 될 수 있습니다. 다른 데이터베이스 객체 (SP, 뷰 등)는 문제를 일으킬 수 있지만 클라이언트 코드는 문제의 초점이되는 곳입니다.

데이터베이스 쿼리를 실행하는 거의 모든 루틴을 변경해야하지만 절대적으로 모두 테스트해야합니다. 이것은 중요하지 않습니다.

현재 응용 프로그램의 기본 데이터베이스를 MySQL 4.1에서 5로 마이 그 레이션하고 있는데 차이점은 적지 만 여전히 매우 큰 작업입니다.

관련 문제