본문 바로가기
인프라/텐센트 클라우드

[TENCENT CLOUD] tencent for MongoDB migration 몽고디비 마이그레이션, 구축

by IT맥구리나스 2025. 5. 15.

개요

- 기존 리눅스위에 있는 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

반응형

댓글