freebsd apache php postgresql

Freebsd apache php postgresql

В качестве примера используются apache24, php5, mysql56.
Операционная система — FreeBSD 10.

Подготавливаем сервер

Заходим под суперпользователем:

Выставляем часовой пояс (у меня московское время) и сразу синхронизируем время:

# cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime; ntpdate 0.freebsd.pool.ntp.org;

Создаем задание в cron для автоматической синхронизации времени каждую ночь:

# echo ‘0 0 * * * /usr/sbin/ntpdate 0.freebsd.pool.ntp.org’ >> /var/cron/tabs/crontab && crontab /var/cron/tabs/crontab

Обновляем список пакетов:

# pkg update && pkg upgrade
# freebsd-update fetch && freebsd-update install

Установка и настройка MySQL

Устанавливаем из пакета mysql-server:

Разрешаем запуск демона mysql:

# echo ‘mysql_enable=»YES»‘ >> /etc/rc.conf
# service mysql-server start

Меняем пароль для пользователя root в mysql:

Установка и настройка Apache

Указываем правильное имя сервера через файл hosts:

192.168.166.155 dmosk dmosk.local

* IP-адрес указан для локального сервера, для внешнего сервера указываем внешний адрес. dmosk — имя моего сервера.

Разрешаем запуск демона apache24:

# echo ‘apache24_enable=»YES»‘ >> /etc/rc.conf

Отредактируем файл конфигурации для apache:

# ee /usr/local/etc/apache24/httpd.conf

MaxClients 200

HostnameLookups Off

* ServerName указывает имя сервера, Include стоит раскомментировать при использовании виртуальных доменов (рекомендуется), MaxClients указывает на максимальное количество одновременно созданных процессов apache, HostnameLookups разрешает или запрещает определение имени подключенного клиента (отключение, как в примере, ускоряет работу веб-сервера Apache).

Если вы раскомментировали подключение файла etc/apache24/extra/httpd-vhosts.conf, редактируем его (удаляем все содержимое и оставляем написанное ниже):

# ee /usr/local/etc/apache24/extra/httpd-vhosts.conf

* Это простейшая конфигурация для виртуального сервера. Она принимает любые запросы на сервер по http (80 порт) и запускает скрипт в директории DocumentRoot. Рекомендую посмотреть в сети Интернет более полные примеры для настройки виртуальных доменов Apache.

Запускаем сервер Apache:

# service apache24 start

Проверяем работоспособность сервера apache, введя в адресной строке браузера IP-адрес сервера (в данном примере, 192.168.166.155). Сервер должен вернуть ответ «It Works!»

Установка и настройка PHP

Устанавливаем интерпретатор PHP с необходимыми модулями:

Редактируем файл конфигурации php.ini:

# ee /usr/local/etc/php.ini

* Это пример самых распространенных параметров, которые приходится редактировать. date.timezone определяет временную зону. magic_quotes_gpc, в данном примере, отключает экранирование кавычек («волшебных кавычек»). upload_max_filesize выставляет лимит для одного загружаемого на сервер файла. post_max_size выставляет лимит для всех загружаемых на сервер файлов. max_execution_time — это лимит времени в секундах, которое будет выделено на работу скрипта; при превышении этого времени сервер вернет ошибку (0, как в примере не лимитирует выполнение скрипта по времени).

Измените конфигурацию сервера Apache для подключения модуля PHP:

# ee /usr/local/etc/apache24/httpd.conf

DirectoryIndex index.html index.htm index.php

* AddType вставляется внутри IfModule mime_module и устанавливает правила обработки скриптов PHP. DirectoryIndex задает индексный файл по умолчанию; если скрипт не задан явно в запросе, будет запущен именно он.

Переходим в корневую директорию расположения скриптов и переименовываем индексный файл:

# cd /usr/local/www/apache24/data && mv index.html index.php

Теперь добавляем в него функцию вызова параметров настройки сервера phpinfo():

# service apache24 restart

Проверьте работоспособность сервера apache, введя в адресной строке браузера IP-адрес сервера (в данном примере, 192.168.166.155). Сервер должен вернуть много параметров в различных таблицах.

Также в данных таблицах вы должны увидеть «MySQL Suppert — Enabled». Это говорит о том, что сервер готов к работе с базой MySQL.

Источник

Freebsd apache php postgresql

Сообщения: 673
Благодарности: 21

Если Вы это видите, это значит, что установка ПО веб-сервера Apache на этой системе завершилась успешно. Вы можете теперь добавлять содержимое в эту директорию и заменить эту страницу. Вы видите это вместо ожидаемой страницы? Эта страница находится здесь потому, что администратор системы изменил конфигурацию этого веб-сервера. Пожалуйста, свяжитесь с лицом, ответсвенным за поддержку этого сервера для выяснения ваших вопросов. Apache Software Foundation, автор ПО веб-сервера, которым пользуется администратор этой системы, не связан с поддержкой этой системы и не может помочь Вам разрешить проблемы конфигурации.

Если вношу изменения в /usr/local/etc/apache2/httpd.conf

DirectoryIndex index.php index.html index.html.var

то начинает качать index.php

» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>

Сообщения: 1
Благодарности: 0

Источник

Freebsd apache php postgresql

Заметка сделана для себя (вечно какая-то важная мелочь забывается 🙂 и молодого коллеги, дабы давать на изучение и приучение к FreeBSD. 🙂
Описываемое актуально для FreeBSD 9.0, Apache 2.2, PostgreSQL 9.2, PHP 5.4 и phpPgAdmin 0.6.4.

ОГЛАВЛЕНИЕ


Установка web-сервера Apache

В файл /etc/rc.conf прописываем для автозапуска:

В конфигурационный файл /usr/local/etc/apache22/httpd.conf прописываем имя сервера и адрес админа:

В файл конфигурации загрузчика /boot/loader.conf добавляем строку:

Запускаем наш Apache:

Если ошибок не появилось, значит всё нормально и сервер запустился.

Установка сервера PostgreSQL


Установка PHP

Ставил сам PHP, не забывая указать в конфигурации сборки поддержку PostgreSQL и Apache:

Теперь надо PHP «активировать» в Apache. Для этого добавим две строчки в /usr/local/etc/apache22/httpd.conf в блоке :

Так же создадим файл cat /usr/local/etc/php.ini на основе /usr/local/etc/php.ini-production, удалив комментарии:

и добавим в него в блок [Date] параметр временной зоны:

Для проверки нормальных подключения и работы модуля поддержки PHP можно открыть в браузре по ссылке http://xxx.xxx.xxx.xxx/index.php предварительно созданный файл /usr/local/www/apache22/data/index.php следующего содержания:

Для работы phpMyAdmin ещё понадобятся расширения PHP (php5-extensions), но ставить их отдельно смысла особого нет: она будут установлены, как необходимая зависимость для phpMyAdmin.

МЕЛОЧИ

Хабра 173623
http://myfreebsd.ru/other/administrirovanie-postgresql
http://postgresql-lab.blogspot.ru/2013/01/175.html
Мелочь №2: Обход ошибки при «битых страницах» БД
В пункте насчёт VACUUM неплохо бы указать, что делать, если VACUUM не может производиться. Недавно столкнулся с ситуацией, когда что VACUUM, что pg_dumpall мирно дохнут, выдав на-гора что-то вроде:

Invalid page header in block 946006 of pg_toast_3847720

То есть, файл повреждён, и работы дальше не будет. Что его могло повредить – повод для отдельного выяснения, а мне нужен был быстрый рецепт обхода. В таких случаях может спасти (возможно, с потерей пары записей, но возможно и целиком) употребление перед VACUUM команды

После этого VACUUM не споткнётся на битых страницах, а просто их обнулит. И дамп запишется, и всё такое.

template1=# CREATE USER user_name WITH CREATEDB LOGIN PASSWORD ‘Pas$w0rd’;
CREATE ROLE
template1=# select * from pg_shadow;
usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig
————+———-+————-+———-+————+————————————-+———-+————
pgsql | 10 | t | t | t | md500ba091dd8401516e01e318ebf4c476f | |
fomalhaut | 16384 | t | f | f | md54117783cb97c642fbe0eb685653b7b67 | |
(2 rows)

А зачем шифровать swap. При этом всё остольное не зашифровано.

Fomalhaut, 2011-01-24 в 1:12:51

Ёхман, 2013-05-10 в 15:48:18

Опция «-d» тоже не нужна, поскольку отмонтированние свопа как правило все равно не осуществляется до завершения работы.

Опция «-e» тоже не нужна, поскольку blowfish не дает никаких преимуществ перед стандартным AES.

На самом деле вся премудрость шифрования свопа заключается в одной операции: достаточно прописать суффикс «.eli» к устройству свопа во fstab, и не париться.

Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

Источник

Установка на FreeBSD Apache, Mysql и PHP для сайтов

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

В этом уроке вы узнаете, как установить Apache, MySQL и PHP на FreeBSD. Эта комбинация программ с открытым исходным кодом более известна как стек FAMP, FAMP является акронимом для трех. Стек FAMP — это, по сути, набор программных утилит, которые предоставляют серверу FreeBSD все необходимое для размещения динамических веб-страниц. Если вы когда-либо использовали Linux, вы, вероятно, заметили сходство со стеком LAMP, который служит той же цели в Linux.

Вне зависимости от того, арендуете ли вы виртуальные серверы в Германии или другой стране, это руководство поможет вам превратить только что установленную систему в полноценный веб-сервер и разместить на нём сайты.

Шаг 1. Подготовьте вашу систему FreeBSD к установке FAMP

Прежде чем мы начнем установку, лучше убедиться, что наша система обновлена.

Чтобы узнать, какую версию вы используете, введите:

Если версия устарела, введите команду ниже, чтобы обновить ее:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Затем установите поддерживающие зависимости:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Затем добавьте нового пользователя с помощью следующей команды:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Вам будет предложено ввести учетные данные пользователя и информацию об учетной записи.

Наконец, выполните команду visudo, как показано ниже, чтобы делегировать командные привилегии администратора всем пользователям группы wheel:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Используйте команду su, за которой следует новое имя пользователя, чтобы изменить учетную запись на ту, которую вы только что создали:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Также обновите часовой пояс:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Шаг 2. Установите сервер Apache HTTPS 2.4

Из всех используемых сегодня веб-серверов HTTPS-сервер Apache является самым популярным и используется во всем мире для размещения как статических, так и динамических веб-страниц и приложений.

Pkg, менеджер пакетов FreeBSD по умолчанию, позволяет удобно установить сервер Apache HTTPS из репозитория FreeBSD. Введите команду ниже, чтобы установить Apache с помощью pkg:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Посмотрите, какая версия установлена, с помощью команды ниже:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Перед загрузкой Apache необходимо включить его:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Затем введите команду ниже, чтобы запустить Apache:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Проверьте запуск с помощью следующей команды:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

В выводе должно быть четко указано, работает ли он.

Вы также можете убедиться, что все работает правильно, указав свой общедоступный IP-адрес в поле поиска вашего веб-браузера. Если установка прошла гладко и все работает правильно, вы должны быть перенаправлены на веб-страницу, подтверждающую вашу установку.

Шаг 3. Установите MySQL 8.0 с помощью pkg

Когда HTTPS-сервер Apache активен и работает, мы можем перейти к третьему шагу: установке MySQL. MySQL — это сервер базы данных, который поддерживает и регулирует доступ к базам данных, в которых хранится информация, относящаяся к веб-сайту.

Как и в случае с Apache, мы загрузим MySQL из репозитория FreeBSD с помощью pkg.

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

После выполнения указанной выше команды в вашей системе должна быть установлена ​​последняя версия. Найдите последнюю версию в Интернете, а затем сравните ее с версией, установленной на вашем диске, с помощью следующей команды:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Перед запуском MySQL необходимо включить его:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Введите команду ниже, чтобы запустить базу данных:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Проверьте запуск, введя следующую команду:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Чтобы усилить меры безопасности в вашей базе данных, вы должны ввести сценарий безопасности, чтобы удалить некоторые несоответствия с MySQL и ограничить доступ к вашей системе:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Затем установите пароль и ответьте на последующие вопросы. Вы можете выбрать значение по умолчанию для всех вопросов, нажав: key_enter:

Шаг 4: установите PHP 7.4

Последний компонент стека FAMP — это PHP, ведущий язык программирования в области веб-разработки на данный момент. Без PHP динамические веб-сайты, которые вы хотите запускать на своем сервере, не будут полностью функционировать.

Подобно тому, как мы использовали команду pkg раньше, мы также можем установить PHP из репозиториев FreeBSD.

Чтобы установить важные пакеты php74, php74-mysqli и mod_php74, введите команду ниже:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Смотрите установленную версию:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Если установленная версия актуальна, перейдите к репликации образца файла конфигурации PHP, выполнив команду, как показано ниже:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Чтобы запустить PHP, введите:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Чтобы проверить, запущен ли PHP, введите:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Чтобы добавить что-то еще к только что установленному пакету PHP, попробуйте несколько вспомогательных модулей. Найдите пакеты, написанные с помощью модулей PHP:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Затем используйте команду ниже для поиска любых доступных модулей PHP:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Вы должны увидеть несколько модулей PHP. Вы можете установить любой из них, который хотите попробовать, с помощью команды pkg.

Шаг 5. Настройте Apache для загрузки модулей PHP

Стек FAMP может работать только тогда, когда Apache настроен для работы с PHP.

Выполните команду ниже, войдите в файл конфигурации:

Затем добавьте в файл следующие записи:

Чтобы применить изменения, сохраните и выйдите из файла.

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Протестируйте конфигурацию Apache с помощью следующей команды:

Чтобы применить настроенные изменения, перезапустите Apache с помощью следующей команды:

Шаг 5: Тестирование обработки PHP

Прежде чем приступить к работе со стеком FAMP, рекомендуется проверить, нет ли проблем с PHP. Настройка PHP может облегчить для нас эту ситуацию.

Вы можете легко выполнить настройку с помощью простого скрипта PHP. Используйте команду ниже:

Скопируйте строку ниже и вставьте ее в файл конфигурации:

Перейдите по адресу http://your_server_IP/info.php, и вы будете перенаправлены на эту страницу:

freebsd apache php postgresql. Смотреть фото freebsd apache php postgresql. Смотреть картинку freebsd apache php postgresql. Картинка про freebsd apache php postgresql. Фото freebsd apache php postgresql

Сделайте детали сервера приватными, удалив файл info.php.

В итоге

В этом руководстве показано, как установить стек FAMP в системе FreeBSD 12.2. Теперь вы можете размещать динамический веб-контент в своей системе и использовать его как полнофункциональный веб-сервер. Будь то динамический веб-сайт или крупномасштабное веб-приложение, потенциал вашего сервера не имеет границ. Однако не забудьте ознакомиться с дополнительными руководствами по FreeBSD на нашем веб-сайте, прежде чем начать. На нашем веб-сайте много контента, и вы обязательно найдете то, что поможет вам начать работу.

Кстати! Вот видео по установке операционной системы FreeBSD, которое будет полезно посмотреть перед выполнением рекомендаций, описанных в статье.

Источник

FreeBSD + PostgreSQL: тюнинг сервера БД

Наверное, моя статья будет не интересна матерым сисадминам и покажется копипастом. Но я адресую ее тем, кто, как и я, будучи только разработчиком, впервые столкнулся с необходимостью еще и администрировать сервер, при этом решая задачи высоконагруженной БД. И чтобы гугл вас не проклял, постараюсь собрать в одном месте основные приемы для разгона сервера БД, которые мне успешно удалось реализовать.

Входные данные моей задачи следующие: двухпроцессорная (Intel Xeon) машинка, 8 хардов по 500Гб и 12Гб оперативки. И полный, в том числе физический, доступ к этому добру. Задача: организовать быстрый сервер БД на основе ОС FreeBSD и PostgreSQL.

1. RAID

Правильное разбиение имеющихся хардов на рейды нам понадобится для такой возможности PostgreSQL, как tablespacing (об это ниже). Свои 8 хардов я разбил на пары, организовав таким образом: две пары объеденил в RAID1 и две пары в RAID0 (вообще, для наших целей нужно минимум 6 хардов — две пары объеденить в RAID1, остальные 2 оставить как есть). При наличии же большего числа хардов можно придумать что-нибудь и понадежнее, типа RAID5, RAID10 и т.п., но есть вероятность, что работать это будет несколько медленнее. Не буду вдаваться в подробности как организовывать рейды, т.к. в железе я не силен, скажу лишь только, что никаких контроллеров не трогал, т.к. на серваке после биоса грузится утилита, которая позволяет это сделать программно.

2. Установка ОС, сервера БД и использование своего ядра

Сначала просто ставим фряху на первый RAID1. Я ставил дистрибутив FreeBSD 8.2 Release AMD64 со всеми файлами. 64-х битная версия нужна, чтобы система «видела» всю оперативную память.

1) Максимальное число соединений

options SEMMNI=512
options SEMMNS=1024
options SEMUME=64
options SEMMNU=512

(это значения для max_connection = 256).

2) Максимальный объем оперативной памяти, который может занять PostgreSQL (это важно при объемных запросах). За него отвечает параметр shared_buffers в postgresql.conf. Насчет значения для этой величины существуют разные рекомендации. Я пришел к выводу, что если это выделенный под БД сервер, то можно одному процессу отдать почти весь объем оперативки минус то, что нужно системе на свои нужды. Я выделил 8Гб из 12. Для того, чтобы система разрешила выставить нужное нам значение для shared_buffers, в ядре необходимо изменить опцию SHMMAXPGS, значение которой вычисляется по формуле:

SHMMAXPGS = shared_buffers / PAGE_SIZE

в моем случае shared_buffers = 8Гб, PAGE_SIZE = 4Кб для всех i386, значит
SHMMAXPGS = 8 * 1024 * 1024 / 4 = 2097152); теперь можем записать параметр SHMMAX (вычисляется в ядре динамически). Итак, пишем в конфиг ядра:

options SHMMAXPGS = 2097152
options SHMMAX = «(SHMMAXPGS*PAGE_SIZE + 1)»

Осталось скомпилировать ядро с конфигом KERNEL_MAX_PERF. Сама процедура компиляции ядра проста, здесь я вас отсылаю к официальному ману.

Загружаем ОС со своим ядром, устанавливаем PostgreSQL последней версии (у меня это была версия 9.0.4), сначала для проверки стартуем PostgreSQL с умолчальным конфигом. Если все ок, меняем параметры в postgresql.conf на оговоренные выше, делаем рестарт PostgreSQL. Запустилось — едем дальше.

Замечание: если по какой-либо причине не удалось скомпилить ядро с выставленными параметрами, то можно их прописать в sysctl.conf:

kern.ipc.shmall=2097152
kern.ipc.shmmax=8589938688
kern.ipc.semmap=256

и запускать фряху с умолчальным ядром GENERIC.

3. Tablespacing

Tablespacing — это возможность PostgreSQL определять в файловой системе локации, где будут храниться файлы, представляющие объекты баз данных. Проще говоря, если мы раскидаем таблицы, индексы и логи на разные диски, то чтение запись/данных будет происходить быстрее, чем если бы все это находилось на одном диске.

Вот здесь нам и понадобятся наши рейды. Напомню, что у нас имеется четыре раздела: два RAID1 и два RAID0. На первом RAID1 у нас установлена операционка и постгрес. На втором RAID1 будем хранить таблицы нашей БД. Предположим, что он монтирован как /disk1. На первом RAID0 будем хранить индексы. Пусть он будет монтирован в файловой системе как /disk2. Логам оставим второй RAID0, предполагаем, что он монтирован как /disk3.

CREATE TABLESPACE space_table LOCATION ‘/disk1/postgresql/tables’ ;
CREATE TABLESPACE space_index LOCATION ‘/disk2/postgresql/ind’ ;

GRANT CREATE ON TABLESPACE space_table TO myuser;
GRANT CREATE ON TABLESPACE space_index TO myuser;

ALTER TABLE mytable SET TABLESPACE space_table;
ALTER INDEX mytable SET TABLESPACE space_index;

Если все сделали правильно, демон должен запуститься.

4. Partitioning

Партицирование – это логическое разбиение одной большой таблицы на маленькие физические куски. Это позволяет существенно ускорить время выполнения запросов, если таблица действительно большая.

У меня довольно типичная ситуация: в кроне работает скрипт, собирая статистику по некоему измерению. По веб-интерфейсу пользователь может эту статистику посмотреть. За неделю в таблицу инсертится примерно 10млн строк. Если все писать в одну таблицу, то вас проклянут. Работать все это будет ужасно медленно.

Попробуем разбить эту таблицы на куски, взяв за критерий разбиения время. В таком случае, когда пользователь захочет посмотреть статистику, а посмотреть ее можно только за определенный временной период, серверу БД при запросе придется шерстить не всю большую таблицу, а несколько маленьких, попавших в выбранный временной промежуток.

К сожалению, в PostgreSQL партицирование не реализовано на уровне БД, поэтому придется его делать ручками, используя свойство наследования таблиц.

CREATE TABLE measure_data_y2011m06d06 ( CHECK ( measure_time = DATE ‘2011-06-06’ AND measure_time DATE ‘2011-06-13’ )
) INHERITS ( measure_data_master ) ;

CREATE INDEX measure_data_y2011m06d06_key ON measure_data_y2011m06d06 ( measure_time ) ;

CREATE TRIGGER insert_measure_trigger
BEFORE INSERT ON measure_data_master
FOR EACH ROW EXECUTE PROCEDURE measure_insert_trigger ( ) ;

Конечно, писать такие большие запросы неудобно. Я написал скрипт на php, который создает таблицы и все что для них нужно на целый год вперед.

Вот, пожалуй, и все, что я хотел рассказать. Если поделитесь своим опытом из данной области, буду очень благодарен.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *