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

--转换日志格式

相关推荐
李兆龙的博客4 小时前
问津集 #26:Lakebase——Postgres 的版本化页面存储、数据库分支与计算弹性
数据库
在角落发呆4 小时前
工具配置备份步骤:从手动备份到自动化方案
运维·windows·自动化
_upupup5 小时前
Linux的调试工具——gdb/cgdb
linux·服务器
百度一下吧5 小时前
Nginx 使用手册:从安装配置到实战部署
运维·nginx
JeJe同学5 小时前
Docker镜像导入、容器启动
linux·运维·docker
Jason_zhao_MR5 小时前
Linux与实时控制如何兼得
linux·嵌入式硬件·机器人·工业控制
回眸&啤酒鸭5 小时前
【回眸】自动化白盒测试落地实战指南
运维·自动化·log4j
倔强的石头_6 小时前
聊聊金仓KFS:一款把数据同步软件做扎实的产品
数据库
闲云野鹤在人间6 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
禾小西6 小时前
Redis:从两大维度和三大主线建立知识体系
数据库·redis·缓存