• Быстрый переход
  • Рубрики
  • Свежие записи
  • Метки
  • Архивы
  • Реклама 1
  • Реклама 2
  • Рейтинг@Mail.ru

    Добро пожаловать! Ваш IP-адрес: ec2-54-145-117-60.compute-1.amazonaws.com

    OS Linux

    Автоматическая сборка мусора (Automatic Vacuuming) в PostgreSQL

    Синтаксис VACUUM:
    VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table ]
    VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]

    Синтаксис ANALYZE:
    ANALYZE [ VERBOSE ] [ table [ ( column [, ...] ) ] ]

    Кроме сборки мусора (VACUUM) производится ещё и анализ (ANALYZE). Периодическое выполнение команды ANALYZE необходимо для нормального функционирования планировщика. Собранная с помощью этой команды статистика позволяет значительно ускорить выполнение SQL- запросов. То есть, если не хочется настраивать автоматическую сборку мусора, то в любом случае её придётся делать только теперь в ручную. Процесс обычной сборки мусора в PostgreSQL (VACUUM без приставки FULL) не блокирует таблиц и может выполняться в фоне, не мешая выполнению запросов. Регулярное исполнение команд VACUUM и ANALYZE обязательно. Это необходимо по той причине, что иначе не получится заново использовать дисковое пространство, которое занимают ранее удалённые или изменённые строки и не удастся обновить статистику для планировщика запросов. И то и другое отрицательно сказывается на эффективности использования ресурсов и производительности запросов. Начиная с версии PostgreSQL 8.1 сервер может самостоятельно автоматически запускать ещё один системный процесс, который, соответственно, так и называется autovacuum daemon. Все настройки для этого процесса хранятся в postgresql.conf. К значениям этих параметров следует отнестись крайне внимательно. Если по каким-то причинам демон было решено не запускать, то в любом случае необходимо производить сборку мусора и набор статистики в ручную.

    Основным средством физического и аналитического сопровождения баз данных в PostgreSQL является команда SQL VACUUM и ее аналог — сценарий vacuumdb. Оба средства выполняют две общие функции:
    1.удаление всех данных, оставшихся в результате отмены транзакций и других операций, оставляющих временные данные;
    2.анализ операций с базами данных, по результатам которого PostgreSQL конструирует более эффективные запросы.

    Подробнее...

    Установка MegaCLI на Linux Debian

    # apt-get install -y alien unzip

    Далее скачиваем с официального сайта архив с программой

    http://www.lsi.com/downloads/Public/MegaRAID Common Files/8.00.48_Linux_MegaCLI.zip

    В архиве будут два rpm пакета:
    Lib_Utils-1.00-08.noarch.rpm
    MegaCli-8.01.06-1.i386.rpm

    Расспакавываем файл:

    rpm2cpio MegaCli-8.01.06-1.i386.rpm | cpio -idmv
    ./opt/MegaRAID/MegaCli/MegaCli
    ./opt/MegaRAID/MegaCli/MegaCli64
    rpm2cpio Lib_Utils-1.00-08.noarch.rpm| cpio -idmv
    ./opt/lsi/3rdpartylibs/LGPLLicenseV2.txt
    ./opt/lsi/3rdpartylibs/libsysfs.so.2.0.2
    ./opt/lsi/3rdpartylibs/src/sysfsutils-2.2.0.tar.gz
    ./opt/lsi/3rdpartylibs/x86_64/libsysfs.so.2.0.2

    Копируем MegaCLI в /opt:
    mkdir -p /opt/MegaRAID/MegaCli
    cp ./opt/MegaRAID/MegaCli/* /opt/MegaRAID/MegaCli/

    cp ./opt/lsi/3rdpartylibs/x86_64/libsysfs.so.2.0.2 /usr/lib/

    Все новые скрипты и бинарные файлы нужно сделать исполняемыми:
    chmod 755

    Сделаем символьные ссылки в /usr/bin для MegaCLI:
    ln -s /opt/MegaRAID/MegaCli/MegaCli64 /usr/bin/MegaCli

    MegaCli -v
    MegaCLI SAS RAID Management Tool Ver 8.01.06 Dec 23, 2010
    (c)Copyright 2010, LSI Corporation, All Rights Reserved.

    Exit Code: 0x00

    Далее запускаем:

    megacli -LDInfo -Lall -Aall — информация о контроллере

    megacli -PDList -Aall — состояние всех дисков

    или так

    megacli -PDList -aAll | egrep "Enclosure Device ID:|Slot Number:|Inquiry Data:|Error Count:|state"

    Быстрая установка браузера Firefox на Debian 7 wheezy

    Debian по умолчанию поставляется с Iceweasel веб-браузер, а не Firefox. Хотя рекомендуется использовать Iceweasel у вас может быть необходимость в установке Firefox здесь простой способ, как установить Firefox на Debian хриплый, используя репозиторий Debian импорта Linux Mint в. Для начало редактируем /etc/apt/sources.list и добавьте следующую строку:

    deb http://packages.linuxmint.com debian import
    Далее обновляемся:

    # apt-get update

    Далее устонавливаем

    # apt-get install firefox

    Установка Nginx в Debian

    NGINX - это простой, надежный и быстрый сервер, который не перегружен функциями. Применение веб-сервера NGINX рационально, преимущественно, для статических веб-сайтов, а также в качестве прокси-сервера перед динамическими веб-сайтами.

    Достоинствами NGINX являются:

    Эффективное обслуживание веб-трафика в условиях высокой конкурентности, т.е. большого количества одновременных TCP-соединений и HTTP-запросов;

    Оперативное обслуживание многочисленного количество запросов на установление новых соединений и возможность справляться с неоднородностью трафика, другими словами, обрабатывать большие и маленькие веб-объекты, а также быстрые и медленные клиенты;

    • Максимально эффективная работа с многопроцессорными системами;
    • Функции масштабируемости на мультипроцессорных компьютерах;
    • Кроссплатформенность, т.е. работа на большинстве существующих аппаратных платформах и операционных системах;
    • Минимальное потребление ресурсов центрального процессора (CPU), а также памяти и системы ввод/вывода (I/O) на компьютерах;
    • Отличный баланс между простотой и гибкостью применяемой конфигурации.
    • Управляя более 15% всех интернет-доменов, NGINX стал стандартным инструментом для создания быстрых и масштабируемых веб-сайтов.

    NGINX полностью поддерживает протоколы HTTP/1.1, SPDY/2, WebSocket, FastCGI, uwsgi и SCGI, и поэтому позволяет подключать пользователей к таким популярным приложениям, как Joomla, WordPress, Magento, Drupal и других, размещенных на одном сервере или в сети для повышения производительности и большой масштабируемости.

    Благодаря своей компактной и предсказуемой памяти и используемого CPU, NGINX чрезвычайно популярное веб-программное обеспечение для использования во всех типах облачных сред, обслуживающий уже более 45% веб-сайтов, размещенных на Amazon AWS.

    NGINX обеспечивает простую интеграцию с применением таких рамок, как Rails, Node.js, JBoss, Django или Zend. Заменяя или дополняя конфигурацию устаревших приложений поставляемых вместе с сервером, NGINX позволяет масштабировать и создавать веб-сайты без покупки лишних аппаратных средств.

    Основные функции HTTP-сервера:
    Акселерированное обратное проксирование с применением кэширования, простейшее распределение нагрузки и устойчивость к отказам;

    Акселерированная поддержка FastCGI, uwsgi, SCGI и memcached серверов с кэшированием;

    Обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, а также кэш дескрипторов открытых файлов;

    Модульность, фильтры, включая сжатие (gzip), докачка (byte-ranges), chunked ответы, SSI-фильтр, XSLT-фильтр, конвертация изображений; несколько подзапросов на одной странице, которые могут обрабатываться в SSI-фильтре через прокси или FastCGI и выполняться параллельно;

    Поддержка SSL и расширения TLS SNI.

    Другие возможности HTTP-сервера:

    • Большая гибкость конфигурации;
    • Виртуальные серверы, определяемые по IP-адресу и имени;
    • Обновление и изменение настроек исполняемого файла без перерыва в обслуживании клиентов;
    • Поддержка pipelined и keep-alive соединений;
    • Ограничение количества одновременных соединений и запросов с одного адреса;
    • Выполнение различных функций в зависимости от адреса клиента;
    • Ограничение доступа в зависимости от адреса клиента и HTTP Basic авторизации;
    • Проверка HTTP referer;
    • Быстрая ротация логов, настройка форматов логов, а также буферизованная запись в лог;
    • Специальные страницы для ошибок 3xx-5xx;
    • Модуль rewrite: изменение URI с помощью регулярных выражений;
    • Методы PUT, DELETE, MKCOL, COPY и MOVE;
    • FLV и MP4 стриминг;
    • Встроенный Perl;
    • Ограничение скорости выдачи ответов;

    Подробнее...

    Настройка автоматического запуска supervisord на Linux

    Для начало установим supervisor

    # sudo apt-get install supervisor
    Конфигурационный файл лежит в /etc/supervisord.conf, также там и настраиваем запуск PID файла, совместно с файлом который будет скачан далее:
    pidfile=/var/run/supervisord.pid

    Далее скачиваем с github файл в /etc/init.d
    sudo curl https://gist.github.com/howthebodyworks/176149/raw/88d0d68c4af22a7474ad1d011659ea2d27e35b8d/supervisord.sh > /etc/init.d/supervisord

    Задаем права на файл:

    # sudo chmod +x /etc/init.d/supervisord

    и добавляем в автозапуск:

    # sudo update-rc.d supervisord defaults

    После пробуем запустить:

    service supervisord start
    service supervisord stop

    Установка Postgresql 9.3 Debian 7 Wheezy

    Для установки воспользуемся официальным репозиторием.

    Создаем конфиг репозитория.

    sudo nano /etc/apt/sources.list.d/pgdg.list

    Вставляем одну URL репозитория

    deb http://apt.postgresql.org/pub/repos/apt/ wheezy-pgdg main

    Узнать кодовое имя дистрибутива можно командой «lsb_release -c»

    Добавляем ключ репозитория.

    wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | sudo apt-key add -

    Устанавливаем

    sudo apt-get update
    sudo apt-get install postgresql

    так же можно

    sudo apt-get install postgresql-9.3 postgresql-contrib-9.3 postgresql-doc-9.3

    [warn] No PostgreSQL clusters exist; see «man pg_createcluster» … (warning).

    Не давно наткнулся на такую проблему, мне не удавалось полностью установить PostgreSQL на Debian.

    Все началось с:
    sudo apt-get install postgresql
    После чего у меня не запускался postgreSQL и не создавалось директория /etc/postgresql/
    Далее я решил удалить все и начать все с начало.

    sudo apt-get purge postgresql

    Но при удалении и установки по новой я опять получал тоже самое.

    warn] No PostgreSQL clusters exist; see "man pg_createcluster" ... (warning).
    Purging configuration files for postgresql-9.1 ...
    Removing postgresql-client-9.1 ...
    Removing postgresql-common ...
    [warn] No PostgreSQL clusters exist; see "man pg_createcluster" ... (warning).
    Removing 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common'
    Purging configuration files for postgresql-common ...

    Не много поискав в интернете я нашел ряд рекомендации и ВОТ, то что мне реально помогло:

    Во первых:
    sudo apt-get --purge remove postgresql\*
    После того, как все пакеты PostgreSQL были удалены, запустите
    rm -r /etc/postgresql/
    rm -r /etc/postgresql-common/
    rm -r /var/lib/postgresql/
    userdel -r postgres
    groupdel postgres

    sudo apt-get install postgresql-9.1 postgresql-contrib-9.1 postgresql-doc-9.1

    Получаем:
    Setting up postgresql-9.1 (9.1.11-1.pgdg70+1) ...
    Creating new cluster 9.1/main ...
    config /etc/postgresql/9.1/main
    data /var/lib/postgresql/9.1/main
    locale en_IN
    port 5432
    update-alternatives: using /usr/share/postgresql/9.1/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
    [ ok ] Starting PostgreSQL 9.1 database server: main.

    На этом все!

    Резервное копирование и Восстановление базы данных Postgre

    В поставку PostgreSQL сервера входят утилиты для резервного копирования, и восстановления из резервной копии базы данных: pg_dump и pg_restore.
    Резервное копирование базы Postgre (pg_dump)
    Используем pg_dump для резервного копирования базы данных с именем «Test». pg_dump позволяет делать как текстовые, так и сжатые архивы вашей БД.
    Дамп с сжатием:
    #pg_dump –Fc –U postgres "Имя базы данных" > *.back.tgz
    Где:
    postgres – имя пользователя базы данных.
    «Имя базы данных» – имя базы данных на вашем сервере.
    *.back – имя конечного файла содержащего дамп.
    Текстовый дамп:
    # pg_dump –Fе –U postgres "Имя базы данных" > *.sql
    Где:
    postgres – имя пользователя базы данных.
    «Имя базы данных» – имя базы данных на вашем сервере.
    *.sql – имя конечного файла содержащего дамп в текстовом формате.

    Восстановление базы данных из архивной копии. (pg_restore)
    Восстановление базы данных postgre производится при помощи утилиты pg_restore. Для ее использования нужно указать Имя пользователя сервера БД, имя базы данных и имя файла с вашим дампом:
    # pg_restore –U ИМЯ ПОЛЬЗОВАТЕЛЯ БД –d ИМЯ БАЗЫ ДАННЫХ –v ПУТЬ К ВАШЕМУ ДАМПУ.
    Например:
    Имя пользователя postgres.
    Имя базы данных Test.
    Имя файла dump.back.
    # pg_restore –U postgres –d Test –v dump.back
    Создадим небольшой скрпит для автоматического архивирования базы данных postgreSQL. В имени архивной копии будем использовать текущее число, что бы по названию можно было определить дату архива.

    |BackUpDir="/home/melfis/dump/" // Директория для хранения бэкапов
    |DateName=`date +%d.%m.%Y-%H.%M` //Получаем дату для имени файла
    |cd $BackUpDir //Переходим в директорию с бэкапами
    |echo Начато резервное копирование базы данных
    |pg_dump -Fc -U postgres "Test" > $DateName.Test.backup //Делаем бэкап
    |echo Резервное копирование завершено нажмите любую клавишу.
    |read x

    Сделайте скрипт исполняемым, и добавьте его в cron. В результате выполнения этого кода в директории находящейся в переменной BackUpDir будет создана сжатая архивная копия вашей базы данных.
    При создании резервной копии с ключом -t, будет создана текстовая резервная копия. Она занимает намного больше места, но удобна тем что SQL код поддается редактированию.

    Установка postgresql 9.1 с postgis 2

    Установка PostgreSQL на Ubuntu:
    1 - sudo apt-add-repository ppa:sharpie/for-science # To get GEOS
    2 - sudo apt-get -y --force-yes install postgresql-9.1 postgresql-server-dev-9.1 postgresql-contrib-9.1 gdal-bin binutils libgeos-c1 libgeos-dev libspatialite libspatialite-dev libgdal1-dev libxml2 libxml2-dev libxml2-dev checkinstall libproj0 libproj-dev libpq-dev build-essential
    3 - sudo mkdir -p '/usr/share/postgresql/9.1/contrib/'
    4 - cd usr/share/postgresql/9.1/contrib/
    5 - wget http://postgis.refractions.net/download/postgis-2.0.2.tar.gz
    6 - tar zxvf postgis-2.0.2.tar.gz && cd postgis-2.0.2
    7 - ./configure --with-raster --with-topology
    8 - make
    9 - sudo make install

    Далее:
    sudo su postgres -c'createdb -E UTF8 -U postgres template_postgis'
    sudo su postgres -c'createlang -d template_postgis plpgsql;'
    sudo su postgres -c'psql -U postgres -d template_postgis -c"CREATE EXTENSION hstore;"'
    sudo su postgres -c'psql -U postgres -d template_postgis -f postgis.sql' (en un directorio atras estan estos sql)
    sudo su postgres -c'psql -U postgres -d template_postgis -f spatial_ref_sys.sql'
    sudo su postgres -c'psql -U postgres -d template_postgis -c"select postgis_lib_version();"'
    sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON geometry_columns TO PUBLIC;"'
    sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON spatial_ref_sys TO PUBLIC;"'
    sudo su postgres -c'psql -U postgres -d template_postgis -c "GRANT ALL ON geography_columns TO PUBLIC;"'

    Установка Apache Solr на Debian/Ubuntu

    Apache Solr — это расширяемая поисковая платформа от Apache. Система основана на библиотеке Apache Lucene и разработана на Java. Особенности ее в том, что она представляет из себя не просто техническое решение для поиска а именно платформу, поведение которой можно легко расширять/менять/настраивать под любые нужды — от обычного полнотекстового поиска на сайте до распределенной системы хранения/получения/аналитики текстовых и других данных с мощным языком запросов.
    Длы того чтоб начать установку Apache Solr, нам нужно убедится что у нас установлено Java
    # java -version
    если ее нет то можно воспользоваться статьями написанные ранее.
    http://it-admin.org/os-linux/ustanovka-sun-java-development-kit-jdk-7-na-debian-squeeze.html
    http://it-admin.org/os-linux/ustanovka-java-6-na-ubuntu-debian.html
    в зависимости от того, что Вам нужно, то и ставим - 6 или 7 версию!

    Далее скачивает и устанавливаем apache-solr с официального сайта http://archive.apache.org/dist/lucene/solr/

    $ cd /tmp
    $ wget http://archive.apache.org/dist/lucene/solr/4.6.1/solr-4.6.1.zip
    $ unzip solr-4.6.1.zip
    $ mv solr-4.6.1.zip solr
    $ cp -r solr /путь_к_папке_домена/solr
    $ cd /путь_к_папке_домена/solr/example
    $ java -jar start.jar

    Проверьте в браузере:
    http://yourdomain.com:8983/solr/admin/
    Собственно, должна отобразиться стартовая страничка apache-solr

    Осталось поместить его в автозагрузку:
    $ nano /etc/init.d/solr
    и вставляем туда скрипт:

    Подробнее...