0

공유 호스팅 서버에 실시간 데이터베이스가 있습니다. 나는 내 사이트의 코드를 크게 변경하고 있는데 처음에는 데이터베이스를 디자인 할 때 실수 한 바보를 고치고 싶다. 이러한 변경에는 많은 수의 필드 크기를 변경하고 테이블간에 참조 무결성을 적절히 적용해야합니다. 가능하다면 로컬 테스트 서버와 원격 서버 모두에서 변경을 원합니다.공유 호스팅에서 SQL 데이터베이스 수정

데이터를 처리하기 위해 복잡한 쿼리를 작성하는 데 상당히 익숙하지만 그래픽 인터페이스없이 데이터베이스 구조를 수정 한 경험은 거의 없습니다.

Visual Studio 데이터베이스 탐색기에서 원격 데이터베이스에 액세스 할 수 있지만 데이터 조작 이외의 용도로는 사용할 수 없습니다. 나는 지난 밤에 Sql Management Studio 익스프레스를 설치했고, 포기한 40 개 이상의 충돌을 포기했다.

원격 서버는 SQL 2005/The MyLittleAdmin 웹 인터페이스를 사용할 수 있습니다. 내 질문은 이러한 변경을 수행하는 가장 좋은 방법입니다. 원격 서버에서 사용할 수있는 그래픽 인터페이스가 있습니까? 로컬 컴퓨터에 데이터베이스를 복사하고 수정 한 다음 다시 업로드하는 쉬운 방법이 없다면? 마지막으로 쿼리를 통해 참조 무결성을 고치는 데 관한 정보를 얻을 수있는 링크가있는 사람이 있습니까?

약간의 일반적인 질문에 대해 유감스럽게 생각합니다.하지만 내가 찾지 못한 것보다 훨씬 힘들어하는 것처럼 느껴지지만, 밤새도록 검색/시도한 후에는 아무 것도 얻지 못했습니다. 도움에 미리 감사드립니다. 정말 감사.

... 또한 누군가는 내가 빌릴 수있는 타임머신을 가지고 있습니다. 나는 이것을 위해 내 과거의 자기 엉덩이를 걷어차 야합니다.

+0

글쎄, 현재 데이터베이스를 복제하고 변경 사항을 먼저 테스트하는 것이 좋습니다. 타임머신은 항상 http://en.wikipedia.org/how_to_build_a_time_machine –

+0

링크는 삭제 된 위키 피 디아 페이지로 이동합니다. –

답변

2

일반적으로 호스팅 제공 업체를 사용하면 데이터베이스를 백업 및 복원 할 수 있으므로 이동 DB를 백업하고 백업 파일을 다운로드하고 로컬로 복원하고 모든 변경 작업을 수행 한 후 해당 데이터베이스의 백업을 수행하는 것이 가장 쉽습니다. 로컬 DB에 저장하고 업로드 한 다음 실제 서비스에서 복원하십시오. 이 시간 동안 사이트가 관리자 종료 상태에 있어야이 작업을 수행하는 동안 데이터를 계속 업데이트 할 수 없습니다. 로컬 SQL 인스턴스가 호스팅 제공 업체와 동일한 빌드 버전 (@@ 버전)인지 확인해야합니다. 그렇지 않으면 로컬 SQL이 데이터베이스 구조를 업그레이드 할 수 있으며 호스팅 제공 업체에서 다시 복원 할 수 없습니다 또는 호스트의 버전보다 이전 버전 인 경우 로컬 서버에서 복원 할 수 없습니다. MSDN BOL에는 Copy Databases using Backup/Restore에 대한 자세한 GUID가 있습니다.

백업/복원의 대안은 데이터베이스 detach/attach입니다.하지만 MDF와 LDF를 모두 동기화해야하기 때문에 권장하지 않으며 백업보다 크기가 더 큽니다.

이것은 로컬 복사본의 모든 스키마 변경을 마법사 방식으로 수행 할 수 있다고 가정합니다. 빠르고 정확합니다. 물론, 그렇게 쉬운 일은 아닙니다. 권장되는 방법은 새 스키마에 도달하는 데 필요한 모든 변환을 적용하는 스크립트를 제 시간에 준비하는 것입니다. SQL Diff, SQL Compare, SQL Delta 및 기타 이와 같은 스크립트를 생성 할 수있는 도구가 있습니다. 또한 Visual Studio Database Edition도이 작업을 수행 할 수 있습니다.

이 같은 것 이런 짓을 했을까 방법 :

  1. 나는 라이브 호스트로 내 dev에 컴퓨터에 정확히 같은 스키마를 가지고 있는지 확인합니다. 확실하지 않으면 라이브 서버 백업을 가져 와서 로컬로 복원 할 수 있습니다. 이것은 내 참조, v1 것입니다. 개요.
  2. v1의 백업을 유지하십시오.참조 용
  3. 스키마를 내 대상으로 변경하는 스크립트 개발을 시작하십시오. 때로는 스크립트 구문에 대한 자신의 기억을 새로 고쳐야 할 때가 있습니다. 원하는 작업에 대해 SQL Server Management Studio 마법사로 이동하여 UI의 모든 옵션을 선택한 다음 'show script options' SSMS가 원하는 변경을 수행하기 위해 실행중인 스크립트를 정확하게 보여줍니다.
  4. 스크립트에 추가 할 때마다 v1을 복원하여 테스트 할 수 있습니다. 참조 백업 나는 1 단계에서 스크립트를 실행했다.
  5. 스크립트를 반복하여 필요한 모든 스키마 변경이 완료 될 때까지 한 번에 하나씩 변경 사항을 추가하십시오. 각 변경 후에 4 단계와 같이 다시 테스트 할 수 있습니다.
  6. Yourscript는 스키마에 대한 DDL 변경뿐만 아니라 필요한 DML 변경 (참조 데이터 수정, 값 변경, 테이블 간 이동 등)을 수행해야합니다.
  7. 스크립트가 준비되면 최신 백업을 다운로드하고 스크립트를 적용하고 업데이트 된 백업을 업로드하고 라이브 호스트에 복원 할 수 있습니다. 또는 라이브 호스트에서 스크립트를 실행할 수도 있습니다 (물론 무언가 잘못 되었기 때문에 백업 한 것입니다).

내 프로젝트에서 나는 항상 스크립트를 사용하여 데이터베이스를 배포하고 업그레이드합니다. 사실 나는 데이터베이스 확장 속성을 사용하여 내 응용 프로그램 배포 스키마의 '버전'을 저장하고 코드에서 내 마지막 버전으로 스키마를 가져 오는 모든 스크립트를 롤 포워드합니다. 이 기술을 설명하는 블로그에 기사가 있습니다 : Version Control and your Database.

+0

모든 정보를 제공해 주셔서 감사합니다. 이것은 내가 필요한 것입니다. –