Как вывести файлы в файловой системе в / из БД MySQL? - PullRequest
0 голосов
/ 18 декабря 2008

Приложение, над которым я работаю, генерирует файлы динамически с использованием. Это делает резервное копирование и синхронизацию между подготовкой, разработкой и производством действительно большой проблемой. Одним из способов, которым мы могли бы получить плавное решение (если это возможно), является наличие сценария, который в момент резервного копирования базы данных может создавать резервные копии динамически сгенерированных файлов внутри базы данных и во время восстановления может вывести эти файлы из базы данных и в файловая система снова.

Мне интересно, есть ли какое-либо доступное (платное или бесплатное) приложение, которое можно было бы использовать в качестве сценариев, чтобы это произошло.

В основном, если у меня есть

/usr/share/appname/server/dynamicdir
/usr/share/appname/server/otherdir/etc/resource.file

Затем, взяв приведенные выше примеры и с помощью сценария поместите их в базу данных mysql.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Ответы [ 2 ]

1 голос
/ 31 декабря 2008

Вы имеете в виду, что приложение хранит файлы в виде BLOB-объектов в базе данных MySQL и / или создает множество временных таблиц? Или вы просто хотите, чтобы временные файлы - сами по себе не связанные с базой данных - были сохранены в MySQL в качестве резервной копии?

Я не уверен, что попытка использовать MySQL в качестве нового сетевого посредника для резервного копирования файлов - это хорошая идея. Если приложение уже использует его, это одно, если нет, MySQL здесь не тот инструмент.

Так или иначе. Если вы заинтересованы в захвате файловой системы в определенный момент времени, ответом будет использование LVM-снимков . Скорее всего, вам придется перестроить свой сервер, чтобы перевести файловые системы на LVM, и иметь достаточно свободного места для хранения такого количества снимков, которое, по вашему мнению, вам понадобится.

Я бы порекомендовал иметь новую точку монтирования только для временных файлов этого приложения. Если в ваших таблицах MySQL используется InnoDB, простой скрипт для запуска mysqldump --single-транзакции в фоновом режиме, а затем процесс снэпшота lvm, вы можете синхронизировать их менее чем за секунду.

0 голосов
/ 19 декабря 2008

Это должно быть тривиально, чтобы выполнить с помощью PHP, Perl, Python и т. Д. Вы ищете кого-то, чтобы написать это для вас?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...