mysql备份、恢复之mysqldump
发表于:2024-10-24 作者:千家信息网编辑
千家信息网最后更新 2024年10月24日,mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等mysqldump 语法 :默认配置读
千家信息网最后更新 2024年10月24日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安全错误
数据库的锁怎样保障安全
互联网科技小编
幽灵行动断点摧毁数据服务器
web服务器如何配置站点
mc搭建服务器搭建
杭州net软件开发费用
农商银行未连接到服务器
毕设校园社交软件开发
我的世界服务器rpg没有效果
网络安全事件分几种
数据库二级映射分别
网络安全建议英文带翻译
网络意识形态安全与网络安全
网络技术公简介
管理软件开发的过程及步骤
江西理工大学软件开发考研
付费网络安全
有没有网络安全专业的大学
护航网络安全消费
常熟运营网络技术服务电话
数据库概论第五版网盘资源
air2平板无法连接服务器激活
谈谈对国产数据库发展的看法
抚州高性价比服务器需要多少钱
亲朋游戏服务器关闭了吗
为什么总连接不到服务器
湖南省衡阳市dns服务器云主机
ibm3850服务器参数
未转变者服务器金币怎么用
小学网络安全教育app
软件开发人员需要记住什么