웹사이트의 백업 화면에 진입하면 현재 모든 백업 상태를 확인할 수 있습니다.
다운로드 버튼을 클릭합니다.
다운로드를 시작하면 시스템이 이메일 주소로 링크를 전송합니다.
이메일에서 받은 링크를 사용하여 데이터를 다운로드할 수 있습니다.
다운로드 링크
이메일에서 받은 다운로드 링크 주소를 클릭하여 다운로드합니다.
다운로드된 파일은 tar.gz 파일이며, 압축을 해제해야 사용할 수 있습니다.
예를 들어, 현재 다운로드한 파일은 다음과 같습니다: isharkfly-2023-09-14-092024-v20230910021213.tar
복잡한 압축 해제 과정을 거치면 dump.sql 파일을 볼 수 있습니다.
이 파일이 바로 모든 데이터베이스 백업입니다.
데이터 복구
Windows 환경에서 PQadmin의 psql 설치 경로는 다음과 같습니다: C:\Users\yhu\AppData\Local\Programs\pgAdmin 4\v7\runtime
실행 명령어는 다음과 같습니다: psql -h nas1120 -p 5433 -U postgres -W -d discourse -f C:\Users\yhu\Downloads\isharkfly-2023-09-14-092024-v20230910021213\isharkfly-2023-09-14-092024-v20230910021213\dump.sql\dump.sql
로컬 데이터베이스는 복원 시 중복으로 덮어쓸 수 없습니다.
로컬에 데이터베이스가 이미 존재하는 경우, 복원을 진행하기 전에 기존 로컬 데이터베이스를 비워야 합니다.
백업 복원 과정에서는 모든 데이터와 테이블 구조를 복원해야 합니다.
복원 프로그램은 기존 데이터 구조 위에 복원하거나 증분 복원을 수행할 수 없습니다.
테이블 데이터 확인
테이블 데이터를 확인하여 일부 테이블 데이터가 현재 상태로 복원되었는지 점검합니다.
타임스탬프는 일반적으로 좋은 검증 방법입니다.
Lhc_fl
(Linca)
2
보충 내용입니다.
이메일 서비스가 실패하면, SSH 권한이 있는 관리자는 /var/discouse/{standalone | web_only}/backup/default 경로에서 모든 백업 파일을 확인할 수 있습니다.
참고:
이메일 서비스가 실패하면, SSH 권한이 있는 관리자는 /var/discouse/{standalone | web_only}/backup/default 경로에서 모든 백업 파일을 확인할 수 있습니다.
Minio를 사용하여 백업을 하는 방법을 알려 주실 수 있을까요? 로그의 오류 메시지를 이해할 수 없어서 다음과 같은 로그를 첨부합니다:
....
[2023-10-03 13:33:24] Removing tmp '/var/www/discourse/tmp/backups/default/2023-10-03-133319' directory...
[2023-10-03 13:33:24] Gzipping archive, this may take a while...
[2023-10-03 13:33:25] Uploading archive...
[2023-10-03 13:33:27] EXCEPTION: Aws::S3::Errors::Forbidden
[2023-10-03 13:33:27] /var/www/discourse/vendor/bundle/ruby/3.2.0/gems/aws-sdk-s3-1.114.0/lib/aws-sdk-s3/object.rb:445:in `rescue in exists?'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/aws-sdk-s3-1.114.0/lib/aws-sdk-s3/object.rb:440:in `exists?'
/var/www/discourse/lib/backup_restore/s3_backup_store.rb:46:in `upload_file'
/var/www/discourse/lib/backup_restore/backuper.rb:344:in `upload_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:41:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2023-10-03 13:33:27] Deleting old backups...
[2023-10-03 13:33:28] Cleaning stuff up...
[2023-10-03 13:33:28] Removing archive from local storage...
[2023-10-03 13:33:28] Removing '.tar' leftovers...
[2023-10-03 13:33:28] Marking backup as finished...
[2023-10-03 13:33:28] Notifying 'XXX' of the end of the backup...
위 로그는 S3에 권한이 없음을 의미하는 것 같습니다.
S3 권한 설정이 올바른지 확인해 보세요.
아래는 제 설정입니다. 고수님들 중 한 분이 설정에 문제가 있는 부분을 봐 주실 수 있을까요?
- Discourse 설정
- Minio 백업 버킷 권한 설정
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::discourse-backup"
]
},
{
"Effect": "Allow",
"Principal": {
"AWS": [
"*"
]
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::discourse-backup/*"
]
}
]
}
- Minio 업로드 버킷 권한은 public으로 설정되어 있습니다.
이 글은 아직 path style이 지원되던 시절의 것입니다. 지금은 dns style만 지원하며, Minio 설정에 관한 튜토리얼을 어디서도 찾을 수 없습니다.
아마도 Minio 설정 쪽에 문제가 있을 것 같습니다.
다른 도구, 예를 들어 버킷에 직접 접근할 수 있는 도구를 사용해 직접 업로드를 시도해 보세요.
여기서 직접 업로드가 가능하다면 대부분 Discourse 설정 문제일 가능성이 높고, 직접 업로드가 안 되면 대부분 권한 문제일 것입니다.