写点什么

MySQL 数据备份,恢复和验证

作者:wong
  • 2022 年 3 月 02 日
  • 本文字数:858 字

    阅读完需:约 3 分钟

在使用 MySQL 的过程中,使用了一些简单的方法,制作了数据的备份,恢复和验证工作,记录一下。

准备工作

# 安装pv和gzip(CentOS)yum -y install pv gzip
复制代码

MySQL 版本

5.6.x
复制代码

MySQL 数据备份

# 整个dbname库备份mysqldump -hxxx -uxxx -p --skip-lock-tables dbname | pv | gzip -c > dbname_date.sql.gz# 整个表备份mysqldump -hxxx -uxxx -p --skip-lock-tables dbname table  | pv | gzip -c > dbname_table_date.sql.gz# 存储过程,事件等函数备份mysqldump -hxxx -uxxx -p --skip-lock-tables -n -d -t -R -E dbname  | pv | gzip -c > dbname_proc_date.sql.gz(备注:有时候需要改字符编码, --default-character-set=utf8mb4 加到备份参数中)
复制代码

mysqldump 参数说明

-h mysql数据库地址-u mysql账号-p mysql账号密码(单独输入)--skip-lock-tables 不锁表操作,避免影响数据写入-n --no-create-db 只导出数据,不添加CREATE DATABASE语句-d --no-data 只导出数据,只导出表结构-t --no-create-info 只导出数据,不添加CREATE TABLE语句-R --routines 导出存储过程以及自定义函数-E --events 导出事件
复制代码

MySQL 数据恢复

准备一个恢复库# 整个dbname库恢复gunzip < dbname_date.sql.gz | mysql -hxxx -uxxx -p# 整个表恢复gunzip < dbname_table_date.sql.gz | mysql -hxxx -uxxx -p dbname# 存储过程,事件等函数恢复# (需要先把dbname_proc_date.sql文件中的账号信息改为新的恢复库的账号信息)gunzip < dbname_proc_date.sql文件中的账号信息改为新的恢复库的账号信息.sql.gz | mysql -hxxx -uxxx -p dbname
复制代码

MySQL 数据验证

# 简单方法就是验证两个库的相同数据表数据行数是否一致select count(1) from dbname.table
复制代码

其他

可以根据这个流程,编写一个脚本,做到系统计划任务中,自动执行。
复制代码

参考链接

https://lixiansen.xyz/2021/07/08/%E5%85%B3%E4%BA%8Emysqldump%E4%BD%BF%E7%94%A8%E4%B8%AD-skip-opt%E7%9A%84%E4%B8%80%E4%BA%9B%E5%9D%91/

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_lock-tables

发布于: 刚刚阅读数: 2
用户头像

wong

关注

人生充满黑色幽默 2017.10.24 加入

一名工程师

评论

发布
暂无评论
MySQL数据备份,恢复和验证_MySQL_wong_InfoQ写作平台