首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL -使用myloader还原1TB数据库

MySQL -使用myloader还原1TB数据库
EN

Database Administration用户
提问于 2017-10-05 04:36:23
回答 1查看 1.3K关注 0票数 1

我试图恢复一个1.3TB的数据库及其在AWS Aurora中的数据库。我希望将此数据库的副本还原到EC2实例(32 vCPU,244 32内存)。

我用我的翻盖机从AWS RDS那里得到支援,花了6个小时。

但是我试着用myloader加载这个备份。它的运行时间超过12小时,但仍然只有30%的数据恢复正常。

Myloader设置:

代码语言:javascript
复制
Threads: 200
Queries Per thread: 10000

MySQL设置:

代码语言:javascript
复制
max_connections = 3000
wait_timeout = 86400
interactive_timeout = 86400
innodb_buffer_pool_size =235G
bulk_insert_buffer_size = 5G
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_read_io_threads = 8
innodb_write_io_threads = 22
innodb_adaptive_hash_index = 0
innodb_old_blocks_pct = 45
transaction_isolation = READ-UNCOMMITTED
innodb_purge_threads = 2
innodb_change_buffering = inserts
innodb_change_buffer_max_size = 30
query_cache_size = 0
innodb_buffer_pool_instances=20
innodb_log_buffer_size = 1G
innodb_flush_log_at_trx_commit = 2
innodb_log_file_size = 1G
max_allowed_packet=1G

是否有任何其他设置,我应该改变更快的恢复?

EN

回答 1

Database Administration用户

发布于 2017-10-07 23:36:50

我想它被200根线卡住了。建议不要使用超过两倍的CPU核心数量。即使这可能太高了..。

特别是,在填充I/O之后添加更多线程是没有用的(我不熟悉您的配置,所以我不能说得更具体)。

innodb_buffer_pool_size =235G的内存高达244 is,这是非常危险的。如果有交换的话,那可能会扼杀表演。

如果您已经“索引每一列”,这是另一个性能杀手的加载。“索引每一列”通常是无用的。相反,找出您需要的索引,并且只需要它们。这通常包括“复合”索引。

此外,一个表上的多个UNIQUE (包括PRIMARY)索引也很昂贵。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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