Размеры объектов БД PostgreSQL

Все объекты БД в PostgreSQL хранятся в каталоге data/base в виде OID (таблицы, индексы…).
Для сопоставления OID номеров с именами баз и таблиц в contrib есть утилита oid2name (перед использованием скомпилить и положить в удобное для использования место).

Для просмотра размера всех таблиц текущей БД можно использовать такой запрос:

SELECT relname AS name, relfilenode AS oid, (relpages * 8192 / (1024*1024))::int as size_mb, reltuples as count FROM pg_class WHERE relname NOT LIKE 'pg%' ORDER BY relpages DESC;

Читать далее «Размеры объектов БД PostgreSQL»

Монтирование CD привода

Если запущен vold, операционная система автоматиески смонтирует вставленный CD/DVD. Если vold не установлен, либо не запущен, либо не работает по любой причине, можно смотнировать диск вручную:

1. Идентифицируем устройство чтения CD/DVD:

$ iostat -En
c0t0d0 Soft Errors: 9 Hard Errors: 0 Transport Errors: 0
Vendor: TOSHIBA Product: DVD-ROM SD-C2612 Revision: 1011 Serial No:
Size: 2.14GB
Media Error: 0 Device Not Ready: 0 No Device: 0 Recoverable: 0

2. Убедимся, что vold не запущен:

# pgrep vold && pkill vold

Если вы попытаетесь смонтировать CD/DVD вручную при запущенном vold, скорее всего вы получите следующую ошибку:

mount: /dev/dsk/c0t0d0s2 is already mounted, /cdrom is busy,
or allowable number of mount points exceeded

3. Создаём точку монтирования:

# [ ! -d /cdrom ] && mkdir /cdrom

4. Собственно монтируем CD/DVD:

# mount -F hsfs -o ro /dev/dsk/c0t0d0s2 /cdrom

Если вы зададите неправильный тип файловой системы, вы скорее всего получите следующую ошибку:

mount: /dev/dsk/c0t0d0s2 is not this fstype.

Если вы попытаетесь смонтировать привод в режиме r/w, вы получите следующую ошибку:

mount: /dev/dsk/c0t0d0s2 write-protected

Установка Shared memory

Можно динамически изменить параметры shared memory

sysctl -a | grep shm

SHMMAX = SHMALL * PAGE_SIZE + 1

Где PAGE_SIZE равно 4096 Б для i386

SHMALL = k * RAM * 1024 / PAGE_SIZE

Где RAM — физическая оперативная память в МБ; k — коэффициент, равный 0.5; PAGE_SIZE — размер одной страницы в КБ, PAGE_SIZE = 4 КБ для i386.

Читать далее «Установка Shared memory»

Поиск файлов с помощью find

Используйте утилиту find для поиска файлов в дереве каталогов по имени файла. Укажите имя дерева каталогов для поиска, а затем, с помощью опции `-name’ — имя нужного Вам файла.

Чтобы увидеть список всех файлов системы, которые называются `top’, наберите:

$ find / -name top

Эта команда проведет поиск во всех каталогах, куда Вам разрешен доступ; если Вы не имеете прав прочесть содержимое каталога, find сообщить, что поиск в данном каталоге Вам запрещен.

Опция `-name’ различает прописные и строчные буквы; чтобы использовать поиск без этих различий, воспользуйтесь опцией `-iname’.

Чтобы увидеть список всех файлов системы, которые называются `top’, без учета регистра символов, наберите:

$ find / -iname top

Эта команда найдет все файлы, название которых состоит из букв `top’ — включая `Top’, `top’, и `TOP’.

Читать далее «Поиск файлов с помощью find»

PostgreSQL: аналитика для DBA

Многие пользователи СУБД PostgreSQL знают, что сервер во время своей работы собирает разнообразную статистику, но не все знают, что ее полезно анализировать и как ее извлекать для этого. В этом небольшом тулките собраны несколько полезных запросов, дающих некоторое представление о том, как использовать это «скрытое знание», которое постоянно копится. Эти запросы можно использовать для мониторинга состояния PostgreSQL (ручного или с помощью плагинов для систем мониторинга вроде Nagios, Cacti или Zabbix), для поиска узких мест в работе сервера и многих других подобных задач. Помните, что это лишь верхушка айсберга; в документации можно найти описания нескольких десятков системных представлений, которые также могут быть полезны администратору PostgreSQL.

Для корректной работы тулкита необходимо включить опции stats_block_level и stats_row_level в postgresql.conf, а также настроить параметр stats_reset_on_server_start по своему усмотрению. Если при каждом перезапуске сервера PostgreSQL вы меняете какие-то существенные параметры его конфигурации, имеет смысл обнулять статистику, чтобы отслеживать эффект внесенных изменений. Если же вас интересует долгосрочная перспектива и рестарт производится не вследствие изменения конфигурации PostgreSQL, ставьте параметр stats_reset_on_server_start в значение off.

Читать далее «PostgreSQL: аналитика для DBA»