Discourse가 처리하도록 두는 것입니다. 이렇게 하면 디스크 공간의 3배가 필요합니다. 따라서 DB가 100GB라면 업그레이드를 위해 공백 상태의 추가 200GB가 필요합니다. 대용량 설치 환경의 사용자에게는 명백한 큰 문제입니다.
“수동 업데이트” 절차를 따르는 것입니다. 이 방법은 디스크 공간의 2배가 필요하므로, DB가 100GB라면 추가 100GB의 공백 공간이 필요합니다. 일부 사용자에게도 여전히 큰 문제입니다.
이 게시글에서 @Falco는 하드 링크를 사용하여 인플레이스(in-place) 업그레이드를 수행하기 위해 --link 옵션을 사용하라고 제안했습니다. 그가建议使用하는 Docker 컨테이너는 해당 인수를 지원하지만, Discourse 개발진은 해당 게시글에서 이를 사용할 것을 권장하지 않습니다.
따라서 제 질문은 다음과 같습니다. 옵션 3은 다음과 같이 되어야 하는가요?
아래 명령어를 실행하면 매우 적은 양의 추가 디스크 공간만 필요합니다. 예를 들어 DB가 100GB라면 추가 10GB 정도만 필요할 수 있습니다. 그렇다면 이것이 Discourse 개발진이 권장하는 절차이며, 실제로 시도해 보고 성공적으로 완료한 사람이 있는가요?
새로운 인플레이스 업그레이드 명령어:
docker run --rm \
-v DIR:/var/discourse/shared/standalone/postgres_data:/var/lib/postgresql \
tianon/postgres-upgrade:12-to-13 \
--link
만약 그렇게 한 사람이 있었다면, 여기서는 언급하지 않았습니다. 여기의 대부분의 지침은 최대한 실수를 방지하도록 설계되어 있으며, 시스템 관리에 대한 최소한의 지식을 요구합니다. 대부분의 사람들은 아주 적은 돈을 아끼기 위한 방법보다는 가장 안전하고 가장 많이 테스트된 방법을 선호합니다.
당신에게 효과가 있다면, PostgreSQL 13 업데이트에 맞게 업데이트할 수 있지만, 그렇게 하기 전에 bash가 무엇인지 모르는 사람에게 그렇게 하라고 권장하는 것이 괜찮다고 생각합니까? 데이터베이스가 손상되지 않고 사이트가 영원히 망가지지 않을 것이라고 확신합니까?
그 아이디어는 다른 유용한 정보가 제시되면, 사람들이 도움이 되거나 오히려 잘못된 것으로 밝혀질 수 있는 수년치 게시글을 읽어야 하는 대신 OP(원문)에 추가하자는 것입니다.
네, 하지만 그 작업에는 하루에서 이틀 정도가 걸릴 겁니다. 그 기간 동안에는 a) 해당 기간 동안 작성된 게시물이 삭제될 수 있음을 사용자에게 알리거나, b) 포럼을 읽기 전용으로 설정하는 두 가지 방법 중 하나를 선택할 수 있습니다. 어느 쪽이든 완벽한 해결책은 아닙니다.
아니요, 업그레이드는 한 번도 하지 않았습니다. DB를 삭제하고 백업에서 복구하는 것은 꽤 위험해 보입니다. 기본적으로 인플레이스 업그레이드가 제대로 작동해야 합니다.
우리는 2023년에 지원이 종료되는 ubuntu 18.04를 사용 중입니다. 그래서 그 시점에는 어쩔 수 없이 새로운 호스트로 마이그레이션해야 할 것 같고, 그때를 기점으로 마음을 단단히 먹고 22.04 LTS가 설치된 새로운 호스트를 구축한 뒤 백업에서 복구할 계획입니다.
그럴 수도 있겠지만, 저는 postgres에 대해 전문 지식이 많지 않아서 직접 진행하는 데 자신이 없습니다. 반면, 완전히 다른 VM에서 백업으로 사이트 전체를 복구하는 것은 자신감이 있지만, 복구에 걸리는 시간만큼 게시물이 사라지는 결과를 감수해야 하므로 그것도 별로 달갑지 않습니다. 하지만 18.04가 더 이상 지원되지 않으므로, 내년에는 선택지가 많지 않을 것입니다.