【问题标题】:Kubernetes Dump mysql and restore MysqlKubernetes Dump mysql 并恢复 Mysql
【发布时间】:2021-12-06 23:02:54
【问题描述】:

我需要一种机制来转储在 EKS 集群中作为 pod 运行的 mysql。 主要用例是我可以分享给我的开发团队的转储,以便他们可以在本地恢复转储(作为服务运行的正常 mysql)。我见过 Velero,Portworx,但如果开发人员想在本地恢复,它们只在集群(k8)内恢复/转储对我没有用处。 我也使用普通的 mysqldump/mysql 和 kind schedulerjob/cronjob 工作,但在我的数据库中,它们是 UUID,在转换为“null”值时使用 where 。任何帮助都将不胜感激,因为它从上周开始让我头疼。

【问题讨论】:

  • but in my db their are UUID using where when it is getting converted to "null" value 这条线是什么意思,你到底在期待什么?
  • 好的,我的 db 表中有一个 uuid 名称格式(二进制)的字段。在尝试使用 mysqldump 导出时,它被转换为文本,而在恢复值时,该值变为 null。
  • 基本上你的数据库中有二进制列?您是否尝试过使用--hex-blob 选项将二进制导出为十六进制(使导出的文件更大但更可靠)?
  • 您要转储的数据库大小是多少?
  • 只有将近 45-50 MB。

标签: mysql kubernetes mysql-workbench dump velero


【解决方案1】:

你可以试试

mysqldump --user=root --port=3306 --password=topsecret --hex-blob some_database

--hex-blob : 使用十六进制表示法转储二进制列

文档:https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_hex-blob

补充一点,你也可以运行Adminer的UI来导出数据,而不是使用命令到容器。

复制整个数据文件夹

如果你要复制整个数据库,所有的数据库和数据库的内容,你可以直接压缩你的整个 MySQL 数据目录,然后把它复制到新的服务器 Pod 的数据目录中。

这是一种将 InnoDB 文件从一个实例复制到另一个实例的方法。如果您在运行相同操作系统系列和相同版本 MySQL 的服务器之间移动,这将正常工作

https://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_datadir

【讨论】:

    猜你喜欢
    • 2020-05-19
    • 2018-08-26
    • 2012-11-13
    • 2018-10-26
    • 2010-12-24
    • 1970-01-01
    • 2011-01-27
    • 2018-05-23
    相关资源
    最近更新 更多