![SequoiaDB分布式数据库权威指南](https://wfqqreader-1252317822.image.myqcloud.com/cover/100/43738100/b_43738100.jpg)
3.1.5 Docker模式部署
Docker是一个开源的应用容器引擎,允许开发者将应用及依赖包打包到一个可移植的容器中,然后发布到任意一种流行的Linux机器上。不同容器之间不会有任何接口,完全采用沙箱机制。Docker也支持虚拟化,能利用LXC(Linux Container)来实现类似虚拟机(VM)的功能,以通过节省硬件资源为用户提供更多计算资源。
SequoiaDB提供了Docker镜像,可用来快速部署集群,以及进行开发和测试工作。下面讲解如何在Linux系统中安装Docker,并通过拉取镜像进行SequoiaDB的部署,同时也将展示如何在部署后的环境中进行MySQL实例的增查改删操作。
1.集群配置
如表3-7所示,我们将演示在5个容器中部署多节点、高可用的SequoiaDB集群。集群包含协调节点与编目节点各1个,3个三副本数据节点,以及1个MySQL实例节点。
表3-7 SequoiaDB的集群配置
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_64_1.jpg?sign=1739176478-pSeUaFgHGqgIqSzlw0REGBXPUCmCdHpY-0-0e797d332dd792f043b132a49fc0d870)
2.在Linux Docker环境中部署SequoiaDB
SequoiaDB在Linux Docker环境中的部署,可参考如下步骤。
(1)下载镜像并上传至docker服务器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_64_2.jpg?sign=1739176478-7M9bp0Q2lW926QeS0w9zLP2WPw5r5EY8-0-0ad13185f5ac81ff9f2d62b3a3b8d7dc)
(2)对sequoiadb_docker_image.gz进行解压:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_1.jpg?sign=1739176478-bc9X4CPDU5xI5jQXQVgTJt3XYBbqbqvz-0-8dff1cd86c4da81b6a2e4e516a6751d1)
(3)恢复镜像sequoiadb.tar与sequoiasql-mysql.tar:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_2.jpg?sign=1739176478-i5Cau4ikHaOvB089amT8ABuyRPdpr98a-0-b8f4b5d7c2c94a1d7cff3fb513f8ece3)
(4)启动4个SequoiaDB容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_3.jpg?sign=1739176478-YVuiXjcnsT7dvfwoqjbCs3FAx2lkH8QH-0-47d65530cd1b2f4f4e429ec074093de3)
(5)查看4个容器的容器ID:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_4.jpg?sign=1739176478-nRC9BaOVucLdGEjUAQuoD9QNqPovpUFy-0-4fcdf72e60aa4f4cce3c16cbdacae0e1)
(6)查看4个容器对应的IP地址:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_5.jpg?sign=1739176478-cYPXyi5DeRkDUzLf53OdXo1P7P4thXsy-0-fe76564dfc0bc57e35d4e19ec3c74d86)
(7)部署SequoiaDB集群。根据集群规划及各容器的IP地址,在对应参数处填入地址与端口号。建议存储空间在30GB以上:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_6.jpg?sign=1739176478-Z5aD5TYczOYDKhFGSJFkdYliIDFYeppx-0-4f3042d0ad95d6821182e1abb6be1b1f)
(8)启动一个MySQL实例容器,并查看容器的ID:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_7.jpg?sign=1739176478-5t7hMP3YmcedCuYCV8Szo8QZYTlThxZF-0-1aeed4863bfcb2114a9b595984d9b04b)
(9)查看容器的IP地址:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_8.jpg?sign=1739176478-f2k2FXsXSzFZRBHDwxTiG1bBldxdXLh9-0-e425cf33b7de26d36a12916cbd015620)
(10)将MySQL实例注册到协调节点:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_1.jpg?sign=1739176478-SEFl9Sjm0wJXmo9na8VkZIftYYiJJ7ZY-0-5661ed92e5d5c16b93b9c4d68610447f)
(11)进入MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_2.jpg?sign=1739176478-ccLsmxyd2YVRlueHXQwWuibb0MVnyMjK-0-c3c291120a2550bc2891a1734abe2a01)
(12)查看MySQL实例的状态:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_3.jpg?sign=1739176478-WPEoenaxAoXqjK9Sy40zdWKwetCSOUVn-0-106d7f8984cd30333e4493c3b1d8fb0c)
(13)进入coord_catalog容器,查看SequoiaDB存储引擎节点列。
首先查看SequoiaDB容器的名称:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_4.jpg?sign=1739176478-KtWklfiobvMiokPe6AdcHuI6WSqXUkb7-0-ba1d3ac4cd6ad2d457051b39a03cb5da)
然后进入coord_catalog容器,查看编目节点和协调节点:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_5.jpg?sign=1739176478-IdGXDj0ACtg0UhYgJCnUWJ19l4FwFyg5-0-25a86ce239c183e90f79b98c8e935432)
再切换为sdbamdin用户,默认用户密码为sdbadmin:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_6.jpg?sign=1739176478-YgQV27BwcWevngVnoYCQqlgZJLNEmqXI-0-8eb891d40fccd097568607a48a73a936)
接着查看编目节点和协调节点列表:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_7.jpg?sign=1739176478-PDo9mLCpRQfBVNc2gvP290p040ahrnvs-0-9bc3b94ae9be19cd34d41c49f6d121a3)
最后退出容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_8.jpg?sign=1739176478-qDCukAXYf3r2rWoTv6Fg27xalZNabRo5-0-d50b2ca30ed908187223c0bca1c54259)
3.数据库对接开发
具体操作步骤如下。
(1)进入MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_9.jpg?sign=1739176478-YYPrCA2LA5s0EJSghrvmxR36N6269jpU-0-b24b1f2c92aa05657ee4185cc81308a3)
如果未启动MySQL,则需要先启动:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_10.jpg?sign=1739176478-roWY5ofNoXVmln1AzYATDTdiLHGi5BIe-0-eecf11d702b1988d23bbb0d80a1c2de0)
(2)登录到MySQL Shell:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_1.jpg?sign=1739176478-qeH6GtekREL7hRXb7OmDwOczDePiMizD-0-3ce8b89acd58dc558d0d0c01ea81a6cb)
(3)创建新数据库company,并切换到company:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_2.jpg?sign=1739176478-ffD6LLMjJR3cFGqWrNNAYx3hupTyO5oh-0-4bd90b2564f5f10f54a27399c6d8b678)
(4)在company数据库中创建数据表employee:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_3.jpg?sign=1739176478-Ci5YQ6ZUyHtP34173FwJsO10GNjb6pFo-0-7360ce2de6cf199a89e772ab44bfa13b)
(5)在表employee中插入如下数据:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_4.jpg?sign=1739176478-cMxCyr9PUxWqwzT3Dtk0qAPZnlde1h3Z-0-d75012b026f0abba2c81214995a6ab7f)
(6)查询employee表中的数据:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_5.jpg?sign=1739176478-BEoYvFtn6CFiafTa0C7XKGjKbSvJ91Xi-0-9013cba97037818b9071986c6c96c0de)
(7)退出MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_6.jpg?sign=1739176478-jYQdjY9fhPnO5Yh4zqqREcfzBwHshgIN-0-8a2504e3366b5a87466896b3abd726f2)
(8)进入coord_catalog容器并进入SequoiaDB Shell交互式界面,使用JavaScript连接协调节点并获取数据库连接:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_7.jpg?sign=1739176478-AThrPXgfCn5HQrUZPzz9jHfvxDXEAbKN-0-cf4d47f034b56a9599cd5d20cb9afbe1)
(9)使用insert()向SequoiaDB集合中写入数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_8.jpg?sign=1739176478-a24XWQOibLIPiTPbeypVXrb59k2oU4Qj-0-de30157db7fc57ce000b43c6bb0a579c)
(10)使用find()从集合中查询数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_9.jpg?sign=1739176478-NhQaR9qh9pwdbBugPbkUnNCAjIfTQWJy-0-6eb2e1e22bfeff22ae7c170c51373e3d)
(11)使用update()对集合中的数据记录进行修改:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_1.jpg?sign=1739176478-xxaQvPWURPpaepdPDaVyRg8TuYcUba8g-0-996b490310eebdf43b1fa7bfb784f8f2)
(12)使用find()从集合中查询数据记录,确认数据记录是否已被修改:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_2.jpg?sign=1739176478-pLHMBJptZqEhuyDCcqjUeHpQUsg0torQ-0-db7b3ec67c5941597223047651a438f7)
(13)使用remove()从集合中删除数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_3.jpg?sign=1739176478-6a7yTIIZ2jVZBUZ5H6gnbQC6tcsVLVa4-0-99de51a5eede0b41d10ab7b94212377f)
(14)使用find()从集合中查询数据记录,确认数据记录是否已被删除:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_4.jpg?sign=1739176478-w9XfZVR5GEvEHk2AoVVzNyqPbcE3LOFx-0-57c174fe6c13d562dd81be8b110d0da4)
从本节3项任务的实现步骤可以看出,使用基于Docker的SequoiaDB镜像,可快速创建一个数据库集群,并执行SequoiaDB操作。