LINUX.ORG.RU

Сообщения flanker

 

Параллельный запуск цепочки программ, обменивающихся текстовыми файлами

Есть набор унаследованных программ, которые обмениваются данными не через стандартный ввод/вывод, а через текстовые файлы. Лежат в одной папке, входом для первой является один файл с данными.

Алгоритм работы: 1) В папку с программами копируется бинарный файл с данными 2) Запускается цепочка программ, первая из которых считывает файл с данными, она генерирует один или несколько текстовых файлов, которые являются входами для других программ, те в свою очередь тоже пишут файлы, и так до последней программы.

Проблема в том, что необходимо параллельно обрабатывать несколько бинарных файлов с данными (в кроне). Если бы обмен шел через стандартный ввод/вывод, то проблем бы не было, для каждой цепочки был бы свой процесс. Но так как текстовые файлы общие, получится не пойми что, что к чему относится понять будет невозможно.

Использовать лок-файлы затруднительно и ненадежно на мой взгляд, так как много файлов и много процессов. Может генерировать какие-то изолированные песочницы?

Подскажите как решить такую проблему?

 ,

flanker
()

Регулярный бэкап большой базы MySql

Имеется пополняемая база данных, которая достигнет размера ориентировочно 1,5 ТБ за два года. В базе всего одна таблица. Заполняется показаниями с оборудования. Столь большой размер достигается из-за специфики данных, в один из столбцов пишутся бинарные блобы. Движок InnoDB.

Задача: делать регулярные бэкап(-ы), который будет размещаться в отдельном файловом хранилище, подключенном через NFS. Хотелось бы отметить, что в моем случае риск неконсистентности данных минимален, все строки независимы, таблица одна.

Поизучав вопрос, я так и не смог ответить на вопрос, какой лучше инструмент и подход лучше применить. Бэкап хотелость бы выполнять раз в неделю. Итак, рассмотренные мною варианты:

1. mysqldump - отпадает, так как медленный, лочит таблицы и вообще похоже подходит только для небольших баз

2. Percona XtraBuckup - бэкапит всю директорию с базами, сложно настраивать инкрементальный бэкап. Как я понял: необходимо включение бинарного лога, чего не хотелось бы, невозможно восстановить инкремент по отдельности. А хотелось бы иметь некую стопку с архивами (инкрементами), каждый из которых можно восстановить отдельно (т. к. выше я отметил про отсутствие неконсистентности)

3. Копирование директории с базой, но в этом случае не получится сделать инкрементальный бэкап, нужно каждый раз копировать сотни гигабайт, чего тоже хотелось бы избежать.

Вобщем, я в замешательстве. Чтобы вы посоветовали в данной ситуации?

 ,

flanker
()

Как подключить NAS-хранилище в серверу mysql?

Здравствуйте!

Имеется:
1. Сервер БД, на котором работают два инстанса mysql (объявлены через mysqld_multi) Выдержка из файла my.cnf:

[mysqld1]
port       = 3306
datadir    = /data/sql/mysqld1

[mysqld2]
port       = 3307
datadir    = /data/sql/mysqld2
bind-address = 0.0.0.0

2. NAS-хранилище RackStation

Сервер имеет выделенный Ip адрес и открыт для внешней сети. Хранилище доступно только внутри локальной сети. На сервере мало дискового пространства, соответственно нужно чтобы база была в хранилище, но инстанс крутился на сервере, имеющем связь с внешним миром, так как оттуда идет запись. Обязательное требование, что mysql-инстанс не должен работать на базе хранилища, хранилище нужно использовать как большую флешку. В идеале хотелось бы просто прописать в конфиге my.cnf на сервере примерно следующее:


[mysqld2]
port       = 3307
datadir    = /адрес хранилища/папка sql на хранилище/mysqld2
bind-address = 0.0.0.0

Подскажите пожалуйста, каким способом лучше решить эту задачу? В какую сторону копать? Первое, что приходит на ум, это Network File System, c помощью которой попытаться примонтировать папку хранилища к серверу. Будет ли mysql-сервер работать с такой папкой? Или есть еще какое-то решение?

 , , , ,

flanker
()

Как запретить вход под root через ssh из внешней сети?

Имеется сервер на OpenSuse 13.2. Как настроить права (и/или) sshd_config таким образом, чтобы:

1. Только определенный пользователь с ограниченными правами мог заходить из внешней сети (ExternalZone) по ssh, при этом не мог работать в режиме sudo, даже если знает пароль. 2. Осталась возможность заходить под root из внутренней сети.

 , ,

flanker
()

RSS подписка на новые темы