首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大型数据库的MariaDB mysqldump配置的最佳实践是什么?

大型数据库的MariaDB mysqldump配置的最佳实践是什么?
EN

Database Administration用户
提问于 2021-03-30 13:29:16
回答 2查看 466关注 0票数 -1

问题

我们有一个大型数据库(MariaDB 10.3),mysqldump需要2-3小时才能完成一个完整的数据库转储,而且在转储过程中它还会降低应用程序的性能。

尝试到目前为止

经过研究发现,[mysqldump]部分可以添加到my.cnf文件中。还可以添加quickmax_allowed_packet = 512M等选项。

如果我们还可以在上面的设置中添加single-transaction,那么在转储过程中数据库将不会被锁定,它应该会加快应用程序的速度。

那么,这些条目适合my.cnf吗?

代码语言:javascript
复制
[mysqldump]
single-transaction
quick
max_allowed_packet = 512M
EN

回答 2

Database Administration用户

发布于 2021-03-30 13:47:14

您提到的所有选项都可以在mysqldump's 命令行上指定,这是值得的。这可能是编写自文档备份过程的更好方法,而不是将这些项填充到(隐藏在)配置文件中。

而且,如果转储操作存在性能问题,可以尝试省略single-transaction选项。如果数据库应用程序使用事务来确保多个表之间的一致性,则需要single-transaction进行备份。否则,备份操作将减少对其他数据库工作负载的干扰。

如果您还没有这样做,请尝试在数据库所在的同一台计算机上运行备份。或者使用--compress选项。或者两者都有。对于大型数据库,备份所创建的网络流量非常重要,而这些建议可以减少网络流量。

票数 1
EN

Database Administration用户

发布于 2021-03-30 13:38:04

如果您的数据库结构是相对静态的,那么单独转储它(一次),并且只使用SELECT .. INTO OUTFILE转储表数据--这更快。

你当然需要:

  • 创建一个脚本(最好的方法--一个事件过程)来转储所有(或仅是可变的)表数据。
  • 创建一个脚本(可能作为结构转储中的存储过程)来恢复此转储中的数据,同时要严格考虑到必须以“一一多”顺序还原关系数据。
票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/288953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档