스냅샷 복원이 아닌 dump 파일을 restore 하는 방법입니다.
1. RDS 데이터를 s3로 dump rds -> s3
pg_dump -v -h ${DATABASE_HOST} -U ${DATABASE_USER} -d ${DATABASE_NAME} | aws s3 cp --storage-class STANDARD_IA --sse aws:kms - s3://my-bucket/dump.sql
번외 덤프 파일로 s3 저장만 한다면 압축해서 저장한다.
pg_dump -Z 9 -v -h ${DATABASE_HOST} -U ${DATABASE_USER} -d ${DATABASE_NAME} | aws s3 cp --storage-class STANDARD_IA --sse aws:kms - s3://my-bucket/dump.sql.gz
2. S3의 덤프 데이터를 RDS로 restore s3 -> rds
- 당연히 s3 파일에 접근 가능한 권한이 있어야 합니다.
- 파일경로는 s3:// 가 아닌 https:// 로 되어야 합니다.
wget -O - 's3의 dump 파일 경로' | psql -h ${DATABASE_HOST} -U ${DATABASE_USER} -d ${DATABASE_NAME}
2-1. 해당 *.sql을 다운로드 받은 후 import
psql -h ${DATABASE_HOST} -U ${DATABASE_USER} -d ${DATABASE_NAME} < dump.sql
번외
pg_restore: error: input file does not appear to be a valid archive
>> pg_store 대신 psql 명령어로 실행하세요.
ERROR: invalid byte sequence for encoding "UTF8": 0xa1
덤프 파일이 UTF-8 형식이 아닐 경우의 에러 , file 커맨드로 타입을 확인해 보자
>> file ${파일 이름}
dump.sql: UTF-8 Unicode text
참고
https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/PostgreSQL.Procedural.Importing.html
'aws' 카테고리의 다른 글
aws codedeploy Could not download bundle at after 3 retries. Server returned codes: 404 'Not Found'; 404 'Not Found'; 404 'Not Found'; 404 'Not Found'. (0) | 2022.06.23 |
---|---|
aws cloudfront s3 access denied (0) | 2022.02.10 |
ec2 python3 설치 (0) | 2021.03.10 |
aws lambda는 서버를 대신하지 않아 (0) | 2019.08.14 |
route53 s3 no targets available (0) | 2018.08.11 |