Роман Теличко

Заметки веб-разработчика/админа

Тег debian

PostgreSQL. Храним таблицу в оперативной памяти (RAM)

// Ноябрь 7, 2013 | 4470 просмотров | комментариев (0)

Несмотря на то что PostgreSQL является довольно мощной базой данных, в ней отсутствует полноценная поддержка хранения таблиц в оперативной памяти.
Ниже я расскажу как заставить PostgreSQL хранить выбранные таблицы в оперативной памяти для быстрых операций с ними.
Всё будет происходить в Debian.

Создадим пустую папку для монтирования

mkdir /mnt/ramfs

И смонтируем в неё ramfs

mount -t ramfs none /mnt/ramfs

Создадим папку для PostgreSQL и назначим на неё права.

mkdir /mnt/ramfs/pgdata
chown postgres:postgres /mnt/ramfs/pgdata
chmod 600 /mnt/ramfs/pgdata

Далее зайдём под суперпользователем базы данных PostgreSQL — postgres

su postgres
psql

И создадим новый TABLESPACE, размещение которого мы укажим в папке с смонтированной ramfs

postgres=# CREATE TABLESPACE ram LOCATION '/mnt/ramfs/pgdata';

Выдадим права на работу с этом TABLESPACE нашему пользователю (например myuser)

postgres=# GRANT CREATE ON TABLESPACE ram TO myuser;

Теперь нам осталось только создать новую таблицу и указать при её создании TABLESPACE ram.
Например:

CREATE TABLE mytesttable (
    begin_ip ip4 NOT NULL,
    end_ip ip4 NOT NULL,
    begin_num bigint NOT NULL,
    end_num bigint NOT NULL,
    country_code character(2) NOT NULL,
    country_name character varying(255) NOT NULL,
    ip_range ip4r
)
TABLESPACE ram;

Теперь PostgreSQL будет работать с этой таблицей как и с другими даже не подозревая что она «лежит» в ОЗУ.

Это всё.
Удачи.

Загрузка правил iptables при активации сетевого интерфейса в Ubuntu/Debian

// Август 12, 2013 | 12609 просмотров | комментариев (0)

Сегодня я расскажу как настроить firewall iptables на Ubuntu/Debian при поднятии (активации) сетевого интерфейса. Сами команды управления iptables описывать я не буду, т.к. этого в Сети вы найдёте море.
Читать далее…

Создаём загрузочную флешку с Windows 7 в Debian/Ubuntu

// Ноябрь 20, 2012 | 28785 просмотров | комментариев (0)

Итак, у нас есть

  • ISO образ с Windows 7
  • USB-флешка (/dev/sdb1)
  • Linux Ubuntu/Debian

Форматируем флешку в файловой системе NTFS:

sudo mkntfs -f /dev/sdb1

При условии что она уже была подготовлена и правильно размечена ранее.
Если же это не так, тогда ставим Gparted

sudo apt-get install gparted

И через интерфейс форматируем флешку в NTFS, не забыв установить флажёк «boot»

Следующий этап, монтируем ISO-образ в какую-то папку (/mnt/iso), монтируем флешку в какую-то папку (/mnt/flash) и копируем содержимое папки с ISO-образом в папку с флешкой.
У меня получилось так:

sudo mount -o loop ~/soft/windows/windows7.iso /mnt/iso/
sudo mount /dev/sdb1 /mnt/flash/
sudo cp -r /mnt/iso/* /mnt/flash/

Теперь самое сложное, необходимо установить программу ms-sys, которой нет в репозитории.
Программа нужна для записи правильного загрузочного сектора на флешку.
Качаем исходники с последней версией.

Распаковываем и устанавливаем:

tar -xzvf ms-sys-2.3.0.tar.gz
cd ms-sys-2.3.0/
sudo make
sudo checkinstall
sudo dpkg -i ms-sys_2.3.0-1_amd64.deb

Удалить потом можно будет с помощью комманды

sudo dpkg -r ms-sys

Записываем Windows 7 загрузчик на флешку (опция -7 отвечает за Windows 7, есть и другие версии Windows):

sudo ms-sys -7 /dev/sdb

Это всё.
Пользуемся.