The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Автоматический ежедневный бекап всех баз данных"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Автоматический ежедневный бекап всех баз данных"  +/
Сообщение от Arti (??) on 02-Дек-09, 19:13 
Если скрипты для создания автоматического ежедневного бекапа всех баз данных?

Собственно основная задача в том, чтобы скрипт делал бекапы всех баз данных, имеющихся на сервере (т.к. базы могут постоянно добавляться и добавлять их в бекап в ручную неудобно).
+ есть требование: чтобы для каждой базы создавался свой .sql файл.

Видела скрипты, которые позволяют реализовать все, кроме как - автоматическое построение спсика бд для бекапа (например: http://www.opennet.dev/base/sys/mysql_backup.txt.html), но как я писала ранее, руками добавлять БД в список для бекапа не подходит.

Надеюсь на Вашу помощь :)

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Автоматический ежедневный бекап всех баз данных"  +/
Сообщение от QuAzI (ok) on 02-Дек-09, 19:54 
Насколько я помню, для бекапа InnoDB придётся всё равно стопать сервер. Так кто вам мешает бекапить всю /var/db/mysql - все MySQL-базы как правило внутрях, даже список не нужен. Список нужен если бекапить надо не все, а только конкретные. Вот чтобы sql-файл создавался это несколько сложнее и тормозно будет, а смысла как-то не улавливаю.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Автоматический ежедневный бекап всех баз данных"  +/
Сообщение от TyLLIKAH on 02-Дек-09, 20:16 
#!/bin/sh

backup_dir=/var/backups/mysql/

for i in `/usr/local/bin/mysql -ss -e "show databases;"`; do

    if [ $i != test ] && [ $i != information_schema ]
    then
        backup_name=$i.`date +%Y%m%d%H%M%S`.dump.bz
    /usr/local/bin/mysqldump $i | bzip2 > $backup_dir$backup_name
    fi
done

find $backup_dir*.bz -type f -a -mtime +7 -exec rm {}  \;

Только в дамп надо ключ добавить чтобы и процедуры тоже бекапил, если есть

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Автоматический ежедневный бекап всех баз данных"  +/
Сообщение от Arti (??) on 03-Дек-09, 00:35 
>[оверквотинг удален]
>        backup_name=$i.`date +%Y%m%d%H%M%S`.dump.bz
>    /usr/local/bin/mysqldump $i | bzip2 > $backup_dir$backup_name
>    fi
>done
>
>find $backup_dir*.bz -type f -a -mtime +7 -exec rm {}  \;
>
>
>Только в дамп надо ключ добавить чтобы и процедуры тоже бекапил, если
>есть

огромное спасибо!
буду сегодня тестировать

Процедур пока нет слава богу, если будут - можете написать пример как делать, если будут процедуры?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Автоматический ежедневный бекап всех баз данных"  +/
Сообщение от Arti (??) on 03-Дек-09, 00:46 
подскажите пожалуйста еще, как задавать пароль при коннекте к серверу без промта?

просто вида:
/usr/local/bin/mysql --user=root -password=XXXXX

не получается (пишет, что доступ запрещен), хотя если делать просто
/usr/local/bin/mysql --user=root -password
(тогда он запрашивает и ввести пароль - нормально проходит)

а вот без промта не получается.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Автоматический ежедневный бекап всех баз данных"  +/
Сообщение от Arti (??) on 03-Дек-09, 01:17 
с синтаксисом разобралась, протупила, для Mysqdump также нужен был логин и пароль :)

При дампе возникают ошибки вида:
mysqldump: Got error: 1049: Unknown database 'XXXXX' when selecting the database
mysqldump: Got error: 1556: You can't use locks with log tables. when using LOCK TABLES

из-за чего это может быть? и как бороться

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Автоматический ежедневный бекап всех баз данных"  +/
Сообщение от TyLLIKAH on 04-Дек-09, 00:43 
>mysqldump: Got error: 1049: Unknown database 'XXXXX' when selecting the database

mysql> use 'XXXXX' работает ?


>mysqldump: Got error: 1556: You can't use locks with log tables. when using LOCK TABLES

это тоже можно отключить. только желательно представлять к чему это может привести.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Автоматический ежедневный бекап всех баз данных"  +/
Сообщение от Alexander email(??) on 06-Дек-09, 16:37 
Я попробовал написать на PHP следующий скрипт и у меня вывело на экран список баз MySQL... А дальше можно добавить mysqldump и имя файла db_name.sql... Мне интересно что будет дальше, поэтому сообщите мне, пожалуйста о ваших результатах... Если надо, то могу дописать скрипт до конца... Успехов!!!

#!/usr/bin/php
<?php
$db=mysql_connect('localhost','root','');
$rez=mysql_query('show databases');
echo mysql_error();
while ($row=mysql_fetch_assoc($rez))
{
echo $row['Database']."\n";
}

mysql_close($db);
?>

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру