Задавайте вопросы, мы ответим
Вы не зашли.
Подскажите, необходимо периодически делать копию БД, для восстановления в случае проблем.
Использую комманду
mysqldump --databases --add-drop-table -ulogin -ppassword database > database_22-3-06-09.sql
Правильно ли я задаю команду или надо добавить ее какой-либо параметр? восстанавливать будут командой mysql из командой строки.
где-то прочел, что перед созданием копии БД таким способом необходимо, чтобы не осуществлялась запись в БД. как лучше поступить в данном случае: может быть можно остановить апаче (чтобы не функционировал сайт) и после уже создать БД?
Как вы относитесь к созданию копии БД с помощью phpmyadmin?
Неактивен
Обычно от БД требуется целостность связей между таблицами, для этого их нужно блокировать на запись
mysqldump --lock -B dbname | gzip > db.sql.gz
В случае с табличками InnoDB, блокировать их смысла нет, т.к. с базы можно снять целостный снимок:
mysqldump --single-transaction -B dbname | gzip > db.sql.gz
В случае, если у Вас есть бинарный журнал, имеет смысл также включать --master-data=2 (вдруг понадобится
репликацию делать )
В случае с табличками MyISAM можно обойтись быстрым бинарным бэкапом (при этом получится не
текстовый файл, а бинарные копии табличек; это работает гораздо быстрее создания текстового файла):
mysqlhotcopy dbname /path/to/backup/dir
Неактивен
Чтобы не дублировать темы, спрошу здесь же. У меня сейчас стоит задача раз в день переносить часть базы с одного хоста на другой. Я это делаю последовательно:
mysqldump -ulogin -p --opt database_name table_name > my_db.sql | gzip -9 my_db.sql
После этого ручками переношу файлик на новый хост, там разворачиваю:
gzip -d my_db.sql.gz | mysql -ulogin -p database_name < my_db.sql
Можно ли как-то миновать этап ручной переноски файлов и сразу сделать так, чтобы получаемый дамп разворачивался на втором сервере? Причем, обязательно при этом данные должны передаваться в сжатом виде (архив с дампом весит 10 метров).
Неактивен
mysqldump | gzip | ssh remoteserver "gunzip | mysql"
Или без ssh (если прямая сетка), то можно поднять nc — будет пошустрее:
remote: nc -l -p 1234 | gunzip | mysql
local: mysqldump | gzip | nc remoteserver -p 1234
Неактивен
ЧТо-то у меня не получается все в одну команду. А как передать файл с одого сервера на другой через ssh? Я, когда выполняю ssh... он мне просто открывет bash на удаленном сервере.
Неактивен
ssh <server> <command>
Просто скопировать на другой сервер можно командой scp file server:/path
Неактивен