가동 중지 시간없이 라이브 데이터베이스에 대한 스키마 변경을 어떻게 수행합니까?
예를 들어 전자 메일 주소 등과 같은 다양한 사용자 데이터를 포함하는 테이블이있는 PostgreSQL 데이터베이스가 있다고 가정 해 보겠습니다. 전자 메일 주소를 새로운 전용 테이블로 이동하려면 스키마를 변경 한 다음 전자 메일 데이터를 새 테이블로 마이그레이션해야합니다. 원래 테이블에 대한 쓰기를 중지하지 않고 어떻게 할 수 있습니까? 확실히 이전 테이블에서 새 테이블로 데이터를 덮어 쓰는 동안 새 데이터가 이전 테이블에 계속 기록되어 누락 될 수 있습니다.
이 문제는 자주 발생하지만 문제를 해결하기위한 표준 솔루션을 찾을 수 없습니다.
이 기사 는 문제를 다루고 있지만 실제로 3 단계를 이해하지 못했습니다. 두 테이블 모두에 기록한 다음 이전 데이터를 첫 번째 테이블에서 새 테이블로 마이그레이션한다고 말합니다. 오래된 데이터 만 마이그레이션하는지 어떻게 확인합니까?
( Heroku에서 PostgreSQL을 사용 합니다 .)
2
Facebook 은이를 위해 MySQL을위한 도구 를 개발했습니다 .
—
Nick Chammas
K. Scott Allen은 여기에서 스키마 버전 관리 시스템에 대해 썼습니다 . 버전 인식 스키마 배포를위한 오픈 소스 도구 인 DbUpdater를 만들었습니다. 자세한 내용은 여기 - http://www.tewari.info/dbupdater
—
재
@NickChammas 공유해 주셔서 감사합니다. 나는 그것에 대해 많은 질문이 있습니다. 비트 로그, 비 클러스터형 인덱스와 같은 항목을 설명하고 다음과 같은 질문에 답변하는보다 자세한 자습서 인 비디오를 제안하십시오. 직접 테이블. 2. 복사 단계는 언제 종료됩니까? 이것들은 내가 가진 몇 가지 질문에 불과하며 읽기 시작했습니다.
—
Sandeepan Nath
@SandeepanNath-죄송합니다. Facebook 도구에 익숙하지 않으므로 더 많은 리소스를 알려 드릴 수 없습니다. 나는 그것에 대한 발표를 읽고 몇 년 전에 내 의견을 게시했지만 결코 사용하지 않았습니다.
—
Nick Chammas