前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用mysqldump备份多个库

使用mysqldump备份多个库

作者头像
阿dai学长
发布2020-05-27 10:15:49
3.6K0
发布2020-05-27 10:15:49
举报
文章被收录于专栏:阿dai_linux阿dai_linux

mysqldump一次备份多个库

一个数据库实例中有20+个库,本次备份需要备份其中的10+个库,使用mysqldump直接进行备份踩到一个warning和一个error。

数据库版本:5.7.26

过程如下:

action1
代码语言:javascript
复制
mysqldump -hrm-2ze04c849v9m32bzj.mysql.rds.aliyuncs.com  -uadminroot  -p'BDm4w%qqGf3Zx!J5' --single-transaction --quick --databases db1 db2 db3 db4 ... > /tmp/test.sql

Warning:

代码语言:javascript
复制
Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events. 
mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'activity' AND TABLE_NAME = 'scores';': Unknown table 'column_statistics' in information_schema (1109)

原因:

关于GTID是5.6以后,加入了全局事务 ID (GTID) 来强化数据库的主备一致性,故障恢复,以及容错能力。 官方给的:A global transaction identifier (GTID) is a unique identifier created and associated with each transaction committed on the server of origin (master). 所以可能是因为在一个数据库里面唯一,但是当导入其他的库就有可能重复。所有会有一个提醒。

可以通过添加--set-gtid-purged=off 或者–gtid-mode=OFF这两个参数设置。

action2
代码语言:javascript
复制
mysqldump -hrm-2ze04c849v9m32bzj.mysql.rds.aliyuncs.com  -uadminroot  -p'BDm4w%qqGf3Zx!J5' --set-gtid-purged=OFF --single-transaction --quick --databases db1 db2 db3 db4 ... > /tmp/test.sql

报错:

代码语言:javascript
复制
mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'activity' AND TABLE_NAME = 'scores';': Unknown table 'column_statistics' in information_schema (1109)

原因:

新版的mysqldump默认启用了一个新标志,通过- -column-statistics=0来禁用他。

action3
代码语言:javascript
复制
mysqldump -hrm-2ze04c849v9m32bzj.mysql.rds.aliyuncs.com  -uadminroot  -p'BDm4w%qqGf3Zx!J5' --column-statistics=0 --set-gtid-purged=OFF --single-transaction --quick --databases db1 db2 db3 db4 ... > /tmp/test.sql

成功!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 过程如下:
    • action1
      • action2
        • action3
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档