![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=1738883339-rtMXjo71m6HFZgCyaAUhYF2FKN0vD0FE-0-9f158df0ae5c4243cec77e0122911853)
2.在Linux Docker环境中部署SequoiaDB
SequoiaDB在Linux Docker环境中的部署,可参考如下步骤。
(1)下载镜像并上传至docker服务器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_64_2.jpg?sign=1738883339-CJrDl24A5vDGnGP95acsj4cF2hFFw1zk-0-a376c82d0fafa4a9c99a60e94e835806)
(2)对sequoiadb_docker_image.gz进行解压:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_1.jpg?sign=1738883339-mwxhrkAFI0BZ1aCfbkMArZawP9k3tNzC-0-d1f1bda637a65794efc5c99486208f11)
(3)恢复镜像sequoiadb.tar与sequoiasql-mysql.tar:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_2.jpg?sign=1738883339-3zoxeR7lOgcLVPp2xvutkUyyEpeW727u-0-8ce57266ace56a52fc57e7bae9f31ce1)
(4)启动4个SequoiaDB容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_3.jpg?sign=1738883339-ypw6UItOumpj1HomcRVzMFJEaf7SNLzI-0-836c3a9f1fd9dad4d5e4cb62250af0f4)
(5)查看4个容器的容器ID:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_4.jpg?sign=1738883339-s5treDTtgbv1V7tnWYdvCj6mOGgviRXD-0-29ddbdea5bde5053ff79fbfe57578eff)
(6)查看4个容器对应的IP地址:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_5.jpg?sign=1738883339-UXgelBwuaes2zvJefb8NKbgZLbcXp1Ds-0-b776ba9ea2a86850b0ff526b3785f31f)
(7)部署SequoiaDB集群。根据集群规划及各容器的IP地址,在对应参数处填入地址与端口号。建议存储空间在30GB以上:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_6.jpg?sign=1738883339-X68jBw13xokKS24vG8gjOiswhcMu8C63-0-3a40a6e37d032279627e787699276573)
(8)启动一个MySQL实例容器,并查看容器的ID:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_7.jpg?sign=1738883339-fBj4JKvny0IFoxqiDZYn6NGqbVLEv7im-0-8018e641466022d694f68ce1da4cd5ac)
(9)查看容器的IP地址:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_8.jpg?sign=1738883339-1G2RRCaMJ6WI5xBhnDK9h90BQpIUKMF6-0-71e81891e8640cc6cc161163ee61379a)
(10)将MySQL实例注册到协调节点:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_1.jpg?sign=1738883339-dS46CA1I7NKGcznv7rShCw5EEzrx82E4-0-e1d665574ecd1d055d2d7603f36fafa9)
(11)进入MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_2.jpg?sign=1738883339-A02OX0BKbSHL6disR4vdD7j7F3NsHMsR-0-9e1e7419b7f80f1193eef77e48db49a8)
(12)查看MySQL实例的状态:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_3.jpg?sign=1738883339-SqDGe0tEH8Hi0ouaNL23fEFyb5XCXhPy-0-8c9149b57e93f00ed08bbac44cb2516b)
(13)进入coord_catalog容器,查看SequoiaDB存储引擎节点列。
首先查看SequoiaDB容器的名称:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_4.jpg?sign=1738883339-BxEBf94ybenyGbA9ih5DTydD9i2aXpxu-0-6c0fc0c8abf7081dfa5f75b933479095)
然后进入coord_catalog容器,查看编目节点和协调节点:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_5.jpg?sign=1738883339-n50ME4SWbZpmw23Vy9ugvrV79ZDjWrvB-0-37eba4b1eff3a0e27513e0f7bd2e1e05)
再切换为sdbamdin用户,默认用户密码为sdbadmin:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_6.jpg?sign=1738883339-eMTemo4H4oXILTBDTltvyTjx6xUKYo34-0-341dabb17db9877ed16bfab5df03cc7c)
接着查看编目节点和协调节点列表:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_7.jpg?sign=1738883339-5dHtKMViXTPrQVv9b0PDgwUg4wS6Cyzh-0-d99bd2bb24666433f283e453f474a274)
最后退出容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_8.jpg?sign=1738883339-BBwT1wQAIQ48bBNxJWQAgPg9tm26spQX-0-3faf4ddaf09e8f046ccaa7f7f2f3271f)
3.数据库对接开发
具体操作步骤如下。
(1)进入MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_9.jpg?sign=1738883339-vqcr9qyR5G0McQTKZWQU5wWu1GDHkz9z-0-be3593a7a43fcfea677ce3120ea8c26a)
如果未启动MySQL,则需要先启动:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_10.jpg?sign=1738883339-K0e5yVGsxaJU3Yvg6mWFF0fvey6Olvsb-0-20f16a84ad85642b3dc1686a5ce723f6)
(2)登录到MySQL Shell:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_1.jpg?sign=1738883339-sTE4TjSQvBxBiVc1DnL7owhkb5stny4a-0-a62c3b49aea5ea6d7b8908a6941585f5)
(3)创建新数据库company,并切换到company:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_2.jpg?sign=1738883339-uENOVpYVOclZLZjGixmnd6giRbnE5Nzn-0-0fcaa546c8253491ccc2d1c039b9b768)
(4)在company数据库中创建数据表employee:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_3.jpg?sign=1738883339-f41YnzHNtWkSiJnPlV5rJQXI30HWoCdh-0-b5a7dc91f4d4687fd0e62a01d0ffc110)
(5)在表employee中插入如下数据:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_4.jpg?sign=1738883339-0BTxmdVioMYTv6RM7ZubXnDvBozp0N9h-0-c9867b17cabaaea72bcc877d021dbc86)
(6)查询employee表中的数据:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_5.jpg?sign=1738883339-eVTOXiwQh1khDfDdyR6DxRVY5RUjuNEN-0-d1505e390f9d2c07986b23da41d3e0b3)
(7)退出MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_6.jpg?sign=1738883339-OG7VynhhfnMCazCiiZRHHHeL4EaHhBVY-0-e2f4f11884afe5c6b3d7950444574b41)
(8)进入coord_catalog容器并进入SequoiaDB Shell交互式界面,使用JavaScript连接协调节点并获取数据库连接:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_7.jpg?sign=1738883339-zMvpbA3hAIEQGCftTHTXPRyAi6bBSVNx-0-9d6ccdd27a79af349b448b94e504d47a)
(9)使用insert()向SequoiaDB集合中写入数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_8.jpg?sign=1738883339-lFiZvBplGaWb62HNlhyNIE3RMrFC36yM-0-680adac14df7477f1c09c50b829c5987)
(10)使用find()从集合中查询数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_9.jpg?sign=1738883339-MaHpGbzDyGqE5wzXk0AYLc6J3UNSjtEN-0-5de7a37d9fa509c7c43492137dad2d23)
(11)使用update()对集合中的数据记录进行修改:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_1.jpg?sign=1738883339-w4bcoLUrMOhEVtmTpdVCJJeMBeAc5b0Q-0-b9b09895c717481f81976f4a01037528)
(12)使用find()从集合中查询数据记录,确认数据记录是否已被修改:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_2.jpg?sign=1738883339-7rf8vJToA88i2dkZD02PDB4d5JHvUulW-0-67d2f57084140241c15c75a07d56b743)
(13)使用remove()从集合中删除数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_3.jpg?sign=1738883339-LWcdIv7WW80G2onSoaaYUwYpehOm9QWP-0-5c14beb8c8ffa2386f89880b4b8a5baa)
(14)使用find()从集合中查询数据记录,确认数据记录是否已被删除:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_4.jpg?sign=1738883339-uArDYNVxYYrcawRDngLFbpnxcylmCgyB-0-939caa86132201b77bb30ef02788d400)
从本节3项任务的实现步骤可以看出,使用基于Docker的SequoiaDB镜像,可快速创建一个数据库集群,并执行SequoiaDB操作。