1.mysqldump工具介绍:
mysqldump是mysql自带的逻辑备份工具。它通过协议连接到mysql数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert语句。
2.使用语法:
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3…]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
参数 描述
-h,--host=name 连接地址
-p,--password 密码
-P,--port 端口
-S,--socket=name socket文件
-u,--user=name 用户名
-v,--verbose 输出备份过程信息
-A,--all-databases 备份所有数据库
-Y,--all-tablespaces 备份所有表空间
-y,--no-tablespaces 不备份表空间
-B,--databases 备份指定的数据库
-d,--no-data 不备份数据
--ignore-table=name 不备份某些指定的表
-n,--no-create-db 不写入创建表信息
4.使用shell脚本实现 :
#!/bin/bash
user='-uroot -p123456'
exclude_db="mysql|information_schema|performance_schema|sys|Database"
bak_path=/backup/
[ -d $bak_path ] || mkdir -p $bak_path
mysql $user -e 'show databases;' | egrep -v $exclude_db > db_bak
while read line
do
mkdir -p $bak_path$line
mysql -uroot -p123456 -N -e "show tables from $line" > db.table
while read table
do
mysqldump $user $line $table | gzip > $bak_path$line/$table`date +%F`.gz
done < db.table
rm -rf db.table
done < db_bak
rm -rf db_bak