2008-09-19 6 views
2

우리는 트리거와 함께 여러 SQL Server 2005 데이터베이스를 활용하는 제품을 가지고 있습니다. 우리는 고객 서버에 데이터베이스 스키마를 배포하고 업그레이드 할 수있는 지속 가능한 솔루션을 찾고 있습니다.SQL Server 2005 다중 데이터베이스 배포/업그레이드 소프트웨어 제안

현재, 우리는이 특정 작업에 대한 잘못된 도구가 될 것으로 보인다 레드 게이트의 SQL 포장기를 사용하고 있습니다. SQL Packager는 개별 데이터베이스를 대상으로하는 것뿐 아니라 우리가 소유하고있는 특정 (이전) 버전에는 SQL Server 2005에 몇 가지 문제가 있습니다. (우리 SQL Packager 버전은 SQL Server 2000과 잘 작동했습니다. 해결 방법 중 많이는 트리거와 여러 데이터베이스를 처리 할 수 ​​있습니다.)

누군가는 EXE 또는 다음과 같은 일을 할 수있는 .NET 프로젝트를 만들 수있는 제품을 제안 할 수 있습니까? 고객이 자신의 데이터베이스 스키마를 업데이트 할 필요가있을 때

* Create a main database with some default data. 
* Create an audit trail database. 
* Put triggers on the main database so audit data will automatically be inserted into the audit trail database. 
* Create a secondary database that has nothing to do with the main database and audit trail database. 

그리고,이 제품은 데이터베이스의 원래 세트와 우리의 서버에 데이터베이스의 업데이트 된 세트 사이의 변화를 볼 수 있습니다. 그런 제품이 고객의 서버에서 할 수있는 EXE 또는 .NET 프로젝트, ... 기본적으로

* Temporarily drop triggers on the main database so alterations can be made. 
* Alter database schemas, triggers, stored procedures, etc. on any of the original databases, while leaving the customer's data alone. 
* Put the triggers back on the main database. 

를 만들 수 있습니다, 우리는 SQL 포장기 유사한 제품을 찾고 있지만 쉽게 여러 데이터베이스를 처리 한 것 . 그런 제품이 없다면, 우리는 스스로 만들어야 할 것입니다.

미리 감사드립니다.

답변

1

내가 레드 게이트 솔루션은 "하나"DB에 대한 잘 작동 것을 알고,이 제품에 자신을 찾고 있었다; 불행하게도 나는 결국 같은 도구 :(

을 찾을 수 없었습니다, 나는 "비슷한"뭔가를 할 수있는 내 자신의 솔루션을 출시했다. 그것은 ...에 고통이었다 그러나 그것은했다.

내 시나리오는 우리가 트리거와 T-SQL이 없었로, 당신보다 훨씬 간단했다

나중에 내가 다른 접근하기로 결정 :...

모든 DB의 변화가 SCRIPT 번호가 있었다를 001_Create_Table_xXX.SQL , 002_AlterTable_whatever.SQL 등

변경 사항이 아무리 작은 경우에도 스크립트가 있어야합니다. 업데이트 프로그램의 새로운 버전이 작업을 수행합니다 :

  1. 가 (단지 경우) customerDB의 BKP 알파벳 순서로 스크립트를 실행
  2. 시작을 만듭니다. (001, 002 ...)
  3. 스크립트가 실패하면 BD가 삭제됩니다. 스크립트 오류, 스크립트 번호 등을 기록하고 고객의 DB를 복원합니다.
  4. 끝나면 고객의 DB를 "백업"한 후 다시 백업하고 DB 버전을 저장하는 테이블을 업데이트합니다. 이 테이블은 앱에서 확인되어 DB와 앱이 동기화되어 있는지 확인합니다.
  5. 멋진 성공 메시지를 표시합니다.

이것은 "수동"으로 밝혀졌지만 실제로는 3 년 동안 거의 노력하지 않았습니다. 비밀은 배포하기 전에 "업그레이드"를 테스트 할 몇 가지 테스트 DB를 유지하는 데 있습니다.그러나 데이터 불일치로 인해 일부 스크립트가 실패한 몇 개의 분리 된 Dbs를 제외하고는 정상적으로 작동합니다.

시나리오가 약간 복잡하기 때문에 이런 종류의 접근 방식이 괜찮은지 잘 모릅니다.

0

이 글을 쓰는 시점 (2009 년 6 월) 현재 여러 데이터베이스에서이 모든 작업을 수행 할 제품이 없습니다. 나는 또 다른 데이터베이스 변경 자동화 시스템 인 SQL Server 변경 이사 (Change Director)의 퀘스트 소프트웨어 (Quest Software)에서 일한다. 우리는 당신처럼 여러 개의 데이터베이스를 처리하지 않으며, 다른 사람들도 보았습니다. 주사위가 없다.

SQL Server 관리에서 본 지침에 따르면 나는 희망도주지 않을 것입니다. 단일 데이터베이스에 패키지 된 응용 프로그램에 대한 내용이 늘어나고 있으며 대부분의 코드는 이에 초점을 맞추고 있습니다.