Lonely Dreamer (sanmai) wrote,
Lonely Dreamer
sanmai

MySQL Backup User

GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backup'@'localhost' IDENTIFIED BY 'Password';
 ~ $ cat > /usr/local/bin/mysql_backup
#!/bin/sh
if test -z "$PASSWORD"; then PASSWORD="$1"; fi;
echo -n "Backup started at "; date;
time mysqldump -vu backup -p$PASSWORD --all-databases > `date +%F`.sql;
time nice bzip2 *.sql;
Кроме того, иногда может быть полезно добавить следующие опции:
  1. Чтобы можно было "отыграть" бинлог при восстановлении:
    --single-transaction --flush-logs --master-data=2
  2. При использовании только MyISAM:
    --lock-all-tables
  3. В самый конец, чтобы не сохранять мусор:
    --ignore-table=db.USELESS
От засорения бинлогом всего чего только можно:
 ~ $ grep expire /etc/mysql/my.cnf 
expire_logs_days = 7

Дополнения и исправления приветствуются.

Tags: backup, linux, mysql, useful
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 7 comments