mysql 数据库备份

1、备份命令

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql

例如: mysqldump -h 192.168.1.100 -p 3306 -uroot -ppassword --database cmdb > /data/backup/cmdb.sql

2、备份压缩

导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz

例如: mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz

3、备份同个库多个表

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 表1 表2 .... > 文件名.sql

例如 mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql

4、同时备份多个库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql

5、备份实例上所有的数据库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --all-databases > 文件名.sql

例如:mysqldump -h192.168.1.100 -p3306 -uroot -ppassword --all-databases > /data/backup/all_db.sql

6、备份数据出带删除数据库或者表的sql备份

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql

例如:mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql

7、备份数据库结构,不备份数据

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql

mysql数据备份

1.1、全量备份命令如:

/data/mysql/bin/mysqldump -u${账号} -p${密码}  ${备份数据库名称}  > /data/mysql_back/${备份名}`date +%Y%m%d%H`.sql#/data/mysql/bin/mysqldump  这个是我mysql的路径,至于你们的mysql路径看自己系统路径来。

2.2、指定表数据备份命令如:

/data/mysql/bin/mysqldump -u${账号} -p${密码}  ${备份数据库名称}  ${备份数据库中表名称} > /data/mysql_back/${备份名}`date +%Y%m%d%H`.sql

2、mysql指定数据恢复

2.1从全量备份数据中找到要恢复的数据

2.1.1数据恢复之前切记先将整个数据库备份;执行备份操作请查看步骤一

2.1.2 从全量数据中找到要恢复的数据,执行命令:

grep 'INSERT INTO `${表名称}`' ${备份数据} > ${存储的数据地址}  #示列  grep 'INSERT INTO `user`' mysql2018061002.sql > /data/mysql_user.sql

2.2 恢复找到的数据,进入mysql console:

2.3 数据恢复命令:

mysql > use mysql;mysql > source /data/mysql_user.sql;

2.4 数据恢复完成

步骤二的恢复数据,是从全量备份数据中找到我们需要恢复的数据进行恢复。

1、如果我们是需要全量恢复,直接进入mysql控制台进行source导入命令恢复。

2、如果之前有指定表的备份数据,也可以直接进行mysql控制台,用source命令。

3、shell编写mysql全量备份命令,并定时执行。

下面脚本是全量备份mysql数据库并且只保留7天内的,7天外的删除。

并压缩成tar文件存储到/data/mysql_backup目录下。

该脚本可以通过linux crontab 定时执行改脚本进行备份。

备份后的名称如:mysql2018061002.sql.tar

3.1 脚本示列

backupdir=/data/mysql_backup  /data/mysql/bin/mysqldump -u${账号} -p${密码}  ${备份数据库名称} > $backupdir/${备份名}`date +%Y%m%d%H`.sql && cd $backupdir && tar -zcvf mysql`date +%Y%m%d%H`.sql.tar mysql`date +%Y%m%d%H`.sql && rm -f ${备份名}`date +%Y%m%d%H`.sql && find $backupdir -name "${备份名}*.sql.tar" -type f -mtime +7 -exec rm {} \;

3.2 linux crontab定时执行脚本

3.2.1、crontab -e  #列出当前用户的crontab并进行编辑

3.2.2、输入0 1 * * *  /data/mysqlbackup.sh  # 表示每天凌晨1点执行

3.2.3、:wq 保存退出即可

作者:Toyouy

链接:https://www.jianshu.com/p/2f487de04a87

来源:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(mysql 数据库备份)