SQL-запрос для автоматического Экспорта в файл и FTP?

Позволяет начинают с вершины.

У меня есть большая база данных для телефонного приложения, приблизительно приблизительно 60 ГиБ

Перефразируйте это: у Меня есть довольно маленькая база данных. Серьезно, время, где 60 giga, где большой приблизительно 10 лет назад. Сравните это с: у Меня есть finaincial база данных данных, которая имеет 800 ГБ и рост с 95% данных в одной таблице ;)

Это будет иметь четыре внутренних HDs, вероятно, для ОС и резервного копирования, но самое большое изменение является подключенной системой хранения - 12 x 15k диски во внешнем интерфейсе SAS.

Вот то, что я сделал бы:

  • Зеркально отразите два диска для начальной загрузки. Отложите раздел на 64 ГБ вниз, остальные Вы используете для ВРЕМЕННОГО ФАЙЛА. Вы не хотите видеть много IO там.
  • Зеркально отразите следующие 2 диска для файлов журнала. Если они выполненный hifh на IO - повторно пропитывают их SSD. Учитывая небольшое количество изменений у Вас есть.... маленький SSD на 80 ГБ, должен быть достаточно.

  • Остальные (12 дисков), поднимает hugh RAID 10.

Более важный то, что Вы реконфигурировали наш сервер для использования:

  • Минимальные 12 файлов данных и файлы журнала для tempdb. Не автовыращивайте это. Зафиксируйте их.
  • Минимальные 12 файлов журнала. Никакая шутка. Не авторастите здесь, также.
  • Минимальные 12 файлов базы данных. Я говорил - нет авторастут?

Затем конечно, всегда существует RAID 10 по сравнению с RAID 5/6, по сравнению с RAID 50/60 для рассмотрения.

Что должно рассмотреть там, учитывая различия в производительности HUGH между Набегом 10 по сравнению с другими - который весь удар вода из Набега 5/6/50/60 для anyhing, требующего высокого IO. RAID 5 / 6 делает onl ysense, если Вы вставите твердотельные диски - затем, то significnat IO потеря будет полностью съеден. На самом деле, учитывая Ваш тривиальный размер базы данных, может быть финансово глупо даже пойти с 2x15 диски SAS. Получите 2 диска x200gb REALSSD, и у Вас будет приблизительно 100 раз производительность IO если RAID 10 по Вашим 30 дискам. Учитывая значительную стоимость инфраструктуры можно сэкономить МНОГО денег на пути.

На самом деле самая умная вещь была бы к не ordet целая штука SAS - Вы имеете 4 слота накопителя, помещаете ОС на два диска, используете SSD на 200 ГБ в Зеркале на другом. Законченный. И НАМНОГО быстрее, чем Ваш материал SAS, также ;) Радость наличия тривиального datbase размера. Проверьте http://www.fastestssd.com на текущее состояние. Современный SSD будет, reah 200 МБ выдержали случайные уровни в той установке, даже если не вершина строки. Это серьезно вытрет floow посредственным IO, который Вы получаете от своей установки SAS.

Или: 30 дисков SAS являются, возможно, 4800 IOPS. RealSSD добирается 50.000 - на одном диске со "слабыми временами" приблизительно 36 000 IOPS. Это означает, что ОДИН SDD приблизительно в 7,5 раз более быстр - в медленные моменты - чем Ваши 12 установок диска. Приблизительно в 10 раз более быстрый в хорошие времена. Ай.

Будьте осторожны, чтобы правильно выровнять parittions и правильно отформатировать файл systme (подсказка: не используйте стандартный размер узла 4 КБ - глупый для SQL Server).

Я мог сделать крупный RAID 10 6 дисков и бросить весь DB на него, но я рассматривал разбивающийся ТРАФИК, и это - индексные файлы на отдельные разделы - и возможная ТАРИФИКАЦИЯ также. Кроме того, Все остальное могло бы преуспеть в своем собственном Файле.

Это было бы глупым злоупотреблением SQL Server. Учитывая, что это делает выравнивание нагрузки между файлами и хочет/, просит несколько файлов на группу (один на логический процессор), это ничего не получило бы - напротив. Разделение файлов и индексов НИЧЕГО не достигает, если они заканчивают на тех же дисках так или иначе. В Вашем случае Вы более обеспечены с одной группой файлов, 12 файлами. Если Вы хотите более позднюю масштабируемость, можно хотеть пойти, чтобы 48 файлов данных запустились с - дает Вам комнату до ядер процессора 48.

Можно хотеть использовать две группы файлов для splt от тарификационных данных из менее энергозависимого-/, который требуют один, но не для прямой скорости, а для priviledge возможного перемещения их полностью позже прочь без перестройки - именно это я сделал со своей финансовой базой данных.

Последние слова: кто бы ни купил сервер, сделанный плохими мудрыми аппаратными средствами решения. Нет никакой причины иметь внешний лоток SAS для чего-то что маленький. Мой сервер базы данных от SuperMicro и имеет 24 слота диска в 2 высотах единиц высоты монтируемого в стойку устройства. Это без внешней клетки. Я действительно не хочу сравнивать числа здесь - но я держал пари, что это было много потраченных впустую денег.

2
задан 12 June 2012 в 17:43
2 ответа

cron jobs (man cron for usage) are how you would schedule the process.

Off the top of my head, your actual script (run by the cron job) would do the following:

  • use mysqldump to export the database
  • call FTP with a list of commands to run (ftp server < commands.txt)
1
ответ дан 3 December 2019 в 10:56

You can do that with CRON jobs (or schedule windows task).

Query to export to csv looks like:

SELECT id, name INTO OUTFILE '/tmp/report.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY ‘\\’
LINES TERMINATED BY '\n'

You can schedule the query to run with CRON and the ftp commands too.

2
ответ дан 3 December 2019 в 10:56

Теги

Похожие вопросы