Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование *NIX систем > dump mysql


Автор: proger 8.8.2005, 12:14
Как мне в кроне сделать дам определенной базы???

Автор: DENNN 8.8.2005, 14:38
Например так

mysqldump -u user -p megapassword --database FBI > /usr/local/backup/FBI.sql

Автор: Mal Hack 8.8.2005, 14:54
http://forum.vingrad.ru/index.php?showtopic=56218&view=getnewpost

Автор: proger 9.8.2005, 05:56
спасибо!

Автор: Step 13.8.2005, 01:36
Цитата(DENNN @ 8.8.2005, 14:38)
mysqldump -u user -p megapassword --database FBI > /usr/local/backup/FBI.sql

на ловца и зверь бежит, спасибо.. только думал искать...

я так понимаю что бы скидывало на другой сервак нужно с другого сервака в эту строчку впихнуть -h server1.my.com

Автор: DENNN 13.8.2005, 13:22
да, если фаерволл пропустит и в авторизации разрешено с этого хоста под этим логином/паролем заходить

Автор: Step 13.8.2005, 23:09
DENNN, пропустит, уж фаерволл я настраивать уже более менее научилсчя

Автор: Kurt 19.8.2005, 16:42
Цитата
mysqldump -u user -p megapassword --database FBI > /usr/local/backup/FBI.sql

Извиняюсь за глупый вопрос, а как сделать, чтоб результирующий файл сразу tar'ился и сжимался bzip'ом?

Автор: Step 19.8.2005, 20:09
на сколько я понимаю нужно перенаправить вывод на упаковщик

Автор: DENNN 22.8.2005, 13:43
Цитата

mysqldump -u user -p megapassword --database FBI | tar -xzf /usr/local/backup/FBI.sql -


или так, кому больше нравиться
Цитата

mysqldump -u user -p megapassword --database FBI | tar -xzf - - > /usr/local/backup/FBI.sql

Автор: Step 22.8.2005, 13:51
а в чем разница

Автор: DENNN 22.8.2005, 14:15
Да не в чем. Просто второй вариант, ИМХО, смотрится как три независимые операции: дамп, архивирование, сохранение.

Автор: Step 22.8.2005, 14:17
DENNN,

--> вот это значит сохраненние?

Автор: DENNN 23.8.2005, 08:33
Вот ЭТО написано с двумя пробелами и представляет из себя три РАЗНЫХ операнда. "-" обозначает поток ввода/вывода.

Автор: Step 23.8.2005, 11:50
а зачем два

Автор: DENNN 23.8.2005, 14:46
один- создаваемый фал, второй- источник

Автор: Step 24.8.2005, 00:30
Цитата(DENNN @ 23.8.2005, 14:46)
один- создаваемый фал, второй- источник

видать моему мышлению к логичности линукса придеться еще слегка приспособиться smile

Спасибо

Автор: Kurt 9.9.2005, 01:41
DENNN
Что-то не получается:
Цитата
[ignat@super ~]$ mysqldump -u ignat --password=ignat -B test | tar -xzf - - > /home/raznoe/btst/test.sql

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: -: В архиве не найден
tar: Выход, отложенный по результатам предыдущих ошибок

Автор: bilbobagginz 9.9.2005, 18:27
Курт... ты пытаешься вывод мусулодампа распаковать или запаковать ?
( по моему он выдаёт чистый sql. )
у тебя команда: tar -zxf - -
что на языке человека значит распаковать файл пришедший на стандартный ввод, и выплюнуть его на стандартный вывод.
ты наверное пытаешься написать:
tar -zcf - -

А назвать такой файл наверное стоит: test.sql.tgz


удачи.

Автор: Kurt 11.9.2005, 18:35
bilbobagginz
Все твои замечания верны и справедливы. И понимаю, что написано не то. (ключи tar'а я знаю).
Просто я все сделал по http://forum.vingrad.ru/index.php?showtopic=60793&view=findpost&p=498508 - всего лишь хотел показать, что получается в итоге... а вернее, что ни фига не получается.. smile
DENNN
Там точно все правильно?

З.Ы.
bilbobagginz
Так, как ты говоришь, я уже делал:
Цитата
[ignat@super]$ mysqldump -u ignat --password=ignat -B test | tar -zcf - - > /home/raznoe/btst/test.sql.tgz
tar: -: Cannot stat: No such file or directory
tar: Выход, отложенный по результатам предыдущих ошибок

smile

Автор: bilbobagginz 11.9.2005, 20:53
вообще-то я не знаю почему ты так делаешь вообще.
во первых - запусти просто:
mysqldump -u ignat --password=ignat -B test > mydump.sql
а потом уже извращайся с дампом - сколько влезет, напр:
tar -cf - mydump.sql | gzip > mydump.tgz

не вижу смысла брать stdin, и выплёвывать на stdout, без хотя-бы именования данных.

удачи.






Автор: Black 11.9.2005, 21:10
// получаем дамп БД
mysqldump -p -u root base --add-drop-table > /путь_куда_cохранить_файл_с_дампом_БД_MySQL/dump.sql

// где root - имя пользователя имеющего доступ к БД
// base - это БД которую будем резервировать
// --add-drop-table (это значит что данные будут перезатерты если встретяться одинаковые записи на новой БД, иначе могут быть проблемы с уникальными ID)
// Потом спросят пароль, надо ввести пароль указанного пользователя (при вводе пароль не отображается!!!)

// Архивируем файлик дампа БД, чтобы меньше весил.
tar cjf /путь_куда_положить_архив/dump.tar.bz2 /путь_к файлу_который архивируем/dump.sql

Автор: bilbobagginz 11.9.2005, 22:07
PHP-DIRECTOR, у меня к тебе придирки-советы (есссно собссный опыт):
1. если пароль есть, но не выдан, а это в скрипт пихают... то скрипт зависнет... пока не отвалится. а если в крон это засунуть ... имэйлов наполучается кто-то.
2. bzip2 - не на всех системах стоит, и если и стоит, то не всегда в PATH.флажок без минуса - тоже не на всех системах сработает... лучше медленнее, но на 100. ( на Фре напр. стоит бзип, а на линухах - не на всех по умолчанию, тоже и на солярке, а tar - есть гнюшный а есть не гнюшный )
3. старайся НИКОГДА не архивировать абсолютные пути, по крайней мере без начального "/". потом, когда разархивируешь, можно себя удивить...

Автор: Kurt 11.9.2005, 23:10
Собственно, для чего хочу сразу архивировать - банально места мало. После получения дампа я отправляю по ftp получившийся архив на другую машину.

Автор: bilbobagginz 12.9.2005, 01:19
тогда можешь использовать netcat (nc)
если всё это синхронизированно, диск даже не нужен:

на бекап-сервере:
nc -l -p 3333 > mydump.sql.gz

на клиенте:
mysqldump <blablabla> | gzip - | nc -q 1 backupserver 3333


порт и адреса конечно поменяй.

Автор: Guest 15.9.2005, 07:48
А зачем тебе tar тут вообще нужен? mysqldump создаст один текстовой файл, жми его gzip-ом или bzip-ом на лету и все.

Автор: DENNN 15.9.2005, 16:36
Сорри. Моя ошибка не подумал о простой вещи: тар хранит сжатым не только текст, но и добавляет к нему служебную информацию включая имя и путь файла. Поэтому перенаправления с консоли не работает. Как сказано в справке, тар умеет распаковывать из консольного потока и записывать упакованные файлы в поток.
Так же не заработает:
Цитата(Guest @ 15.9.2005, 07:48)
создаст один текстовой файл, жми его gzip-ом или bzip-ом на лету и все.

Потому как они тоже хотят "хендл" файла (по крайней мере у меня сейчас не заработало).
Сделами чуть-чуть разберусь и найду вариант (т.к. compress, zcat и иже с ними тоже хотят файл в качестве входного параметра)
Добавлено @ 16:37
P.S. netcat действительно будет хорошим решением в данном случае.

Автор: DENNN 29.9.2005, 18:37
Вот. Мои исследования привели к следующему результату:
Цитата

mysqldump -u root -p --database db_name | gzip -c > dump.sql.gz


Проверено, все рабоатет

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)