Устанавливать MongoDB и работать с ней мы будем в Linux. На сайте производителя имеются собранные пакеты для различных типов операционных систем и их наиболее популярных дистрибутивов. Перечень рекомендуемых и поддерживаемых операционных систем находится здесь.
Также доступны подготовленные к инсталляции бинарники и есть подробные инструкции по их установке, но мы для лучшего понимания процессов произведём собственную сборку. Все действия описанные ниже, выполняются в операционной системе openSUSE Linux версии 13.2 На текущий момент последней доступной версией MongoDB является версия с номером 3.0.3.
Сразу необходимо заметить, что производители MongoDB категорически рекомендуют устанавливать СУБД на выделенных серверах под управлением 64-х разрядных операционных систем, в количестве не менее трёх реплик в кластере. Но так как мы пока не планируем открывать свой дата-центр, для начала нам будет достаточно standalone сервера с запущенным экземпляром Монги или даже виртуальной машины весьма скромной конфигурации. Системного пользователя под которым будет запускаться MongoDB зовут «sysadmin» (его я создал при установке системы), основная группа «users». Установка состоит из следующих этапов:
Получаем архив исходников последней версии MongoDB с официального сайта.
Читаем руководство по сборке СУБД из исходников.
Под учётной записью суперпользователя устанавливаем пакеты, наличие которых требуется для сборки, если они ещё не установлены в системе.
Подготавливаем инфраструктуру для базы данных.
Дальнейшие действия выполняем в аккаунте, созданном для установки MongoDB (sysadmin).
Распаковываем архив и в папке с исходниками запускаем сборку.
Если не использовать опцию —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.
Устанавливаем недостающие пакеты:
Клонируем репозиторий:
Для установки GOPATH и разрешения зависимостей, в корне каталога mongo-tools необходимо запустить скрипт set_gopath.sh:
Приступаем к сборке и установке инструментария:
Теперь mongo-tools установлены. После выполнения всех процедур каталог установки MongoBD выглядит следующим образом:
Назначение утилит:
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.
В конце экспортируем пути поиска исполняемых файлов
Создадим (если отсутствует) и отредактируем /home/sysadmin/.bash_profile.
Всё, MongoDB собрана и установлена. Можно приступать к созданию необходимой конфигурации.
Также доступны подготовленные к инсталляции бинарники и есть подробные инструкции по их установке, но мы для лучшего понимания процессов произведём собственную сборку. Все действия описанные ниже, выполняются в операционной системе 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 собрана и установлена. Можно приступать к созданию необходимой конфигурации.