23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
Percona 사에서 개발/제공하는 MongoDB Backup 솔루션 Percona Backup for MongoDB 소개합니다.
|
설명 |
장점 |
단점 |
|
오픈소스 DB그룹 Percona Tool lock-in 없이 사용 가능 시점 복구 및 백업속도 개선 User Interface 제공 |
샤드 클러스터 일관성 보장 AWS S3 호환 가능 압축 및 병렬 수행 à 속도 개선 백업 시간예상/진행현황 확인 가능 DB성능 영향 최소화 시점 복구 가능 |
엔진 부하를 최소화 했으나 |
백업 방식 비교
기능 및 비용면에서 Percona Backup for MongoDB 활용도가 높음
.png)
PBM Architecture
pbm-agent 가 각 DB노드에 설치됩니다. 각 노드 상태 점검, 백업/복구 명령을 수행합니다.
.png)
OpLog를 활용하여 시점복구를 제공합니다.
.png)
PBM 설치
|
단계 |
command |
|
유저 생성 |
db.getSiblingDB("admin").createRole({ "role": "pbmAnyAction", "privileges": [ { "resource": { "anyResource": true }, "actions": [ "anyAction" ] } ], "roles": [] }); db.getSiblingDB("admin").createUser({user: "pbmuser", "pwd": "secretpwd", "roles" : [ { "db" : "admin", "role" : "readWrite", "collection": "" }, { "db" : "admin", "role" : "backup" }, { "db" : "admin", "role" : "clusterMonitor" }, { "db" : "admin", "role" : "restore" }, { "db" : "admin", "role" : "pbmAnyAction" } ] }); |
|
Percona repo 설치 |
yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm percona-release enable pbm release |
|
단계 |
command |
|
패키지 설치 |
percona-backup-mongodb |
|
Service 등록 |
vi /usr/lib/systemd/system/pbm-agent.service [Unit] Description=pbm-agent After=time-sync.target network.target
[Service] EnvironmentFile=-/etc/default/pbm-agent Type=simple User=pbm Group=pbm PermissionsStartOnly=true ExecStart=/usr/bin/pbm-agent
[Install] WantedBy=multi-user.target |
|
PBM-data 설정 |
# mkdir –p /MONGO/pbm # vi /MONGO/pbm/pbm_config.yaml
storage: type: s3 s3: region: ap-northeast-2 bucket: sanghunpbm credentials: access-key-id: [KEY-ID] secret-access-key: [KEY] |
|
단계 |
command |
|
PBM-data 설정 적용 |
# pbm config --file=/MONGO/pbm/pbm_config.yaml --mongodb-uri "mongodb://pbmuser:secretpwd@127.0.0.1:27017/" [Config set] ------ pitr: enabled: false storage: type: s3 s3: provider: aws region: ap-northeast-2 bucket: sanghunpbm credentials: access-key-id: '***' secret-access-key: '***' |
|
기동 |
cd /MONGO/pbm nohup pbm-agent --mongodb-uri "mongodb://pbmuser:secretpwd@localhost:27017" > pbm-agent.log 2>&1 & |
PBM 백업 & 복구
백업
|
단계 |
command |
|
시점복구 설정 |
pbm config --set pitr.enabled=true |
|
백업수행 |
pbm backup |
|
백업확인 |
# pbm list Backup snapshots: 2020-09-29T08:50:37Z PITR 2020-09-29T08:42:14 - 2020-09-29T08:50:56 2020-09-29T08:50:57 - 2020-09-29T09:11:29 |
S3 bucket 에서 백업파일 확인
.png)
복구
|
단계 |
command |
|
테스트 데이터생성 |
use pbmtest; db.pbm_table.insert({"date":new Date(Date.now())}); db.pbm_table.insert({"date":new Date(Date.now())}); …… db.pbm_table.insert({"date":new Date(Date.now())}); |
|
데이터 확인 |
db.pbm_table.find() |
|
단계 |
command |
|
장애 유발 데이터 삭제 |
> use pbmtest; > db.deleteMany({}) > db.pbm_table.deleteMany({}) { "acknowledged" : true, "deletedCount" : 57 }
|
|
백업확인 |
# pbm list Backup snapshots: 2020-09-29T08:50:37Z PITR 2020-09-29T08:42:14 - 2020-09-29T08:50:56 2020-09-29T08:50:57 - 2020-09-29T09:11:29 |
|
단계 |
command |
|
복구 수행 |
pbm restore --time="2020-09-29T09:21:25" ...Restore to the point in time '2020-09-29T09:21:25' has started |
|
복구 데이터 확인 |
db.pbm_table.find()
à 09:21:25 이전까지 복구 완료 |
.png)
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.