시스템 백업을 실행하려고 하면 다음 오류가 발생합니다: “백업에 실패했습니다. 로그를 확인해 주세요.”
로그에는 다음과 같이 보고됩니다: pg_dump: [archiver (db)] connection to database "discoursedb" failed: could not connect to server: Connection refused
두 가지 문제가 동시에 발생하고 있다고 생각합니다:
원격 서버가 비표준 포트에서 실행되고 있습니다.
원격 PostgreSQL이 더 새로운 PSQL 버전을 실행하고 있습니다.
앱에 진입(/var/discourse/launcher enter app)하여 수동 백업을 실행했을 때, 포트 정의가 없는 초기 상태에서 정확히 동일한 오류가 발생했음을 확인했습니다:
$ pg_dump -h 123.456.789.101 -U username -W -F t discourse_db > discourse_db_backup.tar
Password:
pg_dump: [archiver (db)] connection to database "discourse_db" failed: could not connect to server: Connection refused
Is the server running on host "123.456.789.101" and accepting
TCP/IP connections on port 5432?
따라서 이 문제는 쉽게 해결되었습니다(다만 Discourse가 백업 시 올바른 포트를 사용하도록 강제하는 방법을 모르겠음), 그러나 다음 문제는 다소 우려스러웠습니다. 데이터베이스 서버에서 더 새로운 버전의 PSQL을 사용 중이기 때문입니다:
$ pg_dump -h 123.456.789.101 -p 45678 -U username -W -F t discourse_db > discourse_db_backup.tar
Password:
pg_dump: server version: 11.5 (Ubuntu 11.5-3.pgdg18.04+1); pg_dump version: 10.10 (Debian 10.10-1.pgdg100+1)
pg_dump: aborting because of server version mismatch
이러한 상황에서 무엇을 할 수 있을까요? 이 경우 실제 시스템 백업을 정상적으로 작동시킬 방법이 있나요, 아니면 Discourse와 PostgreSQL 데이터베이스를 별도로 백업해야 하나요?
후자가 유일한 옵션이라면, 적어도 데이터를 백업하는 올바른 방법은 무엇인가요? 그리고 새로운 스크립트를 작성하지 않고도 이 두 가지를 동시에 수행할 수 있는 선호되는 통합 메커니즘이 제공됩니까?