MySQL 容灾备份
容灾备份:
数据备份:
直接对数据库进行备份:
# 数据库备份 语句 # 不指定表名的话 默认就是整个数据库备份 # 备份文件可以指定绝对路径 mysqldump -u [用户名] -p [库名] [表名] ... > [备份文件.sql] # 多个数据库备份 语句 mysqldump -u [用户名] -p --databases [库名] [库名] > [备份文件.sql] # 备份所有数据库 语句 mysqldump -u [用户名] -p -all-databases > [备份文件.sql]
直接备份数据库目录:
就是将MySQL中的数据库文件直接复制出来 这是最简单 速度最快的方法
不过这样操作 最好在操作的时候把服务停了 不然会造成数据差异 开发环境倒无所谓
注意:这种方法不适用于InnoDB存储引擎的表
而对于MyISAM存储引擎的表很方便
同时 还原时MySQL的版本最好相同
使用mysqlhotcopy 热备份:
# 使用mysqlhotcopy备份命令 mysqlhotcopy [选项] [数据库名称] [数据库名称] [备份目录]/ # 常用选项: --help:查看mysqlhotcopy帮助; --allowold:如果备份目录下存在相同的备份文件,将旧的备份文件加上_old; --keepold:如果备份目录下存在相同的备份文件,不删除旧的备份文件,而是将旧的文件更名; --flushlog:本次辈分之后,将对数据库的更新记录到日志中; --noindices:只备份数据文件,不备份索引文件; --user=用户名:用来指定用户名,可以用-u代替; --password=密码:用来指定密码,可以用-p代替。使用-p时,密码与-p之间没有空格; --port=端口号:用来指定访问端口,可以用-P代替; --socket=socket文件:用来指定socket文件,可以用-S代替;
mysqlhotcopy的备份方式比mysqldump快
mysqlhotcopy是一个perl脚本,主要在Linux系统下使用。其使用LOCK TABLES、FLUSH TABLES和cp来进行快速备份原理:先将需要备份的数据库加上一个读锁,然后用FLUSH TABLES将内存中的数据写回到硬盘上的数据库,最后,把需要备份的数据库文件复制到目标目录。
mysqlhotcopy并非mysql自带 需要安装Perl的数据库接口包
该工具也仅仅能够备份MyISAM类型的表
数据恢复:
- 使用mysqldump命令备份 进行还原:
# 还原使用mysqldump命令备份的数据库的语法如下: mysql -u root -p [库名] < [备份文件]
-
直接复制目录的备份 进行还原:
通过这种方式还原时,必须保证两个MySQL数据库的版本号是相同的。
MyISAM类型的表有效,对于InnoDB类型的表不可用,InnoDB表的表空间不能直接复制
。
容灾处理:
MySQL的容灾处理 基本就是通过主从和集群为数据服务器提前装配冗余的数据服务(也可能不是冗余的数据服务)
通过主从和集群实现多点数据服务 保证在其中一个数据服务出现问题(断电、宕机)时 其他数据服务器能接管用户的正常业务
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构