Linode에서 AWS로 마이그레이션

Linode에서 AWS로 마이그레이션

데이터베이스가 크면 다른 서버로 마이그레이션하는 것이 쉽지 않습니다. Linode의 데이터베이스를 Amazon RDS 데이터베이스로 옮기고 싶습니다. 시도했지만 pg_dump성공 pg_restore했지만 시간이 많이 걸립니다.

내 질문은: 압축과 같은 빠른 방법이 있습니까? 아니면 linode의 데이터베이스를 Amazon RDS의 데이터베이스와 동기화할 수 있습니까?

그래서 Amazon을 참조하도록 CNAME을 변경하면 이미 데이터베이스를 함께 동기화하므로 계속 작동할까요?

어떤 제안이라도 도움이 될 것입니다!

답변1

RDS가 ​​아닌 다른 실제 호스트로 마이그레이션하는 경우 스트리밍 복제를 사용하여 원하는 작업을 수행할 수 있습니다.

  • pg_basebackupDB를 새 호스트로
  • recovery.conf현재 마스터를 가리키는 복제본을 시작합니다.
  • 복제가 따라잡도록 하세요
  • 복제본에 대해 동기식 복제가 활성화된 상태에서 마스터를 다시 로드합니다.
  • ... 그런 다음 마스터를 종료하고 복제본을 마스터로 다시 시작한 다음 진행합니다.

RDS는 기본 서버에 대한 액세스를 제공하지 않기 때문에 RDS에서는 작동하지 않습니다. pg_basebackup자체 스트리밍 복제를 사용하거나 제어할 수 없습니다 . 따라서 RDS를 사용하는 경우 유일한 실제 옵션은 덤프하고 다시 로드하는 것입니다.

이론적으로 Amazon은 사용자가 RDS에 없는 마스터의 RDS 복제본을 설정한 다음 이를 마스터로 승격시킬 수 있도록 허용할 수 있습니다. 사람들이 DB를 RDS로 훨씬 더 쉽게 마이그레이션할 수 있게 해주기 때문에 이는 매우 좋은 아이디어가 될 것입니다. 하지만 작성 시점에는 해당 기능이 없으며 원본 데이터베이스가 호환 옵션, 동일한 주요 버전 및 동일한 CPU 아키텍처로 컴파일된 경우에만 작동하기 때문에 잠재적으로 복잡할 수 있습니다. 복제 서버로. 예를 들어 x86과 x64 간에 복제할 수 없습니다. 또한 Amazon이 필요에 맞게 PostgreSQL을 자유롭게 수정하는 것도 방지할 수 있습니다.

이것은 역으로도 작동합니다. 마이그레이션할 수 없습니다.~에서스트리밍 복제를 사용하는 RDS. 따라서 RDS에 크고 바쁜 DB가 있는 경우 큰 가동 중지 시간 없이 다시 가져오기가 매우 어려울 것입니다.

솔직히 말해서 이미 자체 DB를 실행하고 있다면 RDS의 매력을 느끼지 못합니다. 이는 비용이 많이 들고 데이터에 대한 대부분의 통제권을 제거합니다. (저는 PostgreSQL 서비스 분야의 다른 회사에서 일하고 있으므로 이를 염두에 두고 제 의견을 고려해야 합니다.)

~할 것 같다Londiste, Bucardo 또는 Slony-I와 같은 타사 복제 솔루션을 사용하여 데이터베이스를 RDS에 복제할 수 있습니다. 나는 RDS에서 이러한 도구를 사용해 본 적이 없으며 확장 프로그램 설치, 티커 데몬 실행 등의 필요성으로 인해 작동하지 않을 것이라고 생각합니다. EC2 노드를 사용하여 이를 수행할 수도 있지만 그럴 것입니다. 복잡하고 제대로 하기가 까다롭습니다.

관련 정보