Online video hd

Смотреть вк видео

Официальный сайт hauteecole 24/7/365

Смотреть видео бесплатно

02.02.10 19:39 solomenikm

How-to`sBackup баз mysql с помощью mysqlhotcopy

Задался целью сделать backup баз на локальный компьютер с помощью mysqlhotcopy, но вот беда - mysqlhotcopy не может копировать их на удаленную машину. Решил проблему скриптом.

Для всего этого нам понадобяться две программы sshpass и rsync. Установка на убунту sudo aptitude install sshpass rsync
А вот собсвенно сам скрипт:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

#!/bin/bash

REMOTE_USER=root
# root пользователь сервера

REMOTE_PASS=******
# root пароль сервера

REMOTE_HOST=localhost
# адрес сервера

REMOTE_PORT=2222
# порт сервера

REMOTE_DB_USER=root
# Пользователь базы

REMOTE_DB_PASS=******
# Пароль к базе

REMOTE_TEMP_BACKUP_DIR=/var/temp_backup_mysql
# Временная папка для копии баз данных

LOCAL_BACKUP_DIR=/home/user/backup/mysql
# Backup-папка

mkdir -p $LOCAL_BACKUP_DIR
# Если Backup-папки нет - создаем

sshpass -p $REMOTE_PASS ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST "
mkdir -p $REMOTE_TEMP_BACKUP_DIR
mysqlhotcopy --user=$REMOTE_DB_USER --password=$REMOTE_DB_PASS db_1 db_2 db_3 $REMOTE_TEMP_BACKUP_DIR
"

# подключаемся по ssh к удаленному серверу. Предварительно устанавливаем ( sudo aptitude install sshpass ) sshpass чтобы можно было передавать пароль при подключении по ssh. Создаем временную папку. Выполняем копирование баз (db_1 db_2 db_3) во временную папку.

rsync -e "sshpass -p $REMOTE_PASS ssh -p$REMOTE_PORT" --progress --archive --delete-after --verbose $REMOTE_USER@$REMOTE_HOST:/$REMOTE_TEMP_BACKUP_DIR/ $LOCAL_BACKUP_DIR
# С помощью rsync ( sudo aptitude install rsync ) Копируем содержимое папки с базой на локальную машину.

sshpass -p $REMOTE_PASS ssh -p $REMOTE_PORT $REMOTE_USER@$REMOTE_HOST "rm -r $REMOTE_TEMP_BACKUP_DIR"
# Удаляем временную папку на сервере
 


Буду очень признателен за коментарии и дополнения относительно этого скрипта, т.к. Backup - наше все :)

P.S. ВАЖНО!!! Не делайте так если у вас базы innodb


Теги:

cppmm 02.02.10 20:49 # +1
Надо будет запомнить. Удобный ход. А то на работе использую bakula, а дома руками бекапил, потому как разворачивать там bakula накладно. :)
digiwhite 02.02.10 20:49 # +0
Вы могли бы рассказать, каким образом делать бэкап, скажем, "простым копированием". Смысл в чем, у меня есть БД mysql, вот надо все базы "затарить" да перелить на другой жесткий диск. Каким образом это сделать без всяких сторонних инструментов.

ЗЫ: и да, у меня не продакшен, а так, дома. Так что никакие дополнительные инструменты ставить не хочу.
solomenikm 02.02.10 21:01 # +0
Если вам нет нужды это все делать по ssh, то можно это сделать выполнив следующую команду: mysqlhotcopy --user=db_user --password=db_pass db_1 db_2 db_3 /var/backup/mysql после чего скопировать ее содержимое и кинуть куда следует на другой машине (/var/lib/mysql). Можно и тупо скопировать все файлы из /var/lib/mysql одной машины на другую, черевато глюками, что делать в случаи отказа базы при таком методе переноса я написал в своей статье тут: http://welinux.ru/post/2173/, по большому счету нужно тупо переустановить mysql-server.
cppmm 02.02.10 21:04 # +1
# mysqldump -u root -p > dumpfile.sql
Enter password:
# bzip2 dumpfile.sql
# scp dumpfile.sql.bz2 login@backuphost:/path/to/backupdir/dumpfile_ddmmccyy.sql.bz2
Password:

Вот, примерно так. Это ручками.
digiwhite 02.02.10 21:17 # +-1
А пароль все время запрашивает? Или его можно ввести сразу, чтобы тогда можно было бы в крон повесить это все.
cppmm 02.02.10 21:24 # +2
Чтобы не спрашивало, надо указывать ту базу, которую надо букапить. Например:
# mysqldump -u root --password=password databasename > dumpfile.sql
digiwhite 02.02.10 21:58 # +0
Угу, понял, спасибо! :)
solomenikm 02.02.10 21:09 # +0
Да, я в пост уже дописал, но повторюсь, что мой способ копирования не годен для innodb.
Murz 21.07.10 11:43 # +0
А по каким причинам он для innodb не подходит и каким образом тогда innodb копировать можно?
Задача у меня состоит в поддерживании актуальной резервной копии базы на другом сервере (раз в сутки синхронизировать), но полностью все данные гонять не хочется между серверами, хотелось бы только изменения гонять чтобы трафик экономить.
Но базы есть как myisam так и innodb.

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 140)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 2746 из 212 городов)
            Топ пользователей Топ блогов

            Новенькие: INlHELL, Ganzz, krio, IH8, kozakman
            welinux.ru

            В хорошем качестве hd видео

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн