mysql备份、恢复之mysqldump
发表于:2025-02-12 作者:千家信息网编辑
千家信息网最后更新 2025年02月12日,mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等mysqldump 语法 :默认配置读
千家信息网最后更新 2025年02月12日mysql备份、恢复之mysqldump
mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等
mysqldump 语法 :
默认配置读取路径: /etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
常用参数 : -u, --user=name 指定用户 -h, --host=name 指定主机 -p, --password[=name] 指定密码 -A, --all-databases 指定所有库,-A与--all-databases不同时使用 -B, --databases 只指定--databases表示备份单个数据库;多数据库之间使用空格隔开; 如果不指定--databases表示备份整个数据库;只指定dbname表示备份单张表;多表之间使用空格隔开 --master-data[=#] 0 表示关闭,默认值为 0 1 表示开头打印CHANGE MASTER命令信息,在复制场景中有用 2 表示添加注释信息,记录当前所处二进制日志及所处位置 --single-transaction 如果全部为 InnoDB引擎表,则不需要使用 --lock-all-tables; 基于此选项能实现热备InnoDB表;会启动单个大事务,对全局服务影响可能是持久的 --lock-all-tables 执行备份前请求锁定表,一般只锁定当前要备份的数据库及表 --add-drop-database 在恢复之前先删除已经存在的对应数据库 --add-drop-table 在恢复之前先删除已经存在的对应表 -C, --compress 将数据先压缩后通过网络传输 -E, --events 备份数据同时,备份事件调度器代码 -R, --routines 备份数据同时,备份存储过程和存储函数 -d, --no-data 表示只备份表结构不备份数据,复制表结构、空库至其它服务器时有用.其它任何时候不可用 --opt 同时启动各种高级选项
备份方式 :
全量+增量+二进制日志
前提需要在配置中添加参数 :
default-storage-engine = InnoDB 设置默认存储引擎为InnoDB
innodb_file_per_table=1 设置每表单个表空间
log-bin=mysql-bin 启用二进制功能
备份过程 : 全量备份 : 使用InnoDB引擎,备份使用--single-transaction选项不需要锁定表即实现热备;使用非InnoDB引擎,备份需要使用--lock-all-tables选项进行请求锁定所有表后开始备份 mysqldump -uroot -pmypass --single-transaction --all-databases --master-data=2 > /backup/mysql_fullbak.sql 增量备份 : mysql>SHOW MASTER STATUS; 查看当前处于哪个日志文件及位置 less /backup/mysql_fullbak.sql 查看从哪个位置开始 mysqlbinlog --start-position=4579 --stop-position=4868 mysql-bin.000015 > /backup/increment.sql 指定开始及结束位置导出成增量备份 二进制日志备份: mysql>INSERT INTO test (Name,Age) VALUES ('tom',18); 增量备份后,插入一条数据 mysql>DROP DATABASE hello; 此时删除数据库 mysql>SHOW MASTER STATUS; 查看当前处于哪个日志文件及位置 mysqlbinlog --start-position=4868 mysql-bin.000015 查看数据库崩溃前二进制日志开始位置,结束位置必须是数据库删除之前位置 mysqlbinlog --start-position=4868 --stop-position=5062 mysql-bin.000015 > /tmp/hello.sql 将二进制日志启动时位置至崩溃前位置数据导出
恢复过程 : 前提 : 清空数据目录下所有文件,重新初始化数据库 mysql>SET GLOBAL sql_log_bin=0; 恢复时需要临时关闭二进制日志,如不关闭,恢复数据将记录进二进制日志增加日志管理难度 mysql>FLUSH LOGS; 手动对二进制日志进行一次滚动 mysql < /backup/mysql_fullbak.sql 恢复全量备份 mysql < /backup/increment.sql 恢复增量备份 mysql < /tmp/hello.sql 恢复崩溃前导出二进制数据 mysql>SET GLOBAL sql_log_bin=1; 恢复完成开启二进制日志
恢复后需要使用 mysqlcheck -uroot -pmypass -c -all-databases 检查所有表是否存在问题,所有恢复完成后请记得对数据库做一次全量备份
至此,使用mysqldump备份恢复完成,如有错误请大家指教!
备份
数据
数据库
日志
二进制
位置
增量
同时
引擎
存储
文件
过程
之间
信息
前提
单个
参数
命令
有用
空格
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国外软件开发用什么软件
艾尔登法环有中国服务器
access数据库如何提取字段
怎么删除各个网站大数据库
网络安全证文200字
扫服务器压缩包
浙江网络技术包括什么
软件开发公司用的什么语言
组装linux服务器主机配置
11g数据库桌面类
怎么清除数据库保护
华为底层软件开发工程师
哈利波特跨服务器加不了好友吗
中科曙光网络安全部门
皮书数据库如何盈利
税控盘点进去显示访问数据库失败
服务器存在哪些安全威胁
家庭财务管理系统数据库表
剑侠世界3登录找不到以前服务器
惠山区软件开发商店
python 查数据库
网络安全图标 ppt模板
互联网科技时尚
阿里云服务器安全检测
数据库保持表之间的关系主键
河北盘古网络技术有限公司百家号
软件开发的基本阶段有哪些
重启数据库和监听器
电脑连接服务器显示服务器超时
修改已创建数据库编码