Страницы

Сохранить статью у себя в соцсети:

понедельник, 6 октября 2014 г.

PostgreSQL stand-by promote

PostgreSQL: Как превратить stand-by в master

В ходе эксплуатации потоковой репликации, может возникнуть необходимость переключения standby сервера в режим мастера. Причины могут быть самые разные, например выход мастера из строя, обновление hardware сервера и т.п. Для выполнения этой операции существует несколько способов.
  1. через перезапуск postgresql
  2. через создание триггер файла
  3. через утилиту pg_ctl
О них и пойдет речь в статье.

понедельник, 22 сентября 2014 г.

PostgreSQL query planning time and statistics target.

Влияние размера статистики на время планирования запроса в PostgreSQL.

Планировщик - подсистема которая планирует выполнение пришедшего запроса и выбирает оптимальный план который в конечном счете будет использоваться для выполнения запроса. Планировщик в свой работе использует т.н. статистику - специальная информация о данных что хранятся в колонках. Эта статистика периодически собирается с помощью фонового процесса autoanalyze, либо может быть обновлена немедленно с помощью ручного вызова ANALYZE. 

четверг, 18 сентября 2014 г.

Network problem emulation with Iptables and Iproute2

Network problem emulation with Iptables and Iproute2

Однажды мне понадобилось в Zabbix сделать мониторинг потери пакетов между мастером и репликами (репликация плохо себя чувствует если канал не очень хороший). Для этого, в Zabbix есть встроенный параметр icmppingloss, на удаленный хост отправляется серия ICMP пакетов и результат фиксируется в системе мониторинга. И вот параметр добавлен, триггер настроен. Казалось бы задача выполена, однако как говорится "Доверяй, но проверяй". Осталось проверить что триггер сработает когда потери действительно будут. Итак, как сэмулировать потерю пакетов? Об этом, да и не только, пойдет речь под катом.


понедельник, 25 августа 2014 г.

Мониторинг PostgreSQL в Zabbix.

Мониторинг PostgreSQL в Zabbix.


PostgreSQL это современная, динамично развивающаяся СУБД с очень большим набором возможностей которые позволяют решать самый широкий спектр задач. Использование PostgreSQL как правило относится к очень критичному сегменту ИТ инфраструктуры который связан с обработкой и хранением данных. Учитывая особое место СУБД в инфраструктуре и степень критичности возложенных на нее задач, возникает вопрос мониторинга и надлежащего контроля за работой СУБД. В этом плане PostgreSQL обладает широкими внутренними средствами сбора и хранения статистики. Собираемая статистика позволяет получить довольно подробную картину о том что происходит под капотом в процессе функционирования СУБД. Эта статистика хранится в специальных системных таблицах-представлениях и постоянно обновляется. Выполняя обычные SQL запросы в эти таблицы можно получать разнообразные данные о базах, таблицах, индексах и других подсистемах СУБД. Ниже я описываю способ и средства для мониторинга PostgreSQL в системе мониторинга Zabbix. Мне нравится эта система мониторинга поскольку предоставляет широкие возможности для реализации самого кастомного мониторинга самых разных систем и процессов.

понедельник, 7 июля 2014 г.

PostgreSQL 9.4 and Huge Pages

PostgreSQL 9.4 with Huge Pages.

В PostgreSQL начиная с версии 9.4 появилась поддержка больших страниц. Это очень хорошая новость, с большими страницами я познакомился когда работал с виртуализацией. Коротко о чем же речь. В ОС Linux работа с памятью основывается на обращении к страницам размер которых равен 4kB (на самом деле зависит от платформы, проверить можно через getconf PAGE_SIZE), так вот когда объем памяти переваливает за несколько дестков, а то и сотни гигабайт управлять ею становится сложнее, увеличиваются накладные расходы на адресацию памяти и поддержание страничных таблиц. Для облегчения жизни и были придуманы большие страницы, размер которых может быть 2MB а то и 1GB. За счет использования больших страниц можно получить ощутимый прирост скорости работы и уменьшение отзывчивости в приложениях которые активно работают с памятью. Как я уже отметил, впервые я столкнулся с большими страницами при работе с виртуализацией, в частности с KVM. Проведенные в свое время тесты показали что прирост производительности виртуальных машин составил от 7 до 10% (измерялось все это дело синтетическими тестами различных сервисов внутри виртуальных машин). Теперь это появилось в PostgreSQL.

суббота, 5 июля 2014 г.

CentOS 7 Release Candidate now available.

CentOS 7 Release Candidate now available.

На днях в списке рассылки появилось сообщение что следом за RHEL7 вышел релиз-кандидат CentOS 7. Мне очень нравится RHEL-based операционнки поэтому я решил скачать образ и запустить виртуалку, дабы осмотреться что там и как. Ниже мини-инструкция с сылками.
скачиваем netinstall iso и устанавливаем с него систему. В качестве источника пакетов указываем это. После установки устанавливаем основной репозиторий, странно но настроенных репозиториев нету.
# vi /etc/yum.repos.d/centos.repo
[centos]
name=Base Packages for Enterprise Linux 7 - $basearch
baseurl=http://buildlogs.centos.org/centos/7/os/x86_64-latest
failovermethod=priority
enabled=1
gpgcheck=0

Ставим репозиторий EPEL.
# yum install http://dl.fedoraproject.org/pub/epel/beta/7/x86_64/epel-release-7-0.2.noarch.rpm

Вот и все, теперь можно делать что душе вздумается)))

среда, 2 июля 2014 г.

PostgreSQL BDR Introduction.

Введение в PostgreSQL BDR.

PostgreSQL это не только стабильная и надежная СУБД но и плюс ко всем это динамично развивающийся продукт, в котором от релиза к релизу появляются самые разные прорывные вещи. Одной из таких технологий является потоковая репликация которая позволяет очень легко и дешево масштабировать базу данных на чтение. В статье речь пойдет о новой технологии BDR (Bi-Directional Replication).


вторник, 13 мая 2014 г.

10 ways to do PostgreSQL backup.

10 способов сделать резерную копию в PostgreSQL.

Я отношусь к тем людям которые делают резервное копирование. За время работы с PostgreSQL мне довелось часто настраивать резервное копирование, при этом условия и требования были самые разные. Однако при этом набор инструментов за редким исключением оставался неизменным. В этой статье поделюсь своим опытом в деле как можно брать резервные копии PostgreSQL.

понедельник, 21 апреля 2014 г.

Zabbix + Iostat: мониторинг дисковой подсистемы.

Zabbix + Iostat: мониторинг дисковой подсистемы.




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

понедельник, 24 марта 2014 г.

Secure PostgreSQL over SSL.

Безопасная работа с PostgreSQL через SSL подключения.

Настройка PostgreSQL для работы с клиентами через SSL.


вторник, 18 марта 2014 г.

pg_rewind: a quickly recycle a Postgres master into stand-by.

pg_rewind: Превращаем мастера в stand-by без переинициализации.

Всем кому приходилось сталкиваться с процедурой failover при работе с потоковой репликацией в PostgreSQL, наверняка озадачивались вопросом: "А как бы мне ничего заново не копировать, а по-быстрому завести старый мастер в качестве stand-by". Так вот к сожалению, встроенной такой функциональности в PostgreSQL, увы нет. Да, нельзя так просто взять и подключить старый мастер к новому и чтобы все заработало. Для этого нужно повторить процесс настройки потоковой репликации заново, т.е. скопировать весь кластер и запустить postgres в режиме hot-standby.
К счастью работы в этом направлении ведутся, причем результаты довольно не плохие. Называется же проект pg_rewind.

пятница, 14 марта 2014 г.

Strace: examples and use cases.

Strace: примеры использования.

Strace. Наверное нет того человека, который бы не слышал про strace. Если кто не слышал, то strace — это утилита, отслеживающая системные вызовы, которые представляют собой механизм трансляции, обеспечивающий интерфейс между процессом и операционной системой (ядром). Эти вызовы могут быть перехвачены и прочитаны. Это позволяет лучше понять, что процесс пытается сделать в заданное время. Перехватывая эти вызовы, мы можем добиться лучшего понимания поведения процессов, особенно если что-то идет не так. Функциональность операционной системы, позволяющая отслеживать системные вызовы, называется ptrace. Strace вызывает ptrace и читает данные о поведении процесса, возвращая отчет. Детали можно прочитать в вики или официальном manЛично для меня strace это как последняя инстанция. Когда уже все логи просмотрены, все debug и verbose ключи включены, а причина проблем так и не обнаружена, я достаю из широких штанин запускаю strace. Есть одно но, strace это такой инструмент который вовсе не является серебряной пулей которая тут же все покажет и расскажет, для работы с strace требуется наличие определенных знаний и чем шире и глубже эти знания тем больше вероятность обнаружения проблемы.
В интернетах полно вводных статей, где описываются примеры запуска strace. Я же в этой статье покажу проблемы и их решение с помощью strace. 

понедельник, 10 марта 2014 г.

§ Simple sudo in Postgres.

Аналог sudo в PostgreSQL.

Всем привет! Сегодня небольшой пост о том как сделать в PostgreSQL реализацию sudo. То есть сделаем так чтобы непривелигированный пользователь при необходимости мог выполнять задачи в которых требуются привилегии SUPERUSER. Конечно же полученный результат не сравнится с оригинальным sudo, но тем не менее, дает простую возможность разграничения прав.

воскресенье, 9 марта 2014 г.

Проба пера.

Есть один мой друг, не будем показывать на него пальцем;) который часто задает мне вопросы, при том что если отправить его в статью он мне говорит "ой мне некогда читать, многабукаф..." и все в таком роде. Вот специально для него сделал и выложил видяшку на YouTube... дабы отпали все вопросы.

Без подкатов. Всем доброй ночи.

четверг, 6 марта 2014 г.

§ PostgreSQL Streaming Replication Setup. Updated.

Настройка потоковой репликации в PostgreSQL.

Как-то я уже писал о настройке потоковой репликации. Пришло время слегка переписать статью, т.к. теперь процесс изменился в лучшую сторону. Настроить потоковую репликацию стало еще проще.
Пара слов, для тех кто сталкивается с этим впервые. Потоковая (Streaming) репликация в PostgreSQL это master-slave репликация при которой подчиненный slave-сервер работает в hot-standby режиме. Hot Standby это режим работы при котором существует возможность подключаться к серверу и выполнять запросы на чтение. Более того в случае аварии на master-сервере, запасной hot-standby сервер может быть оперативно переключен в режим мастера.
streaming replication

понедельник, 3 марта 2014 г.

§ Generate test data in PostgreSQL.

Generate test data in PostgreSQL.

Время от времени мне приходится проводить с PostgreSQL различные опыты или эксперименты. Довольно часто для этих задач мне нужны определенные данные. В зависимости от целей могут понадобиться самые разные данные. Конечно можно вручную задать необходимый набор строк с данными, но когда речь заходит о десятках, сотнях, тысячах строк... не о каком ручном труде речи быть не может. Итак под катом сотни и сотни сгенерированных данных.
generate test data

пятница, 28 февраля 2014 г.

Hello world, again!

После долгого перерыва вновь возвращаюсь в блог, писать статьи, злить граммарнаци, делиться опытом, постить картинки и т.п.
Дела сложились таким образом, что я поменял работу и род деятельности. Если раньше основное мое занятие было общее администрирование Linux и сопутствующего ПО, то теперь я вплотную занимаюсь администрированием PostgreSQL. Это очень интересная для меня область знаний, где еще предстоит узнать еще очень и очень много.
Соответственно это отразится на блоге, впервую очередь конечно изменится тематика, основной уклон будет в сторону PostgreSQL. Первое время не обещаю много писать, т.к. опыта пока мало и писать непроверенные вещи ой как не хочется. Поэтому регулярных постов обещать не стану, не серчайте.
Ну и на правах "хозяина места" позволю себе чуть-чуть рекламы :)))
И мое новое место работы PostgreSQL Consulting. Если вам требуется квалифицированная консультация, или обслуживание PostgreSQL инфраструктуры, обращайтесь - будем рады помочь. Среди наших клиентов полно известных фигур.
postgresql consulting

До новых встреч.

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика