mysql的备份与恢复

root@localhost \~# mysqldump -u root -p mysql user > /root/mysql-user.sql --备份数据库mysql中的表user

root@localhost \~# mysqldump -u root -p --databases auth >/root/auth.sql --备份数据库auth

root@localhost \~# mysqldump -u root -p --opt --all-databases > /root/all-data.sql --备份数据库中所有表

root@localhost \~# cat mysql-user.sql |grep -v "^--" |grep -v "^/" |grep -v "^$" --查看备份文件

root@localhost \~# mysqldump -u root -p test < /root/mysql-user.sql --将备份的表导入到test库

root@localhost \~# mysql -u root -p -e 'drop database auth;'--删除数据库auth

root@localhost \~# mysql -u root -p -e 'show databases;' --查看数据库

root@localhost \~# mysql -u root -p < /root/auth.sql --执行导入恢复操作

mysql> show variables like 'log_%'; --查看二进制日志是否开启

root@localhost \~# mysqldump -u root -p test pxg > /mysql_bak/auth-users-`date +%Y%m%d`_`date +%H%M%S`.sql

--auth数据库的users表进行完整备份

root@localhost mysql_bak# mysqladmin -u root -p flush-logs

--刷新日志文件

root@localhost mysql_bak# ll /usr/local/mysql/data/mysql-bin.* --查看二进制日志文件

root@localhost \~# mysqladmin -u root flush-logs --刷新二进制文件(免密)

root@localhost \~# cp /usr/local/mysql/data/mysql-bin.000015 /mysql_bak/ --拷贝对应二进制文件到/mysql_bak/下

root@localhost \~# mysql -u root -e 'drop table auth.users;'--模拟删除表users

root@localhost \~# mysql -u root -e 'select * from auth.users;' --检查看看表是否被删除(提示表不存在)

root@localhost \~# mysql -u root auth < /mysql_bak/auth-users-20220628_175116.sql--通过完全备份恢复数据库

root@localhost \~# mysqlbinlog --no-defaults /mysql_bak/mysql-bin.000015 |mysql -u root --通过二进制文件恢复增量备份

root@localhost data# mysqlbinlog --no-defaults --stop-position='175' /usr/local/mysql/data/mysql-bin.000027 |mysql -u root --同上

root@localhost \~# mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin.000027 --查看二进制文件

root@localhost data# mysqlbinlog --no-defaults --stop-datetime='2022-06-29 19::45:59' /usr/local/mysql/data/mysql-bin.000027 |mysql -u root

总结,通过二进制文件恢复可以指定操作ID或者时间作为恢复的节点,这两种节点既可以作为开始,也可以作为结束:对应的四个选项

--stop-position 以哪个操作ID结束 --start-position 以哪个操作ID开始 --stop-datetime 以什么时间结束 --start-datetime 以哪个时间开始

二进制文件无法读取操作方法:

root@localhost \~# cd /usr/local/mysql/data/

root@localhost data# mysqlbinlog --no-defaults -vv --base64-output=decode-rows mysql-bin.000019 >mysql-bin.000019.txt

--转换日志格式

相关推荐
ESDWAN3 分钟前
SD-WAN 是什么?工作原理、适用场景与选型要点
开发语言·网络·数据库·架构·php
m0_639906945 分钟前
MySQL 慢查询优化|explain执行计划详解
数据库·mysql
云飞云共享云桌面7 分钟前
智能装备工厂研发部门多设计师共享一台SolidWorks服务器做设备装配建模
运维·服务器·网络·人工智能·3d·自动化·制造
正儿八经的少年8 分钟前
MyBatis 一对一、一对多 SQL
数据库·sql·mybatis
Elastic 中国社区官方博客14 分钟前
Elastic 在《Forrester Wave™:2026 年第四季度智能运维平台》报告中被评为强劲表现者
大数据·运维·数据库·elasticsearch·搜索引擎·全文检索
Apache IoTDB16 分钟前
从 IoTDB 到 CED-DB:哈尔滨工业大学探索云边端协同时序数据库
数据库·时序数据库·iotdb
自由彩虹17 分钟前
靶场通关16--victim1
linux·服务器·网络·安全·web安全·网络安全
叼烟扛炮20 分钟前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
闲云野鹤在人间22 分钟前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
wuminyu26 分钟前
JVM规范学习总结:class执行性能差异
java·linux·c语言·jvm·c++