다시 인사드립니다! 이전에 공유했던 이전 작업을 잠시 보류했다가 다시 진행했습니다. 원래 설치되어 있던 (오래된) 호스트에서 몇 가지 문제가 발생하면서 상황이 조금 더 시급해졌습니다.
배경: 새 인스턴스로 이전하는 과정에서 외부 PG와 Redis 인스턴스로의 이전을 함께 진행하기로 결정했습니다. 신규 설치 설정은 문제없이 완료되었고, 이전 작업 자체는 커맨드 라인을 통해 백업 + 복원 방식으로 수행할 계획입니다. 현재는 워크플로우를 테스트하고, 원래 인스턴스를 읽기 전용으로 설정하고 진행하기 전에 새로 복원된 인스턴스가 예상대로 작동하는지 확인하는 중입니다. 특히 이 인스턴스가 상당히 오래되고 규모가 크기 때문에 더욱 신중을 기하고 있습니다.
기존 인스턴스: 표준 방식으로 PG, Postgres, Redis가 함께 설치된 단일 인스턴스의 간단한 셀프 호스팅 설정입니다.
새 인스턴스: 동일한 app.yml을 사용하지만, 외부 관리형 PG + Redis(DigitalOcean)를 사용합니다.
복원 명령은 상당한 시간 동안 정상적으로 진행되는 것처럼 보입니다. 그러나 상당한 시간이 지난 후, 실행마다 일관되게 다음과 같은 오류가 발생합니다(문맥을 위해 일부 성공 로그 포함):
COPY 99820
COPY 3216770
COPY 3251307
SSL connection has been closed unexpectedly
FATAL: terminating connection due to administrator command
CONTEXT: COPY post_timings, line 63404000: "8311 4897 1816 6999"
SSL connection has been closed unexpectedly
FATAL: terminating connection due to administrator command
CONTEXT: COPY post_timings, line 63404000: "8311 4897 1816 6999"
invalid socket
connection to server was lost
EXCEPTION: psql failed: connection to server was lost
/var/www/discourse/lib/backup_restore/database_restorer.rb:95:in `restore_dump'
실행마다 서로 다른 특정 COPY 지점에서 발생했으므로, 제가 파악한 바로는 이는 이전 작업 자체에 특정한 문제가 아닌 것 같습니다. DB 연결이 모두 정상적으로 작동하는 것이 명확하므로, 이는 DigitalOcean의 동작과 관련된 문제라고 추정하는 것이 안전할 것입니다. 하지만 여기에서 비슷한 현상을 경험하신 분이 계셔서 올바른 방향으로 이끌어 주시기를 바랍니다.