Монгодб - Ово је бесплатна, опен соурце, оријентисана база података, написана на Ц ++. Класификовано као НоСКЛ база података, пошто се не заснива на традиционалној релацијској бази података. Уместо у Монгодб се користе Јсон-слични документи са динамичним шемама. Шеме се могу мењати у било које прикладно време без потребе за инсталирањем нове базе података са ажурираном шемом.
Предност НоСКЛ База података испред уобичајених релацијских база података је да лако можете да конфигуришете хоризонтално скалирање, репликацију и оштрење. МонгоДБ базе података се често користе за чување докумената, тест датотека, маил порука итд..
У овом чланку ћемо размотрити инсталацију Монгодб на сервер са ЦентОС 7 или 8, извршите основну конфигурацију, а такође размотрите могућности оптимизације.
Садржај:
- Повежите МонгоДБ складиште
- Инсталирајте МонгоДБ на ЦентОС
- Основне МонгоДБ команде
- МонгоДБ конфигурациона датотека
- Оптимизирајте МонгоДБ за боље перформансе
Повежите МонгоДБ складиште
Монгодб Има своје складиште, одакле се врши инсталација. У стандардним спремиштима пакета за инсталирање овог сервера база података, бр. Направите датотеку за спремиште и додајте податке да бисте се повезали с њом:
# нано /етц/иум.репос.д/монгодб-орг.репо
Садржај датотеке биће следећи:
[монгодб-орг-4.2] наме = МонгоДБ Репозиториј базаурл = хттпс: //репо.монгодб.орг/иум/редхат/$релеасевер/монгодб-орг/4.2/к86_64/ гпгцхецк = 1 омогућено = 1 гпгкеи = хттпс: // ввв.монгодб.орг/статиц/пгп/сервер-4.2.асц
У тренутку писања текста, најновија верзија Монгодб у спремишту је било тачно 4.2. Пре инсталирања на сервер, посетите веб локацију програмера и проверите тренутну верзију.
Након креирања репо датотеке са опцијама спремишта, можете наставити с инсталацијом пакета.
Инсталирајте МонгоДБ на ЦентОС
Да бисте инсталирали потребне пакете за рад Монгодб, покрените наредбу иум или днф (на ЦентОС 8):
# иум инсталирајте монгодб-орг -и
Као и било која друга услуга, Монгодб треба покренути и додати за покретање:
# системцтл старт монгод
# системцтл омогућују монгод
Да бисте проверили да ли монгод сервис слуша на исправном порту (подразумевано ТЦП 27017), урадите:
# лсоф -и: 27017
Приступ МонгоДБ сервису можете да отворите у таласу датотека (испод је пример фиреваллд-а):
# фиревалл-цмд --адд-порт = 27017 / тцп - стални
# фиревалл-цмд - поновно учитавање
Дневници услуге доступни су у датотеци:
# реп -ф /вар/лог/монгодб/монгод.лог
При покретању Монгодб може да изађе упозорење:
** УПОЗОРЕЊЕ: меки обруч је пренизак. ограничава се на 4096 процеса, 64000 датотека. Број процеса треба да буде најмање 32000: 0,5 пута већи број датотека.
П.С. Нисам имао сличну грешку, али мрежа се често сусреће са сличним питањем и одлучио сам да опишем њено решење.
Да бисте решили проблем, морате да отворите датотеку /етц/сецурити/лимитс.д/20-нпроц.цонф и повећати лимите:
# нано /етц/сецурити/лимитс.д/20-нпроц.цонф
На крају датотеке додајте:
монгод софт нпроц 32000
Сачувајте датотеку и поново покрените сервис монгод:
# системцтл поново покрените монгод
Да бисте се пријавили на конзолу Монгодб, унесите монго:
[роот @ сервер монгодб] # монго
Верзија љуске МонгоДБ в4.2.2 која се повезује на: монгодб: //127.0.0.1: 27017 /? Цомпрессорс = дисаблед & гссапиСервицеНаме = монгодб Имплицит сессион: сессион "ид": УУИД ("ф75бее8ф-д71д-47фб-8728-6ф67фб7а6982") МонгоДБ верзија сервера: 4.2.2
Основне МонгоДБ команде
Размотрите неколико МонгоДБ наредби које се могу користити у монго љусци. Конкретно, креираћемо базу података, корисника и показати ћемо неколико других корисних команди.
За креирање базе података у Монгодб, требате покренути наредбу у ДБМС конзоли:
> користите буилдцентос
Приметили сте да је сличан ономе који се користи у мискл / мариадб за улазак у постојећу базу података? Ин Монгодб као што се испоставило да је све лакше.
Да бисте проверили да ли се заиста налазимо у овој бази података, урадите:
> дб
Али постоји једна нијанса, у ствари, нова база података неће бити створена све док у њу не спремите бар један документ. Ако глобално проверимо постојеће базе података, видећемо да наша база података није на списку:
> покажи дбс
Извршимо једноставан упит који ће документ сачувати у нашој бази података:
> дб.нев_цоллецтион.инсерт (соме_кеи: "соме_валуе")
Да бисте избрисали базу података, морате бити у истој бази података у којој ћете избрисати и извршити захтев:
> дб.дропДатабасе ()
На пример:
> користите буилдцентос
пребачен на дб буилдцентос
> дб.дропДатабасе ()
"испуштено": "буилдцентос", "ок": 1>
Након тога ће се база избрисати:
> покажи дбс
админ 0.000ГБ цонфиг 0.000ГБ локални 0.000ГБ>
Да бисте створили новог корисника са дозволама за читање и писање за вашу базу података, покрените следећи упит:
> дб.цреатеУсер (
корисник: "центос", пвд: "ревкрве213213", улоге: [роле: "реадВрите", дб: "буилдцентос"])
Да бисте прегледали кориснике, покрените упит:
> дб.гетУсерс ()
Или
> прикажи кориснике
Обе команде дају исти резултат:
Да бисте избрисали корисника:
> дб.дропУсер ('центос')
Након извршења команде, приликом пописивања корисника, нећете је имати:
> дб.дропУсер ('центос')
тачно
> дб.гетУсерс ()
МонгоДБ конфигурациона датотека
Као и код било које ДБМС, Монгодб постоји конфигурациона датотека смјештена дуж путање /етц/монгод.цонф. Размотрите његове главне параметре:
- Блок СистемЛог - одговоран за евидентирање. Минимални параметри који морају бити наведени у овом блоку да би се пријавило на посао:
системЛог: одредиште: филе логАппенд: труе патх: /вар/лог/монгодб/монгод.лог
- Блок ПроцессМанагемент - контрола процеса у којем се покреће МонгоДБ: форк - покреће демон у позадини да би база података радила, задана вредност је лажна пидФилеПатх - пут до ПИД датотеке тимеЗонеИнфо - указује на пут до датотеке за учитавање временских зона Пример цонфиг:
процессМанагемент: форк: труе # форк и покреће се у позадини пидФилеПатх: /вар/рун/монгодб/монгод.пид # локација времена пидфиле-аЗонеИнфо: / уср / схаре / зонеинфо
- Блокирај нето - служи за контролу рада са мрежом:
порт - означава број порта на коме ће се покренути монгод демон, подразумевани порт 27017
биндИп - ип адреса са које можете приступити бази података. Као и код мискл / мариадб, и ова поставка служи за сигурност, како би се избјегао приступ са вањских сервера. Ако овде наведете 127.0.0.1, веза ће радити само локално.
макИнцомингЦоннецтионс - број истовремених веза с којима МонгоДБ може да ради. Овај параметар не може премашити системски параметар; задана вредност је 65536
Пример:нет: порт: 27017 биндИп: 127.0.0.1
- Блокирај сигурност - овај блок је одговоран за сигурност: ауторизација - ако је опција омогућена, тада је потребна ауторизација корисника, без пријаве и лозинке веза с процесом који захтијева да се не успостави. ЈавасцриптЕнаблед - омогућавање / онемогућавање извршавања јавасцрипта на страни сервера.
- Блокирај складиште - блок одговоран за параметре складиштења базе података: дбПатх - низ који показује на којем ће месту бити похрањена база података. Подразумевано, / дата / дбјоурнал - ако је омогућено, укључује дневник дугог века тако да датотеке у бази података остају валидне и враћене.
стораге: дбПатх: / вар / либ / монго јоурнал: омогућено: труе
Напреднија подешавања можете наћи у МонгоДБ документацији на званичној веб локацији..
Оптимизирајте МонгоДБ за боље перформансе
За Монгодб Радило се довољно брзо и није било проблема, било је неопходно да се испуне одређени услови:
- Користите систем датотека Ксфс, уместо споријег ЕКСТ4(КСФС користи паралелни диск И / О, што значајно побољшава перформансе у односу на ЕКСТ4).
- Користите брзе ССД / НВМЕ погоне на својим серверима, уместо спорих ХДД-ова.
- Прекини везу Прозирна огромна страница. Да бисте онемогућили ТХП, додајте наредбени позив у датотеку МонгоДБ јединице:
# ецхо 'никад' >> / сис / кернел / мм / транспарент_хугепаге / омогућено
# ецхо 'никад' >> / сис / кернел / мм / транспарент_хугепаге / дефраг - Проверите и поставите неограничене границе ако је потребно:
-ф (величина датотеке): неограничено -т (време процесора): неограничено -в (виртуелна меморија): неограничено -н (отворене датотеке): 32000 или више -м (величина меморије): неограничено -у (процеси / теме): 32000 и још много тога
- Такође пратите потрошњу меморије на серверу ако Монгодб троши пуно меморије, оптимизира саме базе података. Ако је пројекат веома велик, има смисла ширење база података на различите сервере за веће перформансе.