3

我们最近已迁移到 Azure Elastic Sc​​ale DB。因此,当我们需要创建另一个分片时,我们的 DBA 会手动拆分现有分片。因此,我被赋予了自动化该过程的任务,以便我们可以轻松地split将现有分片或merge多个分片合并为一个。我正在学习并关注Elastic 数据库拆分合并工具教程此处的另一个教程在“要求和限制”部分下说明了以下内容:

目前,分片需要存在并在分片映射中注册,然后才能对这些分片执行拆分合并操作。

所以我仍然必须手动创建另一个分片并将其注册到分片映射中,为此我可能不得不使用另一个工具。同样,所有分片表和引用表的模式都需要在任何拆分/合并/移动操作之前存在于目标分片上。

所以拆分/合并的这个功能还没有自动化,还是我看错了地方?

我希望所有这些操作都是自动化的。你能给我一些完整的软件或教程吗?

4

2 回答 2

4

Cbattlegear 是正确的——该过程尚未集成到单个工具中。目前,拆分/合并工具仅处理数据移动操作。然而,有一个 Powershell 示例来编排整个过程——包括配置目标数据库、将其添加到分片映射以及调用拆分/合并操作。您可以在拆分/合并教程的测试部分中找到它的描述。

一些客户通过维护一个包含分片所需的所有模式对象的空“黄金副本”数据库来进一步简化流程。然后当需要一个新的分片时,他们执行一个 CREATE DATABASE AS COPY 命令来从参考副本快速创建一个新的数据库。此步骤也可以编写脚本。

最后,除了 Powershell,还有一个可用于拆分合并的 .Net API,它允许该工具的操作与 C# 可执行文件中的其他步骤或 API 集成。该 API 包含在 Split/Merge Nuget中,并在此处记录。

于 2015-06-25T16:05:54.690 回答
2

对此的最短答案是还没有一个多合一的工具。

这主要是因为每个分片数据库的设置方式和各个分片的架构都是独一无二的。因此,您必须手动创建分片并对其进行注册,以便您可以将数据移动到其中。

于 2015-06-25T13:23:21.983 回答