PostgreSQL размещение базы данных в памяти
Создадим директорию для хранения файлов данных
# mkdir /pg_data
Смонтируем файловую систему ramfs в созданной директории
# mount -t ramfs ramfs /pg_data/
# mount | grep ramfs
ramfs on /pg_data type ramfs (rw,relatime)
Установим владельца и права для директории
# chown postgres:postgres /pg_data/
# chmod 755 /pg_data/
Создадим табличное пространство для postgresql в директории /pg_data
Дадим права для определенной роли.
create tablespace tb_test location '/pg_data';
create role usr1;
grant all on tablespace tb_test to usr1;
Создадим новую базу данных (example_db) в табличном пространстве tb_test
create database example_db with tablespace = tb_test;
Когда файловая система ramfs будет размонтирована все созданные данные потеряются, поэтому
требуется частое резервное копирование.
Алгоритм остановки базы данных
$ su - postgres
$ /etc/init.d/postgresql stop
$ cp -R /pg_data/* /backups/
# umount /pg_data
Запуск
# mount -t ramfs ramfs /pg_data/
# chown postgres:postgres /pg_data/
# chmod 755 /pg_data/
# su - postgres
$ cp -R /backups/* /pg_data/
$ /etc/init.d/postgresql start
Если включено WAL архивирование, для сохранения скорости операции в памяти, директорию с архивными файлами необходимо также размещать на файловой системе ramfs и копировать до размонтирования.