gpt4 book ai didi

mysqldump 最大忽略表使用情况?

转载 作者:行者123 更新时间:2023-11-29 15:50:09 24 4
gpt4 key购买 nike

我正在使用以下转储命令,但是 DB 数据库中的许多 TABLE_additionalname 仍然被转储。是否存在可以忽略的最大表数,或者此语法是否以其他方式不正确(转储完成,因此我怀疑它是有效的语法)。

mysqldump --skip-lock-tables --single-transaction --flush-logs --hex-blob 
--max_allowed_packet=10M DB -uroot -pPASSWORD
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname
--ignore-table=DB.TABLE_additionalname

转储大小为 41 GB,因此很难确定包含哪些表。

我也查看了我正在运行的版本的手册,但那里没有指定限制,https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html#option_mysqldump_ignore-table .

最佳答案

mysqldump 存储要在动态分配的哈希表中忽略的表列表。它会将表名插入每种类型的哈希中,并且似乎没有任何代码来限制忽略表的数量。

https://github.com/mysql/mysql-server/blob/8.0/client/mysqldump.cc#L847

case (int)OPT_IGNORE_TABLE: {
if (!strchr(argument, '.')) {
fprintf(stderr,
"Illegal use of option --ignore-table=<database>.<table>\n");
exit(1);
}
ignore_table->insert(argument);
break;
}

在 MySQL 源代码中,文件 mysys/hash.c 对于初始化哈希表的函数有这样的注释:

Initialize the hash, by defining and giving valid values for its elements. The failure to allocate memory for the hash->array element will not result in a fatal failure. The dynamic array that is part of the hash will allocate memory as required during insertion.

这意味着如果有限制,则与您的系统 RAM 有关,而不是与代码有关。哈希表将根据需要增长,直至达到可用 RAM 的大小。

关于mysqldump 最大忽略表使用情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56809072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com