The OpenNET Project / Index page

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

Резервное копирование MySQL (mysql backup)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: mysql, backup,  (найти похожие документы)
From: Vadim Kravciuk <vadim@phpdevs.com> Date: Mon, 22 Mar 2004 14:31:37 +0000 (UTC) Subject: Резервное копирование MySQL Оригинал: http://www.phpdevs.com (PHP Devs) Итак, краткий пример как самому можно быстро организовать бакап базы данных не сервере, ну и соответственно не зависить от хостера, бакапит он или нет. Ниже приведен пример скрипта который и занимается этой черной работой. Сразу же предупреждаю, что скрипт бакапит только те базы, до которых он имеет права доступа, и если вы внесли "чужие" базы, то они не будут сохранены. /* начало скрипта sql-backup.sh */ #!/bin/sh FN=`/bin/date +%Y-%m-%d` BK_DIR='/home/user_name/backup_dir/' PARAM='--quote-names --add-drop-table -udb_login -pdb_pass' cd ${BK_DIR} /opt/mysql/bin/mysqldump ${PARAM} vadim_db1 > vadim_db1.sql /opt/mysql/bin/mysqldump ${PARAM} vadim_db2 > vadim_db2.sql tar -cvf ${BK_DIR}/sql-${FN}.tar *.sql gzip ${BK_DIR}/sql-${FN}.tar chmod 600 ${BK_DIR}sql-${FN}.tar.gz rm *.sql /* конец скрипта */ Настройка скрипта делается очень просто: BK_DIR='/home/user_name/backup_dir/' - тут вы должны указать, в какую директорию складывать бакап. Эта директория уже должна быть созданна. PARAM='--quote-names --add-drop-table -udb_login -pdb_pass' - замените db_login и db_pass соответственно на ваши логин и пароль к базе данных (этот аккаунт должен иметь права select к тем базам, которые вы собираетесь бакапить.) /opt/mysql/bin/mysqldump ${PARAM} vadim_db1 > vadim_db1.sql - где vadim_db1 это имя базы каторую бакапим. Если у вас MySQL проинсталлирован не в /opt/mysql , то замените /opt/mysql/bin/mysqldump на ваш путь к mysqldump. Сохраните файл и выставите на него chmod 700 , тем самым защитив его содержимое от посторонних глаз. Все, работа сделанна, теперь можно запускать ./sql-backup.sh Если вы все настроили правильно, то в /home/user_name/backup_dir/ должен появится файл с содержимым ваших баз. Иначе смотрите конфигурацию скрипта заново.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, artem (??), 16:31, 19/01/2007 [ответить]  
  • +/
    Спасибо, помогло !

    только вот если еще это дело досовершенствовать бы, а именно чтобы оно само автоматом делало, скажем в 00:00, а еще классно будет, если база старая, то чтобы удалялась через....скажем...пару недель...

     
  • 1.2, artem (??), 16:41, 19/01/2007 [ответить]  
  • +/
    кстати, чето не въехал немного...
    если вместо
    cd ${BK_DIR}
    написать
    cd ${backup_dir}
    то получится.... ???
     
  • 1.3, artem (??), 09:41, 26/01/2007 [ответить]  
  • +/
    А еще есть http://www.indexsoft.com/dbmanagerpro/
     
  • 1.4, pentarh (??), 00:26, 24/02/2007 [ответить]  
  • +/
    Пока думп локает таблицы, мой мускуль просто усирается от количества ждущих запись тредов...

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

    ЗЫ. Стек, превед ;)

     
  • 1.5, Pilat (?), 01:47, 10/11/2007 [ответить]  
  • +/
    А mysqlhotcopy использовать нельзя?
    http://dev.mysql.com/doc/refman/5.0/en/mysqlhotcopy.html
     
     
  • 2.6, pentarh (??), 16:57, 10/11/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >А mysqlhotcopy использовать нельзя?
    >http://dev.mysql.com/doc/refman/5.0/en/mysqlhotcopy.html

    It uses LOCK TABLES, FLUSH TABLES.

    Представь, база 9 гигабайт.

    1. FLUSH TABLES WITH READ LOCK
    2. cp/scp
    3. UNLOCK TABLES

    Между 1 и 3 пунктом минут 9-15 задержки, в ходе которой база мертвая.

     

  • 1.7, pasha (??), 19:55, 14/08/2008 [ответить]  
  • +/
    Спасибо. Класная вещь. Правда немножко переделал под себя :)
     
  • 1.8, error500 (??), 19:21, 07/04/2009 [ответить]  
  • +/
    /*   начало скрипта  sql-backup.sh  */
       #!/bin/sh

       USR=dbusr
       PSWD=dbpswd
       FN='/bin/date +%Y-%m-%d'
       BK_DIR="$HOME/backup_db/"
       PARAM="--quote-names --add-drop-table -u$USER -p$PSWD"
       if [ !-d $BK_DIR || mkdir $BK_DIR ]; then
        echo "Not found target dir $BK_DIR"
       fi
       cd $BK_DIR
       /opt/mysql/bin/mysqldump ${PARAM} vadim_db1 > vadim_db1.sql
       /opt/mysql/bin/mysqldump ${PARAM} vadim_db2 > vadim_db2.sql

       tar -cvf ${BK_DIR}/sql-${FN}.tar *.sql
       gzip ${BK_DIR}/sql-${FN}.tar
       chmod 600 ${BK_DIR}sql-${FN}.tar.gz

       rm *.sql
       /*   конец скрипта */


    Непроверил но так функциональность болeе развитая (ну типа мысль покрайней мере ясна да?), а вообще да согласен с предыдущими оратором второй сервер это хорошо
    З.Ы. только вот mysqldump не увсех там может оказатся и неплохобы его поиск тоже автоматизировать

     
  • 1.9, Artur (??), 06:34, 15/07/2011 [ответить]  
  • +/
    Вот тут http://www.artcom-ufa.ru/?posts/2011/07/12/rezervnoe-kopirovanie-na-veb-serve я описал простенький скрипт резервного копирования на вэб-сервере, все просто как "2 рубля" :-)
     
  • 1.10, Artur (??), 12:36, 19/07/2011 [ответить]  
  • +/
    Для бэкапа своих сайтов я написал вот такой скрипт http://www.artcom-ufa.ru/?posts/2011/07/12/rezervnoe-kopirovanie-na-veb-serve думаю подойдет для любой *nix OS
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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