개요
- 기존 리눅스위에 있는 mongodb의 데이터를 tencent cloud의 tecent for mongoDB에 마이그레이션 할 수 있다.
작업내역
- ubuntu24.04에 mongdb를 설치하고 데이터를 넣는다
- tencnet for mongdb에 마이그레이션을 수행하고 데이터가 옮겨졌는지 확인한다.
ubuntu24.04에 mongdb를 설치
# mongodb 설치
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse
systemctl start mongod
systemctl status mongod
# testdb에 데이터 삽입하기
mongosh
use testdb
for (let i = 0; i < 100; i++) {
db.users.insertOne({
name: `테스트${i}`,
age: Math.floor(Math.random() * 50) + 20, // 20~70세 랜덤
email: `user${i}@example.com`,
city: ["평양", "개성"][Math.floor(Math.random() * 2)],
createdAt: new Date()
});
}
Tencent for MongoDB 생성
Public Access Enabled 설정후 LB에 연동
Data security 탭에서 Security Group설정
100.64.0.0/10 TCP 27017 은 CLB에서 서버로 헬스체크하기 위한 정책이다.
테스트라서 0.0.0.0/0로 설정한 것... 서비스서버에서는 서버아이피를 꼭 지정해준다.
37017은 무시한다..
원본 DB와 tencent for mongoDB에 마이그레이션을 위한 계정 생성
원본DB
use admin
db.createUser({user: "username",pwd: "password",roles:[{role: "readAnyDatabase", db: "admin"},{role: "read", db: "local"}]})
tencent for DB
use admin
db.createUser({user:"username",pwd:"password",roles:[{role:"readWriteAnyDatabase",db:"admin"}]})
데이터 마이그레이션
백업파일을 다운받아서 업로드하여 복원하는 방식이 아님
Database > Data Transfer service > Data Migration
Migration Task를 생성하여 이전한다.
Create Migration Task 클릭
Source Instance Type을 MongoDB로 선택, Region은 사용하는 지역에 맞게.. 나머지는 건즐디 말고 생성한다
Migration Task 생성 후 해당 테스크 왼쪽 operation 열에 보면 Configure 클릭
원본DB , tencent for MongDB 정보 기재
아까 생성한 계정의 Test connectivity가 통과되면 다음 단계로 넘어갈 수 있다.
마이그레이션 방법, 그냥 Next 눌러준다
가운데 Verify 버튼을 눌러주면 검증을하고 검증내용에따라 작업 시작 유무가 정해진다.
start task가 활성화 되면 버튼 클릭 > 동기화가 되었는지 확인한다.
그림에 보면 oplogcheck쪽에 에러가 있는데
테스트로 구축한 mongodb쪽에 리플리케이션 설정이 안되어 있어서 발생한 문제이다.
oplogCheck
MongoServerError[NOREPLICATIONENABLED]: This node was not started with replication enabled
/etc/mongod.conf 에서 아래 내역 추가
서비스 재시작
systemctl restart mongod
복제세트 초기화
mongosh
rs.initiate()
외부접속을 위한 /etc/mongod.conf에 bind ip 설정
마이그레이션이 되는 스케줄이 있어 주기적으로 되는 듯하다.
한번 마이그레이션 하고, 신규데이터를 또 밀어 넣고 싶을땐 Data Confisency check 탭에 가서
create Data Consistency Check Task를 생성하여 동기화를 한다.
그러면 최초 동기화 이후 추가된 데이타를 받을 수 있다.
참고한 가이드 자료 : https://www.tencentcloud.com/document/product/571/63302#8f991aa1-527c-4916-a820-8f12d29224c6
'인프라 > 텐센트 클라우드' 카테고리의 다른 글
[TENCENT CLOUD] 텐센트 클라우드 유저 계정 패스워드 만료기한 (0) | 2025.02.19 |
---|---|
[TENCENT CLOUD] 텐센트 클라우드 PUBLIC IP > EIP로 전환 (0) | 2024.12.24 |
[TENCENTCLOUD] GCP VM TENCENTCLOUD migration (0) | 2024.12.13 |
[TENCENT CLOUD] 텐센트 클라우드 yum update 안됨 (0) | 2024.11.12 |
[TENCENT CLOUD] 텐센트 클라우드 이미지 삭제버튼 비활성화 (0) | 2024.11.07 |
댓글