前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >挑战MySQL NDB Cluster备份/还原问题

挑战MySQL NDB Cluster备份/还原问题

作者头像
MySQLSE
发布2021-03-25 16:11:40
1K0
发布2021-03-25 16:11:40
举报

作者:Priyanka Sangam 译:徐轶韬

嘿,海豚们!准备好测试你的NDB备份和还原技能了吗?

问题1:您有一个大型数据库,需要3个小时的备份时间。备份期间将运行插入/更新/删除。如何运行备份,以使备份开始后不会有任何插入/更新/删除操作在备份文件中得到反映?

问题2:您的备份文件集包含10个表,从t0到t9。您希望将它们还原到已经包含名为t0的表的数据库中。如何还原不包含t0内容的所有数据?前提是不能修改数据库。

问题3:您具有与上面相同的架构,但是您想将t0从备份还原到数据库。表定义是相同的,除了一列的数据类型不同,备份表具使用VARCHAR,数据库表使用TEXT。如何进行操作?前提同样是不能修改数据库。

问题4:您想启动备份,但是您还想在备份运行时处理读写流量。如何限制备份并行性,以使数据节点有足够的能力来处理查询?

问题5。如果您有硬件资源来处理更高的负载,如何设置恢复以使其尽快运行?

问题6:您遵循出色的安全性惯例,因此决定对备份进行加密。如何设置备份加密密码?

问题7:您有一个备份,其表t0包含100个元组,'id'列值从1到100。您的数据库也有一个相同的表t0,但'id'值从1到1000。如何追加将备份表t0的元组存储到数据库表t0而不覆盖前1000行?

问题8:您已从4节点群集中进行了备份。您想要将此备份还原到8个节点集群。您需要采取哪些额外的步骤来还原此备份,以使备份中的元组均匀分布在8个节点之间?

向下滚动以获取答案

。。。

。。。

。。。

。。。

。。。

A1:start backup snapshotstart

每个备份都有一个startGCP和一个stopGCP。startGCP在备份刚刚开始但尚未将任何元组写入文件的地方建立一个时间点。stopGCP建立一个时间点,在该时间点,备份已完成所有数据的写入,并准备报告完成情况。start backup snapshotstart将在startGCP处捕获集群中的数据。默认选项是SNAPSHOTEND,它在stopGCP处捕获数据。

A2:ndb_restore –exclude-tables

ndb_restore有一些选项–exclude-tables可以排除单个表,也可以使用–exclude-databases排除数据库。如果您更愿意指定要包含的表/数据库,则可以改用–include-tables和–include-databases选项。

https://dev.mysql.com/doc/refman/8.0/zh-CN/mysql-cluster-programs-ndb-restore.html#option_ndb_restore_exclude-tables

A3:ndb_restore –promote-attributes

在还原时,ndb_restore可以执行类型转换。这些类型转换可能是从备份中的较小数据类型还原升级为DB中的较大数据类型的转换,也可能是会导致数据丢失的转换,即从备份中的较大数据类型还原为的较小数据类型。可以通过在ndb_restore中添加–promote-attributes选项来启用升级转换,也可以通过添加–lossy-conversions来启用数据丢失转换。

https://dev.mysql.com/doc/refman/8.0/zh-CN/mysql-cluster-programs-ndb-restore.html#option_ndb_restore_promote-attributes

解答4:config.ini中的EnableMultithreadedBackup = 0

备份通常跨节点并行运行。在节点内,备份是多线程的(版本8.0.16及更高版本)。通过设置配置参数EnableMultithreadedBackup = 0,可以在配置中关闭多线程。设置完参数后,别忘了进行滚动重启,以便所有节点都可以选择它!

A5:ndb_restore –parallelism = <更高的值>

在8.0.16及更高版本上,ndb_restore运行多线程还原。

–parallelism选项控制施加在每个ndb_restore线程上的负载。默认情况下,将其限制为与单线程还原消耗相同的资源。您可以通过指定比默认值128高的值来提高并行度。

https://dev.mysql.com/doc/refman/8.0/zh-CN/mysql-cluster-programs-ndb-restore.html#option_ndb_restore_parallelism

A6:ndb_mgm -e ‘START BACKUP ENCRYPT PASSWORD=”<password>”’

8.0.22及更高版本支持备份加密。如果使用了ENCRYPT关键字,则密码可以包含在START BACKUP命令中。

https://dev.mysql.com/doc/mysql-cluster-excerpt/8.0/en/mysql-cluster-backup-using-management-client.html

A7:ndb_restore –remap-column=test.t0.id:offset:1000

–remap-column选项可用于指定偏移量。在上面的示例中,值1到100的备份元组将偏移1000,以便将它们恢复为值1001到1100。

https://dev.mysql.com/doc/refman/5.7/zh-CN/mysql-cluster-programs-ndb-restore.html#option_ndb_restore_remap-column

A8:没有!

标准还原过程可用于从不同大小的集群还原数据。无需额外的步骤。

您答对了多少个问题?

6-8:恭喜,您迎接了挑战–您的备份/还原知识令人印象深刻!

3-5:做得好–深入研究一下,以提高您本已扎实的技能!

http://messagepassing.blogspot.com/2020/11/mysql-cluster-backup-and-restore.html

0-2:这是一个勇敢的尝试,请不要放弃-试试这个对备份和还原非常适合初学者的介绍!

https://clustertesting.blogspot.com/2021/01/mysql-ndb-cluster-backup-restore-in.html

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL解决方案工程师 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档