Статистика медленных запросов через pg_stat_statements в PostgreSQL

1. Установить пакет postgresql-contrib версии, соответствующей версии сервера PostgreSQL: # apt-get install postgresql-contrib 2. Убедиться, что в списке доступных расширений есть pg_stat_statements: SELECT * FROM pg_available_extensions 3. Добавить pg_stat_statements в shared_preload_libraries в postgres.conf: shared_preload_libraries = ‘pg_stat_statements’ 4. Перезапустить PostgreSQL. 5. Добавить расширение на базу данных: CREATE EXTENSION pg_stat_statements; 5. Использование: SELECT * FROM pg_stat_statements; SELECT

Читать далее

Обмен данными между контейнерами Docker и хост-системой.

Как правило, контейнеры Docker эфемерны и выполняются ровно столько, сколько требуется для выполнения команды, выданной в контейнере. По умолчанию любые данные, созданные внутри контейнера, доступны только из контейнера и только во время работы контейнера. Тома Docker можно использовать для обмена файлами между хост-системой и контейнером Docker. Например, предположим, вы хотите использовать официальный образ Docker Nginx

Читать далее

Обмен данными между контейнерами Docker.

О параметре -v. Если первый аргумент после параметра начинается на с «/» «~/» , то в этом случае монтируется каталог хост-системы во внутрь докера: -v /path:/path/in/container — монтируется каталог /path из хост-системы в каталог /path/in/container внутри контейнера. Если слеш не указан, то монтируется том docker во внутрь докера: -v path:/path/in/container — создаётся том path и

Читать далее

Восстановление InnoDB.

Сделать копию каталога с БД MySQL. Прописать в /etc/my.cnf innodb_force_recovery = 1 Если эффекта нет — постепенно увеличивать до 6. При значении 6 обычно MySQL стартует, после этого делаются дампы баз ( mysqldump ). Останавливаем MySQL: # systemctl stop mysql Удаляем содержимое /var/lib/mysql Устанавливаем innodb_force_recovery = 0 Выполняем инициализацию в зависимости от версии: # mysql_install_db

Читать далее

Установка Docker Engine на Debian 10 x64.

0. Установлена система Debian 10 x64. 1. Обновление пакетов: # apt-get update & apt-get upgrade 2. Установка пакетов, позволяющих работать apt через HTTPS: # apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common 3. Добавление GPG ключа: # curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add — 4. Подключение стабильного (stable) репозитория docker: # add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release

Читать далее

Создание архива сайта и дамп базы данных.

#!/bin/sh cd /var/www/site.ru # создание архива сайта #tar -cjf /backup/site.ru/»`date «+%Y-%m-%d»`».tar.bz2 ./* /usr/bin/tar -czf /backup/site.ru/»`date «+%Y-%m-%d»`».tar.gz ./* # создание дампа и архивирование /usr/bin/mysqldump -u user -pPassWD DataBase | gzip > /backup/site.ru/»`date «+%Y-%m-%d»`».sql.gz # удаление архивов старше 7 дней find /backup/site.ru/ -type f -mtime +7 -exec rm -rf {} \;

Настройка таймаутов для связки apache + fcgid для исключения ошибки «mod_fcgid: read data timeout in 40 seconds».

Подобная ошибка часто встречается при импортировании данных ( прайсов, каталогов ) через плагины CMS. При возникновении в логах ошибки «mod_fcgid: read data timeout in 40 seconds» следует увеличить увеличить время ожидания mod_fcgid. Для этого в файле fcgid.conf изменяем параметр  IPCCommTimeout: IPCCommTimeout 360 в CentOS /etc/httpd/conf.d/fcgid.conf в Debian/Ubuntu  /etc/apache2/mods-available/fcgid.conf Увеличиваем время выполнения скриптов на PHP в php.ini: max_execution_time 360