好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

数据库管理与高可用第四章备份与恢复

数据库管理与高可用第四章备份与恢复 1.MySQL的完全备份 mysqldump命令备份数据库

◆ 备份单个库

 语法:
mysqldump -u 用户名 -p [密码] [选项] [库名] > /备份路径/备份文件名
例如:
mysqldump -u root -p yiku > /backup/yiku.sql 

◆ 备份多个库

 语法:
mysqldump -u 用户名 -p [密码] [选项] --databases 库名1 [库名2] ...  > /备份路径/备份文件名
例如:
mysqldump -u root -p --databases yiku erku > /backup/yiku-erku.sql 

◆ 对所有库备份

 语法:
mysqldump -u 用户名 -p [密码] [选项] --all-databases > /备份路径/备份文件名
例如:
mysqldump -u root -p --opt --all-databases > /backup/ku.sql 

mysqldump命令备份数据表

 语法
mysqldump -u 用户名 -p [密码] [选项] 数据库名 表名 > /备份路径/备份文件名
例如
mysqldump -u root -p yiku yibiao > /backup/yiku-yibiao.sql
*mysqldump备份表的结构
mysqldump -u 用户名 -p [密码] [选项] -d 数据库名 表名 > /备份路径/备份文件名
例如
mysqldump -u root -p -d yiku yibiao > /backup/yiku-yibiao.sql 
2.MySQL数据恢复

◆ source命令恢复数据库

 mysql > source /backup/all-data.sql     //使用绝对路径 

◆ mysql命令恢复数据库

 mysql -u 用户名 -p [密码] < 库备份脚本的路径 

◆ 恢复数据表

 mysql> source /opt/school_kgc.sql
mysql -u 用户名 -p [密码] < 表备份脚本的路径
mysql -u root -p mysql < /backup/yiku-yibiao.sql   
3.MySQL增量备份与恢复

◆ 开启二进制日志

 vim /etc/my.cnf               
log-bin=mysql-bin        //添加此行开启二进制日志,名称为mysql-bin开头 

◆ MySQL二进制日志对备份命令

 mysqladmin -u 用户名 -p [密码] flush-logs 

◆ 查看到日志文件中的操作语句(重要)

 mysqlbinlog --no-defaults --base64-output=decode-rows -v 日志文件名称 /opt/aaa.txt  ‘//使用64位解码器按行输出日志文件放到/opt/aaa.txt中‘ 
 例如:mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 > /opt/bak.txt
cat /opt/aaa.txt  ‘//查看日志文件的详细信息‘ 

◆ 一般恢复

 mysqlbinlog [--no-defaults] 增量备份文件 | mysql -u 用户名 -p 

◆ 断点恢复

 恢复数据到指定位置
mysqlbinlog --stop-position=‘操作id‘ 二进制日志 |mysql -u 用户名 -p 密码
从指定的位置开始恢复数据
mysqlbinlog --start-position=‘操作id‘ 二进制日志 |mysql -u 用户名 -p 密码 

◆ 基于时间点恢复

 从日志开头截止到某个时间点的恢复
mysqlbinlog [--no-defaults] --stop-datetime=‘年-月-日 小时:分钟:秒‘ 二进制日志 |mysql -u 用户名 -p 密码
从某个时间点到某个时间点的恢复
mysqlbinlog [--no-defaults] --start-datetime=‘年-月-日 小时:分钟:秒‘ --stop-datetime=‘年-月-日 小时:分钟:秒‘ 二进制日志 |mysql -u 用户名 -p 密码 

◆ 增量恢复的步骤

开启二进制日志-->添加数据-->进行完全备份-->录入新的数据-->进行增量备份(刷新二进制日志)-->模拟故障––>恢复操作

 [root@mysql data]# mysqlbinlog --no-defaults --stop-position=‘612‘ /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -pabc123
[root@mysql data]# mysqlbinlog --no-defaults --start-position=‘806‘ /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -pabc123

[root@mysql data]# mysqlbinlog --no-defaults --stop-datetime=‘2020-08-21 11:54:04‘ /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -pabc123
[root@mysql data]# mysqlbinlog --no-defaults --start-datetime=‘2020-08-21 11:54:38‘ /usr/local/mysql/data/mysql-bin.000001 | mysql -u root -pabc123 

数据库管理与高可用第四章备份与恢复

标签:ack   log   sql命令   roo   back   数据恢复   文件名   基于   二进制   

查看更多关于数据库管理与高可用第四章备份与恢复的详细内容...

  阅读:20次