相关文章推荐
严肃的麻辣香锅  ·  内核模式-不使用系统线程通过共享内存进行用户 ...·  7 月前    · 
豪情万千的松鼠  ·  安装语音 SDK - Azure AI ...·  1 年前    · 
近视的跑步鞋  ·  #excel# averageifs ...·  1 年前    · 
深情的麻辣香锅  ·  JobScheduler 实现 ...·  1 年前    · 
温文尔雅的书包  ·  tsql - Invalid length ...·  2 年前    · 
Code  ›  mysql8 mysqldump - 墨天轮
mysqldump
https://www.modb.pro/db/581036
想发财的洋葱
1 年前
  • 学习
    • 课程中心
      推荐优质内容、热门课程
    • 学习路径
      预设学习计划、达成学习目标
    • 知识图谱
      综合了解技术体系知识点
    • 课程库
      快速筛选、搜索相关课程
    • 视频学习
      专业视频分享技术知识
    • 电子文档
      快速搜索阅览技术文档
  • 文档
  • 工具
    • SQLRUN
      在线数据库即时SQL运行平台
    • 数据库在线实训平台
      实操环境、开箱即用、一键连接
    • Oracle巡检
      简单两步,查看报告分析
    • AWR分析
      上传AWR报告,查看分析结果
    • SQL格式化
      快速格式化绝大多数SQL语句
    • SQL审核
      审核编写规范,提升执行效率
    • PLSQL解密
      解密超4000字符的PL/SQL语句
    • OraC函数
      查询Oracle C 函数的详细描述
    • Bethune X
      数据库智能监控巡检平台,90天试用
  • 暂无图片
    • 数据库
    • 云计算
    • 数据产品
    • 中间件
    • 操作系统
    • 芯片
  • 我的订单
  • 登录后可立即获得以下权益
    免费培训课程
    收藏优质文章
    疑难问题解答
    下载专业文档
    签到免费抽奖
    提升成长等级
    立即登录
    登录 注册
      • 登录 注册
    • 首页
    • 资讯
    • 数说
    • 活动
    • 大会
    • 课程
    • 文档
    • 排行
    • 问答
    • 云市场
    • 我的订单
    暂无图片
    觉得内容不错?
    一键收藏 方便随时查看
    暂无图片
    暂无图片
    微信扫码
    复制链接
    新浪微博
    分享数说
    暂无图片
    采集到收藏夹
    分享到数说
    首页 / mysql8 mysqldump

    mysql8 mysqldump

    huayumicheng 2022-12-12
    328

    1、创建备份用户

    create user backup@'%' identified with mysql_native_password by '123456';
    grant select,reload,process,lock tables,replication client,replication_slave_admin,show view,show_routine,trigger,event,file on *.* to backup@'%';
    flush privileges;
    select:			备份表数据
    show view:   	备份试图
    trigger:        备份触发器
    lock tables:    没有使用--single-transaction
    process:		没有使用 --no-tablespaces
    reload:		备份前刷新mysql日志文件
    super、replication_client:使用--master-data记录点位信息,需要执行show master status
    super、replication_slave_admin: 使用了--dump-slave (要执行 stop slave sql_thread)
    show_routine:     备份存储过程#8.0.20 新增
    event: event事件
    file:   导出文本文件

    2、 备分举例及参数注释

    --只备份表结构
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 --set-gtid-purged=OFF --databases mydb --no-data >mydb_desc_`date +%Y%m%d`.sql
    --只备份表结构,不生成drop table,以免误操作
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 --set-gtid-purged=OFF --skip-add-drop-table --databases mydb --no-data >mydb_desc_`date +%Y%m%d`.sql
    --只备份数据
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 -q --set-gtid-purged=OFF --databases mydb --no-create-info >mydb_data_`date +%Y%m%d`.sql
    --将某个表导出为insert语句
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 --set-gtid-purged=OFF --no-create-info --complete-insert --skip-extended-insert  mydb t1 >mydb_t1_`date +%Y%m%d`.sql
    --备份某个数据库的多张表
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 --set-gtid-purged=OFF -q --single-transaction --hex-blob --triggers --routines --events mydb  t1 t2 t3 >mydb_`date +%Y%m%d`.sql
    --备份某个数据库
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 --set-gtid-purged=OFF  -q --single-transaction  --hex-blob --triggers --routines --events --databases  test >test_`date +%Y%m%d`.sql
    ********************************************
    --新建测试库
    mysql> create database test;
    mysql> use test
    mysql> create table t1 (id bigint not null auto_increment primary key,row_create_time datetime default current_timestamp,row_lastupdate_time datetime default current_timestamp) engine=innodb default charset=utf8mb4 collate = utf8mb4_bin;
    mysql> insert into t1 (id) select null;
    mysql> insert into t1 (id) select null;
    --查看备份test数据库信息
    [root@mysql1 ~]# egrep -v '^$|^--|^/' test_20221211.sql 
    CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ /*!80016 DEFAULT ENCRYPTION='N' */;
    USE `test`;
    DROP TABLE IF EXISTS `t1`;
    CREATE TABLE `t1` (
      `id` bigint NOT NULL AUTO_INCREMENT,
      `row_create_time` datetime DEFAULT CURRENT_TIMESTAMP,
      `row_lastupdate_time` datetime DEFAULT CURRENT_TIMESTAMP,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
    LOCK TABLES `t1` WRITE;
    INSERT INTO `t1` VALUES (1,'2022-12-11 20:31:24','2022-12-11 20:31:24'),(2,'2022-12-11 20:31:25','2022-12-11 20:31:25');
    UNLOCK TABLES;
    ********************************************
    --备份所有数据库,8.0.23之后使用--source-data=2,之前使用--master-data=2
    mysqldump -ubackup -p123456 -h192.168.100.82 -P3306 -q --single-transaction --set-gtid-purged=on --all-databases --hex-blob --triggers --routines --events --source-data=2 >alldata_`date +%Y%m%d`.sql 
    --备份数据库排除某张表
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 --set-gtid-purged=OFF  -q --single-transaction   --hex-blob --triggers --routines --events  --databases mydb  --ignore-table=mydb.t1  --ignore-table=mydb.t2  >mydb_`date +%Y%m%d`.sql 
    --备份多个数据库
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 --set-gtid-purged=OFF  -q --single-transaction  --hex-blob --triggers --routines --events --databases  mydb1 mydb2 mydb3  >mydb1_2_3_`date +%Y%m%d`.sql 
    ----hex-blob
    使用十六进制格式导出二进制字符串字段。如果有二进制数据就必须使用该选项。影响到的字段类型有BINARY、VARBINARY、BLOB--where条件备份
    mysqldump -ubackup -p123456 -h192.168.100.81 -P3306 --set-gtid-purged=OFF  -q --single-transaction --no-create-info --complete-insert --skip-extended-insert  mydb t1  --where="id=1"  >mydb_t1_`date +%Y%m%d`.sql 
    ********************************************
    [root@mysql2 ~]# egrep -v '^--|^/|^$' mydb_t1_20221211.sql 
    LOCK TABLES `t1` WRITE;
    INSERT INTO `t1` (`id`, `row_create_time`, `row_lastupdate_time`) VALUES (1,'2022-12-09 22:29:00','2022-12-09 22:29:00');
    UNLOCK TABLES;
    ********************************************


    -u: 指定连接mysql的用户名 -p: 指定连接mysql的密码 -h: 指定mysql服务器地址 -P: 指定mysql端口 --databases: 指定备份的数据库 --no-data: 只备份标结构,不备份数据 --no-create-info: 只备份数据,不备份标结构 --skip-add-drop-table:不添加drop table语句 -q: 不要缓冲查询,直接转储到stdout,大数据量加速备份 --single-transaction: 将事务隔离级别设置为RR,并在备份数据之前向服务器发送SQL语句,显示开启一个事务快照 --hex-blob: 备份 BINARY, VARBINARY, BLOB 以十六进制导出 --triggers: 备份trigger --routines:备份存储过程 --events: 导出数据库内的计划事件(定时任务) --ignore-table=mydb.t1: 备份数据库的时候忽略某张表 --where: where条件备份 --flush-logs Flush logs file in server before starting dump

    --dump-replica=2|--dump-slave=2: 在从库做一个完整备份,用于主库的新从库 --apply-replica-statements: 在备份文件中增加:开头:stop slave; 末尾:start slave; --include-source-host-port:记录MASTER_HOST,MASTER_PORT ******************************************** mysqldump -ubackup -p123456 -h192.168.100.83 -P3306 -q --single-transaction --set-gtid-purged=on --all-databases --hex-blob --triggers --routines --events --dump-replica=2 --include-source-host-port >alldata_`date +%Y%m%d`.sql ******************************************** --set-gtid-purged=OFF: 备份部分数据是需要设置,导入主库时需要设置,不会在备份文件中记录SET @@GLOBAL.GTID_PURGED的值,不需要reset master可直接导入 --set-gtid-purged=ON: 全库备份需要设置 --set-gtid-purged=AUTO: 默认是auto模式 --set-gtid-purged=commented: commented模式,开启gtid模式,如果gtid_purged不为空,在备份内容中以注释的形式增加 SET @@GLOBAL.GTID_PURGED,同时在备份内容中增加SET @@SESSION.SQL_LOG_BIN= 0; ******************************************** SET @@SESSION.SQL_LOG_BIN= 0; /* SET @@GLOBAL.GTID_PURGED='+0ea02cd8-787f-11ed-9873-000c29c85cd0:1-19';*/ ******************************************** ----set-gtid-purged 参数设置对SQL_LOG_BIN=0的影响 --set-gtid-purged=OFF: SET @@SESSION.SQL_LOG_BIN=0; is not added to the output. --set-gtid-purged=ON: SET @@SESSION.SQL_LOG_BIN=0; is added to the output. --set-gtid-purged=AUTO: SET @@SESSION.SQL_LOG_BIN=0; is added to the output if GTIDs are enabled on the server you are backing up (that is, if AUTO evaluates to ON). --set-gtid-purged=commented SET @@SESSION.SQL_LOG_BIN=0; is added to the output.


    --数据恢复 3、新建恢复账号 mysql> create user apply_log@'%' identified by '123456'; mysql> grant super,system_variables_admin,drop,create,insert,alter,file on *.* to apply_log@'%'; mysql> flush privileges; mysql> exit 4、导入数据 --直接导入 mysqldump -uapply_log -p123456 -h192.168.100.83 -P3306 mydb <mydb.sql
     
    推荐文章
    严肃的麻辣香锅  ·  内核模式-不使用系统线程通过共享内存进行用户模式通信-腾讯云开发者社区-腾讯云
    7 月前
    豪情万千的松鼠  ·  安装语音 SDK - Azure AI services | Microsoft Learn
    1 年前
    近视的跑步鞋  ·  #excel# averageifs 带公式的多条件判断 (with cell reference/funtion)_PythonCat的博客-CSDN博客
    1 年前
    深情的麻辣香锅  ·  JobScheduler 实现 特定时间,特定条件(系统空闲,电池电量,磁盘空间 ……)下执行任务_ReminderFish的博客-CSDN博客
    1 年前
    温文尔雅的书包  ·  tsql - Invalid length parameter passed to the LEFT or SUBSTRING function - Stack Overflow
    2 年前
    今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
    删除内容请联系邮箱 2879853325@qq.com
    Code - 代码工具平台
    © 2024 ~ 沪ICP备11025650号