MYSQL分库备份
mysqldump -uroot -ptest123 -S /data/3306/mysql.sock -B testdb | gzip > /server/backup/mysqlbak_$(date +%F).sql.gz
可经过脚本结合定时任务实现自动备份:
mysql_db_bak.sh
#!/bin/bash
MYUSER=root
MYPASSWD=test123
SOCKET=/data/3306/mysql.sock
MYSQLCMD="mysql -u$MYUSER -P$MYPASSWD -S $SOCKET"
MYSQLDUMP="mysqldump -u$MYUSER -P$MYPASSWD -S $SOCKET"
for database in test01db test02db test03db
do
$MYSQLDUMP $database | gzip > /server/backup/${database}_$(date +%F).sql.gz
done
chmod +x mysqlbak.sh
不登陆数据库查询mysql和schema数据库
$MYSQLCMD -e "show databases;" | sed '1,2d' | egrep -v "mysql|schema"
MYSQL分表备份
mysql_db_table_bak.sh
#!/bin/bash
MYUSER=root
MYPASSWD=test123
SOCKET=/data/3306/mysql.sock
MYSQLCMD="mysql -u$MYUSER -P$MYPASSWD -S $SOCKET"
MYSQLDUMP="mysqldump -u$MYUSER -P$MYPASSWD -S $SOCKET"
for database in `$MYSQLCDM -e "show databases;" | sed '1,2d' | egrep -v "mysql|schema"`
do
mkdir -p /server/backup/${database}
for table in `MYSQLCMD -e "show tables from $database;" | sed '1d'`
do
$MYSQLDUMP $database $table | gzip > /server/backup/${database}/${database}_${table}_$(date +%F).sql.gz
done
done
chmod +x mysql_db_table_bak.sh
mysql