2010-05-11 3 views
0

저희 회사는 웹/앱 서버에 가상 시스템을 사용합니다. 이렇게하면 무언가가 잘못되어 배포가 매우 쉽게 롤백 될 수 있습니다. 그러나 앱 서버 배포에도 데이터베이스 배포가 필요하고 롤백해야하는 경우에는 다소 손해를 보게됩니다. 데이터 손실없이 데이터베이스 스키마 변경 사항을 롤백하는 방법은 무엇입니까? 내가 생각할 수있는 유일한 방법은 테이블/컬럼을 원래 상태로 되돌리고 되돌릴 스크립트를 작성하는 것입니다. 이것이 가장 좋은 방법일까요?새 데이터를 손실하지 않고 데이터베이스 배포를 롤백하는 방법은 무엇입니까?

답변

1

일반적으로 말할 수는 없습니다.

그러나 이러한 롤백이 의미가 있다고 가정하면 보유하려는 데이터가 되돌리려는 스키마 변경과 독립적이라는 것을 의미합니다. 그것을 다루는

한 가지 방법이 될 것이다에 :

  • 백업 데이터 만 (스크립트),
  • 는 이전에 스키마를 되돌리고
  • 데이터를 복원

스키마 변경으로 작성된 스크립트가 무효화되지 않으면 위의 내용이 잘 작동합니다 (예 : 열 수 변경은 까다 롭습니다).

question에는 스크립트를 생성하기 위해 MS SQL에서 사용할 수있는 도구에 대한 세부 정보가 있습니다.

2

하지만 열을 삭제하면 해당 열/테이블 (추정 됨)에 일부 데이터가 포함되므로 데이터를 잃게됩니다. 그리고 나는 어떤 롤백은 종종 버그가 발견된다는 점에서 일시적이라는 것을 가정하기 때문에, 롤백은 고정되어 있고, 그 다음에는 동일한 변경 사항이 재설치되고, 사용자는 매우 화가 난다. 그 데이터를 잃어 버렸고 시스템이 수정되었을 때 다시 입력해야했습니다.

테이블과 컬럼의 추가, 변경 또는 삭제 만 허용해야한다고 제안하는 경우 롤백이 많으면 데이터를 그대로두고 롤백 할 수 있습니다. 일부 미사용 열이 있지만 실수로 테이블/열을 추가 한 경우가 자주 발생하지 않으며 DBA는이를 수동으로 제거 할 수 있습니다.

관련 문제