
확장 가능한 MongoDB 데이터베이스 설정 방법
MongoDB는 NoSQL 데이터베이스로 내장된 복제와 슬라이싱 등 강력한 기능을 제공합니다.이렇게 하면 서버 간에 컨텐츠를 배포하여 데이터베이스를 여러 서버로 확장할 수 있습니다.
MongoDB와 관련된 모든 것을 설치하기 전에 하드웨어의 선택이 정확하고 소프트웨어가 미세한 조정을 거쳤는지 확인해야 합니다.
사용할 하드 드라이브를 선택할 수 있는 경우 RAID1의 엔터프라이즈급 듀얼 SSD 드라이브를 선택합니다.앞서 언급한 바와 같이, 그것들의 성능은 매우 좋으며, 실제로는 당신을 위해 자금을 절약할 수 있습니다.
Linux에서/etc/fstab 파일을 편집하고 MongoDB에서 사용할 마운트에 대한 액세스 시간 로깅을 비활성화합니다.4열에 noatime 추가하기
파티션 다시 마운트:
[[email protected]~]#마운트 - o 다시 마운트/
새 설정이 적용되는지 확인합니다.
[[email protected]~]#마운트
/dev/sda on/type ext4(rw,noatime)
MongoDB를 VM 모니터로 설정하면 나중에 RAM 및 CPU 코어를 확장할 수 있습니다.할당해야 할 CPU 코어 및 RAM 수는 인프라 요구 사항 및 예산에 따라 달라집니다.
가장 유용한 팁은 데이터베이스 쿼리를 최적화하는 것입니다. 자주 사용하는 검색 또는 정렬 검색에 색인을 추가합니다. MongoDB의 explain() 명령을 사용합니다. 반환 중인 검색 결과 및 제한 필드를 제한합니다. 테스트 목적으로 우리는 3개의 액적을 회전할 것이다.
이 과정은 몬godb1, 몬godb2와 몬godb3에서 같다.CentOS에 MongoDB를 설치하는 것은 매우 간단합니다.편집을 통해 다음 저장소 추가
백승.환매 협의d/10인치.되팔다
[10개]
이름 = 10gen
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
활성화됨 = 1
패키지를 설치하려면 다음과 같이 하십시오.
[[email protected]~] #yum-y mongo-10gen mongo-10gen-server 설치
MongoDB를 재부팅할 때 시작하고 서비스를 시작할 수 있습니다.
[[email protected]~] #chkconfig monod on & 서비스 monod 시작
시작 mongod: 갈라짐 프로세스: 1387
모든 출력은/var/log/mongo/mongod로 넘어갑니다.로그
하위 프로세스가 성공적으로 시작되었습니다. 부모 프로세스가 종료되고 있습니다.
[확인]
지금 보실 수 있을 거예요.http://SERVER:28017/
우리는 몬godb1을 메인 서버로 지정할 것입니다./etc/mongod에 "master=true"를 추가합니다.conf 및 do
서비스 몬god 리셋
몬godb2와 몬godb3는 종속으로 설정됩니다.
/etc/mongod에'slave=true','source=mongodb1'을 추가합니다.conf 및 do
서비스 몬god 리셋
이제 암호를 사용하여 데이터베이스를 보호하거나 포트 27017(MongoDB)과 28017(Web 인터페이스)에 iptables 규칙을 추가해야 합니다.
암호를 사용하여 사용자를 만들려면 다음과 같이 하십시오.
> 테스트 사용
> 데이터베이스.addUser('admin','password');
{
“user”:“admin”,
읽기 전용: false,
“pwd”:“90f500568434c37b61c8c1ce05fdf3ae”,
“\u id”:ObjectId(“50eaae88790af41ffffdcc58”)
}
또한 다른 MongoDB 서버, IP 및 스토리지를 제한하기 위해 방화벽 규칙을 추가해야 합니다.
[[email protected]~]#iptables-N MongoDB
[[email protected]~] #iptables-I 입력-s 0/0-p tcp-dport 27017-j MongoDB
[[email protected]~]#iptables-I 입력-s 0/0-p tcp-dport 28017-j MongoDB
[[email protected]~]#iptables-I MongoDB-s 127.0.0.1-j ACCEPT
[[email protected]~]#iptables-I MongoDB-s 192.34.57.64-j ACCEPT
[[email protected]~]#iptables-I MongoDB-s 192.34.56.123-j ACCEPT
[[email protected]~]#iptables-I MongoDB-s 192.34.57.162-j ACCEPT
[[email protected]~] #iptables-A MongoDB-s 0/0-j 드래그
[[email protected]~]\/etc/init.d/iptables 저장
iptables: 방화벽 규칙을/etc/sysconfig/iptables: [확인]
다른 MongoDB 서버(mongodb2, mongodb3)에서 이 과정을 반복합니다.
프런트엔드에서 PHP를 사용하는 경우 MongoDB module for PHP를 설치해야 합니다.
[[email protected]~] #pecl mongo 설치
[[email protected]~]#echo extension=mongo.그래서 >>`php-i | grep/php.ini | awk {5달러 인쇄}`
[[email protected]~]# 서비스 httpd 재시작
이제 우리는 우리의 새로운 설정을 테스트하기 시작할 수 있다.명령 셸에서 mongo를 입력하여 데이터베이스에 액세스할 수 있습니다.
[[email protected]~]#mongo
MongoDB 셸 버전: 2.2.2
연결: 테스트
뉴욕타임스 베스트셀러 목록을 데이터베이스에 입력하여 테스트해 보겠습니다.
> 데이터베이스.서적저장({제목:'안전항', 저자:'니콜라스 스파크스'})
> 데이터베이스.서적저장({제목:"Gone Girl", 작성자:"Gillian Flynn")
> 데이터베이스.서적저장({제목: "Callie와 Kayden의 우연", 저자: "Jessica Sorensen")
> 데이터베이스.서적저장({제목: "50가지 회색", 저자: "E.L.James")
> 데이터베이스.서적저장({제목:'무망', 저자:'콜린 호버'})
모든 결과를 표시하려면 다음과 같이 하십시오.
> 데이터베이스.서적찾기 ()
{"\uid": ObjectId("50eaa4b633625147f205994"), "title": "안전항", "author": "Nicholas Sparks"}
{“\u id”:ObjectId(“50eaaa62633625147f205995”),“title”:“Gone Girl”,“author”:“Gillian Flynn”}
{"\uid": Objectid("50EAA8D63365147F205996"), "title": "Callie와 Kayden의 우연", "author": "제시카 Sorensen"}
{"\uid": Objectid("50eaaaa0633625147f205997"), "title": "50가지 회색", "author": "E.L.James"}
{"\uid": ObjectId("50eaaab3625147f205998"), "title": "절망", "author": "ColleenHoover"}
복사본이기 때문에 몬godb2와 몬godb3에서 같은 항목을 볼 수 있어야 합니다.
출판사 이름, ISBN 번호, 평균 고객 평가, 서면 언어 등 다양한 값을 입력할 수 있습니다.그러나 검색을 최적화하기 위해서는 결과의 수량과 되돌아오는 필드의 수량을 제한하는 것이 좋다.
예를 들어, 결과를 두 개만 되돌리려면 끝에 limit () 를 사용합니다.
> 데이터베이스.서적찾기({}, {제목: 1, 저자: 1}).정렬({타임 스탬프:-1}).제한 (2)
{"\uid": ObjectId("50eaa4b633625147f205994"), "title": "안전항", "author": "Nicholas Sparks"}
{“\u id”:ObjectId(“50eaaa62633625147f205995”),“title”:“Gone Girl”,“author”:“Gillian Flynn”}
현재 설정된 최대 용량에 도달하면 데이터베이스 분할을 시작할 수 있습니다.우리는 앞으로의 게시물에서 이 점을 소개할 것이다.
브라트 하미토프
MongoDB와 관련된 모든 것을 설치하기 전에 하드웨어의 선택이 정확하고 소프트웨어가 미세한 조정을 거쳤는지 확인해야 합니다.
1. 하드 드라이브
사용할 하드 드라이브를 선택할 수 있는 경우 RAID1의 엔터프라이즈급 듀얼 SSD 드라이브를 선택합니다.앞서 언급한 바와 같이, 그것들의 성능은 매우 좋으며, 실제로는 당신을 위해 자금을 절약할 수 있습니다.
Linux에서/etc/fstab 파일을 편집하고 MongoDB에서 사용할 마운트에 대한 액세스 시간 로깅을 비활성화합니다.4열에 noatime 추가하기

파티션 다시 마운트:
[[email protected]~]#마운트 - o 다시 마운트/
새 설정이 적용되는지 확인합니다.
[[email protected]~]#마운트
/dev/sda on/type ext4(rw,noatime)
2, CPU 및 메모리
MongoDB를 VM 모니터로 설정하면 나중에 RAM 및 CPU 코어를 확장할 수 있습니다.할당해야 할 CPU 코어 및 RAM 수는 인프라 요구 사항 및 예산에 따라 달라집니다.
3. 최적화
가장 유용한 팁은 데이터베이스 쿼리를 최적화하는 것입니다.

설치
이 과정은 몬godb1, 몬godb2와 몬godb3에서 같다.CentOS에 MongoDB를 설치하는 것은 매우 간단합니다.편집을 통해 다음 저장소 추가
백승.환매 협의d/10인치.되팔다
[10개]
이름 = 10gen
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
활성화됨 = 1
패키지를 설치하려면 다음과 같이 하십시오.
[[email protected]~] #yum-y mongo-10gen mongo-10gen-server 설치
MongoDB를 재부팅할 때 시작하고 서비스를 시작할 수 있습니다.
[[email protected]~] #chkconfig monod on & 서비스 monod 시작
시작 mongod: 갈라짐 프로세스: 1387
모든 출력은/var/log/mongo/mongod로 넘어갑니다.로그
하위 프로세스가 성공적으로 시작되었습니다. 부모 프로세스가 종료되고 있습니다.
[확인]
지금 보실 수 있을 거예요.http://SERVER:28017/
마스터 복사본 세트 설정
우리는 몬godb1을 메인 서버로 지정할 것입니다./etc/mongod에 "master=true"를 추가합니다.conf 및 do
서비스 몬god 리셋

몬godb2와 몬godb3는 종속으로 설정됩니다.
/etc/mongod에'slave=true','source=mongodb1'을 추가합니다.conf 및 do
서비스 몬god 리셋

이제 암호를 사용하여 데이터베이스를 보호하거나 포트 27017(MongoDB)과 28017(Web 인터페이스)에 iptables 규칙을 추가해야 합니다.
암호를 사용하여 사용자를 만들려면 다음과 같이 하십시오.
> 테스트 사용
> 데이터베이스.addUser('admin','password');
{
“user”:“admin”,
읽기 전용: false,
“pwd”:“90f500568434c37b61c8c1ce05fdf3ae”,
“\u id”:ObjectId(“50eaae88790af41ffffdcc58”)
}
또한 다른 MongoDB 서버, IP 및 스토리지를 제한하기 위해 방화벽 규칙을 추가해야 합니다.
[[email protected]~]#iptables-N MongoDB
[[email protected]~] #iptables-I 입력-s 0/0-p tcp-dport 27017-j MongoDB
[[email protected]~]#iptables-I 입력-s 0/0-p tcp-dport 28017-j MongoDB
[[email protected]~]#iptables-I MongoDB-s 127.0.0.1-j ACCEPT
[[email protected]~]#iptables-I MongoDB-s 192.34.57.64-j ACCEPT
[[email protected]~]#iptables-I MongoDB-s 192.34.56.123-j ACCEPT
[[email protected]~]#iptables-I MongoDB-s 192.34.57.162-j ACCEPT
[[email protected]~] #iptables-A MongoDB-s 0/0-j 드래그
[[email protected]~]\/etc/init.d/iptables 저장
iptables: 방화벽 규칙을/etc/sysconfig/iptables: [확인]
다른 MongoDB 서버(mongodb2, mongodb3)에서 이 과정을 반복합니다.
프런트엔드에서 PHP를 사용하는 경우 MongoDB module for PHP를 설치해야 합니다.
[[email protected]~] #pecl mongo 설치
[[email protected]~]#echo extension=mongo.그래서 >>`php-i | grep/php.ini | awk {5달러 인쇄}`
[[email protected]~]# 서비스 httpd 재시작
데이터로 데이터베이스 채우기
이제 우리는 우리의 새로운 설정을 테스트하기 시작할 수 있다.명령 셸에서 mongo를 입력하여 데이터베이스에 액세스할 수 있습니다.
[[email protected]~]#mongo
MongoDB 셸 버전: 2.2.2
연결: 테스트
뉴욕타임스 베스트셀러 목록을 데이터베이스에 입력하여 테스트해 보겠습니다.
> 데이터베이스.서적저장({제목:'안전항', 저자:'니콜라스 스파크스'})
> 데이터베이스.서적저장({제목:"Gone Girl", 작성자:"Gillian Flynn")
> 데이터베이스.서적저장({제목: "Callie와 Kayden의 우연", 저자: "Jessica Sorensen")
> 데이터베이스.서적저장({제목: "50가지 회색", 저자: "E.L.James")
> 데이터베이스.서적저장({제목:'무망', 저자:'콜린 호버'})
모든 결과를 표시하려면 다음과 같이 하십시오.
> 데이터베이스.서적찾기 ()
{"\uid": ObjectId("50eaa4b633625147f205994"), "title": "안전항", "author": "Nicholas Sparks"}
{“\u id”:ObjectId(“50eaaa62633625147f205995”),“title”:“Gone Girl”,“author”:“Gillian Flynn”}
{"\uid": Objectid("50EAA8D63365147F205996"), "title": "Callie와 Kayden의 우연", "author": "제시카 Sorensen"}
{"\uid": Objectid("50eaaaa0633625147f205997"), "title": "50가지 회색", "author": "E.L.James"}
{"\uid": ObjectId("50eaaab3625147f205998"), "title": "절망", "author": "ColleenHoover"}
복사본이기 때문에 몬godb2와 몬godb3에서 같은 항목을 볼 수 있어야 합니다.

출판사 이름, ISBN 번호, 평균 고객 평가, 서면 언어 등 다양한 값을 입력할 수 있습니다.그러나 검색을 최적화하기 위해서는 결과의 수량과 되돌아오는 필드의 수량을 제한하는 것이 좋다.
예를 들어, 결과를 두 개만 되돌리려면 끝에 limit () 를 사용합니다.
> 데이터베이스.서적찾기({}, {제목: 1, 저자: 1}).정렬({타임 스탬프:-1}).제한 (2)
{"\uid": ObjectId("50eaa4b633625147f205994"), "title": "안전항", "author": "Nicholas Sparks"}
{“\u id”:ObjectId(“50eaaa62633625147f205995”),“title”:“Gone Girl”,“author”:“Gillian Flynn”}
현재 설정된 최대 용량에 도달하면 데이터베이스 분할을 시작할 수 있습니다.우리는 앞으로의 게시물에서 이 점을 소개할 것이다.
브라트 하미토프