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

--转换日志格式

相关推荐
ao-weilai1 小时前
Linux网络编程:Socket UDP
linux·服务器·网络·c++
可乐鸡翅yeah_1 小时前
混合内容 Mixed‑Content 安全策略,HLS HTTPS 页面加载 HTTP 资源排错实战
运维·ffmpeg·音视频·媒体·m3u8
爱吃香菜的初学者1 小时前
九.Linux——文件操作
linux
园长的牧歌1 小时前
Ubuntu 打开应用在导航栏没有图标是个齿轮
linux·ubuntu
艾醒(AiXing-w)2 小时前
LangChain 1.0 智能体开发(三):Agent 记忆管理——从短期对话到跨会话长期记忆
数据库·人工智能·langchain
MSTcheng.2 小时前
KES 进了 K8s 之后运维归谁管?
数据库
曦夜日长2 小时前
Linux系统篇,进程概念(四):内核链表的深度理解、进程优先级的底层理解
linux·运维·服务器·php
‎ദ്ദിᵔ.˛.ᵔ₎2 小时前
Linux 库制作与原理
linux
知识的搬运工旺仔2 小时前
CREATE INDEX CONCURRENTLY:线上建索引不阻塞 DML 的代价与坑
数据库·后端·sql