Pull to refresh

Сборка и установка MongoDB из исходников

Reading time 4 min
Views 6.2K
Устанавливать MongoDB и работать с ней мы будем в Linux. На сайте производителя имеются собранные пакеты для различных типов операционных систем и их наиболее популярных дистрибутивов. Перечень рекомендуемых и поддерживаемых операционных систем находится здесь.

Также доступны подготовленные к инсталляции бинарники и есть подробные инструкции по их установке, но мы для лучшего понимания процессов произведём собственную сборку. Все действия описанные ниже, выполняются в операционной системе openSUSE Linux версии 13.2 На текущий момент последней доступной версией MongoDB является версия с номером 3.0.3.

Сразу необходимо заметить, что производители MongoDB категорически рекомендуют устанавливать СУБД на выделенных серверах под управлением 64-х разрядных операционных систем, в количестве не менее трёх реплик в кластере. Но так как мы пока не планируем открывать свой дата-центр, для начала нам будет достаточно standalone сервера с запущенным экземпляром Монги или даже виртуальной машины весьма скромной конфигурации. Системного пользователя под которым будет запускаться MongoDB зовут «sysadmin» (его я создал при установке системы), основная группа «users». Установка состоит из следующих этапов:

Получаем архив исходников последней версии MongoDB с официального сайта.

Читаем руководство по сборке СУБД из исходников.

Под учётной записью суперпользователя устанавливаем пакеты, наличие которых требуется для сборки, если они ещё не установлены в системе.

zypper in gcc python scons glibc-devel

Подготавливаем инфраструктуру для базы данных.

mkdir -p /opt/mongo  // папка куда будут установлены бинарники MongoDB
chown sysadmin:users -R /opt/mongo
mkdir -p /data/mongo/db  // папка для хранения файлов данных базы
mkdir -p /data/mongo/log  // папка для хранения логов СУБД
chown sysadmin:users -R /data/mongo

Дальнейшие действия выполняем в аккаунте, созданном для установки MongoDB (sysadmin).

Распаковываем архив и в папке с исходниками запускаем сборку.

gunzip mongodb-src-r3.0.3.tar.gz
tar -xvf mongodb-src-r3.0.3.tar
cd mongodb-src-r3.0.3
scons all —prefix=/opt/mongo install

Если не использовать опцию —prefix исполняемые файлы MongoDB по умолчанию будут установлены в /usr/local. Опция all означает, что будет собрано ядро СУБД и тесты, исполнение которых scons осуществит в процессе сборки. По окончании процесса в каталоге /opt/mongo будет создан подкаталог bin, хранящий исполняемые файлы СУБД.

Итак, ядро MongoDB мы установили и протестировали. Файлы, находящиеся в каталоге bin имеют следующее назначение:

mongod — непосредственно сервер баз данных, запускающий процессы Монги, управляющий базами данных и доступом к ним.
mongo — shell интерфейс, реализованный в виде интерактивной оболочки javascript для работы с базами и коллекциями.
mongos — шардинг контроллер, маршрутизирующий запросы приложений и определяющий местоположение данных в кластере
mongoperf — утилита проверки производительности дискового устройства при совершении операций чтения/записи.

После установки основных компонентов ядра, нам необходимо собрать и установить дополнительные утилиты, поставляемые в комплекте с MongoDB и совокупно называемые mongo-tools. Как гласит официальное руководство, начиная с версии 2.8 эти инструменты написаны на языке Go. Ещё нам понадобится git для клонирования репозитория mongo-tools.

Устанавливаем недостающие пакеты:

zypper in go git

Клонируем репозиторий:

git clone https://github.com/mongodb/mongo-tools

Для установки GOPATH и разрешения зависимостей, в корне каталога mongo-tools необходимо запустить скрипт set_gopath.sh:

cd mongo-tools
. ./set_gopath.sh

Приступаем к сборке и установке инструментария:

go build -o /opt/mongo/bin/mongoimport mongoimport/main/mongoimport.go
go build -o /opt/mongo/bin/mongoexport mongoexport/main/mongoexport.go
go build -o /opt/mongo/bin/mongodump mongodump/main/mongodump.go
go build -o /opt/mongo/bin/mongorestore mongorestore/main/mongorestore.go
go build -o /opt/mongo/bin/mongofiles mongofiles/main/mongofiles.go
go build -o /opt/mongo/bin/mongooplog mongooplog/main/mongooplog.go
go build -o /opt/mongo/bin/mongostat mongostat/main/mongostat.go
go build -o /opt/mongo/bin/mongotop mongotop/main/mongotop.go

Теперь mongo-tools установлены. После выполнения всех процедур каталог установки MongoBD выглядит следующим образом:

ls -all /opt/mongo/bin/
drwxr-xr-x 1 sysadmin users      228 май 13 18:14 .
drwxr-xr-x 1 sysadmin users       20 май 13 16:36 ..
-rwxr-xr-x 1 sysadmin users  4246936 май 13 18:03 bsondump
-rwxr-xr-x 1 sysadmin users 11217232 май 13 15:32 mongo
-rwxr-xr-x 1 sysadmin users 21482704 май 13 15:32 mongod
-rwxr-xr-x 1 sysadmin users  6100416 май 13 17:56 mongodump
-rwxr-xr-x 1 sysadmin users  5907680 май 13 17:56 mongoexport
-rwxr-xr-x 1 sysadmin users  5864160 май 13 18:05 mongofiles
-rwxr-xr-x 1 sysadmin users  6097960 май 13 17:42 mongoimport
-rwxr-xr-x 1 sysadmin users  5574328 май 13 18:07 mongooplog
-rwxr-xr-x 1 sysadmin users 21269648 май 13 15:32 mongoperf
-rwxr-xr-x 1 sysadmin users  6227288 май 13 17:58 mongorestore
-rwxr-xr-x 1 sysadmin users 10155600 май 13 15:32 mongos
-rwxr-xr-x 1 sysadmin users  5795640 май 13 18:13 mongostat
-rwxr-xr-x 1 sysadmin users  5662040 май 13 18:14 mongotop


Назначение утилит:

bsondump — утилита преобразования BSON файлов в «человекопонятные» форматы, включая JSON. К примеру, удобна для чтения выходных файлов, генерируемых с помощью mongodump;
mongodump — инструмент для выгрузки содержимого базы данных в двоичный формат. Вместе с утилитой mongorestore составляют инструментарий для резервного копирования и восстановления баз данных MongoDB;
mongorestore — программа для восстановления содержимого базы данных из двоичного формата дампа базы сгенерированного mongodump;
mongooplog — приложение для получения операций репликаций от удалённых серверов и применения их на локальном сервере;
mongoimport — программа для заливки в базу контента полученного из файлов формата JSON, TSV, CSV, сформированных программой mongoexport или другими аналогичными приложениями;
mongoexport — утилита для экспорта данных, хранящихся в базе в форматы JSON, TSV, CSV;
mongostat — приложение для контроля состояния запущенных экземпляров mongod и mongos. Эта программа функционально похожа на UNIX/Linux утилиту vmstat отличаясь тем, что предоставляет статистические данные о приложениях mongo;
mongotop — средство отслеживания времени, потраченного экземпляром базы Монги на операции чтения и записи данных;
mongofiles — инструмент для управления файлами, которые СУБД хранит в виде объектов GridFS.

В конце экспортируем пути поиска исполняемых файлов

export PATH=/opt/mongo/bin:$PATH

Создадим (если отсутствует) и отредактируем /home/sysadmin/.bash_profile.

touch .bash_profile
echo 'export PATH=/opt/mongo/bin:$PATH' > .bash_profile 

Всё, MongoDB собрана и установлена. Можно приступать к созданию необходимой конфигурации.
Tags:
Hubs:
0
Comments 9
Comments Comments 9

Articles