我们最近已迁移到Azure Elastic Scale DB。因此,当我们需要创建另一个分片时,我们的DBA会手动分割现有的分片。因此,我已经完成了自动化该过程的任务,因此我们可以轻松split
将现有分片或merge
多个分片合并为一个。我正在学习并关注Elastic database Split-Merge tool tutorial。另一个教程here在要求和限制部分中说明了以下内容:
目前,在对这些分片执行拆分合并操作之前,需要存在碎片并在碎片映射中进行注册。
所以我仍然需要手动创建另一个分片并在分片映射中注册它,为此我可能需要使用其他工具。在任何拆分/合并/移动操作之前,所有分片表和引用表的类似架构都需要存在于目标分片上。
所以拆分/合并的这个功能还没有自动化,还是我看错了地方?
我希望所有这些操作都能实现自动化。你能为我推荐一些完整的软件或教程吗?
答案 0 :(得分:4)
Cbattlegear是正确的 - 该过程尚未集成到单个工具中。目前,拆分/合并工具仅处理数据移动操作。但是,有一个Powershell示例编排整个过程 - 包括配置目标数据库,将其添加到分片映射,以及调用拆分/合并操作。您可以在Split/Merge Tutorial的测试部分找到它。
有些客户通过维护包含分片所需的所有模式对象的空“黄金副本”数据库来进一步简化过程。然后,当需要新的分片时,它们执行CREATE DATABASE AS COPY命令以从引用副本快速创建新的DB。此步骤也可以编写脚本。
最后,除了Powershell之外,还有一个可用于Split-Merge的.Net API,它允许工具的操作与C#可执行文件中的其他步骤或API集成。该API包含在Split / Merge Nuget package中,并记录在案here。
答案 1 :(得分:2)
最简单的答案是还没有一个工具。
这主要是因为每个分片数据库在设置方式和各个分片的模式方面都是唯一的。因此,您必须手动创建分片并将其注册,以便您可以将数据移动到它。