![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=1739459742-HFvFJhxll6il9KJhLPq3uJcu5aIAX3r5-0-ab045c7cfc21c7f0707adef0005fc489)
2.在Linux Docker环境中部署SequoiaDB
SequoiaDB在Linux Docker环境中的部署,可参考如下步骤。
(1)下载镜像并上传至docker服务器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_64_2.jpg?sign=1739459742-pqwECFMbcpjqMewHooSvbY64AdEtkLe6-0-17542d403e4e51865cc4c2cd00071f21)
(2)对sequoiadb_docker_image.gz进行解压:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_1.jpg?sign=1739459742-W8c4TCR3yeAYHjAbfb5Hf9W4kTYncSW0-0-ea4f5f63da1865cba9976831e80297b7)
(3)恢复镜像sequoiadb.tar与sequoiasql-mysql.tar:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_2.jpg?sign=1739459742-noyFO4waXjuHF0rJzfIKqUS3Xx4J2ur7-0-79e9801eb7c913eb8e106540a5420ff6)
(4)启动4个SequoiaDB容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_3.jpg?sign=1739459742-9fYrXjGaYz2IqX0o1U0V2KnO6Wp2P8mm-0-69f5ff95623b7918a6a8f9c8b55fab12)
(5)查看4个容器的容器ID:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_4.jpg?sign=1739459742-4R6VtdW1Rgm13ZU1cGB80L59mnYjZHDv-0-f32235573dd7b745ae56ccbbe3c04935)
(6)查看4个容器对应的IP地址:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_5.jpg?sign=1739459742-5FwSwD5R7TbYTyU1aHRYMPxSFQcSzfpv-0-cd3b702fc7cab0b88c805791e5e10ba7)
(7)部署SequoiaDB集群。根据集群规划及各容器的IP地址,在对应参数处填入地址与端口号。建议存储空间在30GB以上:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_6.jpg?sign=1739459742-GaLINGYF2E4UKDX5fUPY563QZYqcRYHM-0-c98e75b4cb39a25fd6eee6d4406fba3e)
(8)启动一个MySQL实例容器,并查看容器的ID:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_7.jpg?sign=1739459742-FvotbD4rSqzLrPrkYoQUJ5oy7gJUMaOR-0-dd4699f280afe72afeefd3083febbefc)
(9)查看容器的IP地址:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_8.jpg?sign=1739459742-wZavX4CF6gG48q8yLz7HZ5ZnXfs9TWME-0-4416cc41672ff6e3885b2b8739e94826)
(10)将MySQL实例注册到协调节点:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_1.jpg?sign=1739459742-a7FjjIxcn84xY3tA7P0L11YC8taMdoc0-0-95b282b4fb6bdf2f2002878b1074453c)
(11)进入MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_2.jpg?sign=1739459742-VGPu4n8AVzomn6FsM9XWaL0CjhVvoXry-0-d11581c0f1350ce897ab89ca02291990)
(12)查看MySQL实例的状态:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_3.jpg?sign=1739459742-jTs62WZbEEZaRBN2BWjIlG7oDJkYXflQ-0-eac5d3b5d38723059031d676155c64db)
(13)进入coord_catalog容器,查看SequoiaDB存储引擎节点列。
首先查看SequoiaDB容器的名称:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_4.jpg?sign=1739459742-yHF5w3W2hrvdx52whdM4i1RPH8EKhT7q-0-0e4a594bf305bb75bd7571d6659d652b)
然后进入coord_catalog容器,查看编目节点和协调节点:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_5.jpg?sign=1739459742-WSj1xQj5zKpC6YZkkHbRqAsyFwc9QXCS-0-b133f101f84bafc1a01a478c18e177b8)
再切换为sdbamdin用户,默认用户密码为sdbadmin:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_6.jpg?sign=1739459742-JLhGOoNlHqWpSMhNV6oX8xk6XSN0FJ7m-0-581a9ac8f1d3a5746e6f73e69bfc318c)
接着查看编目节点和协调节点列表:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_7.jpg?sign=1739459742-gD3evNLN4JHtzU0bKF26y2TqyZeSdtWb-0-25dc224abdcb1862f16c5c5621a4f5ad)
最后退出容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_8.jpg?sign=1739459742-B2OtdMjpwMeKpnJIpONbyogn9Kow7JRz-0-4ab09109025f1ddb207b77d514ec3258)
3.数据库对接开发
具体操作步骤如下。
(1)进入MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_9.jpg?sign=1739459742-KEW0sDl8XhiQGpAuYGyGk6RMRm4UYBr7-0-937376d624ca5f510b95d10fda58d456)
如果未启动MySQL,则需要先启动:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_10.jpg?sign=1739459742-z3oMHAU2LoJ6Ypx9Igmxocg1HPykVBFN-0-e85f46f37045d1fceab08d362015be70)
(2)登录到MySQL Shell:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_1.jpg?sign=1739459742-5ZbDUskzY7kfaVyJhxSykyHS2lRaeAle-0-c9e4084395b2c70f9e30eb710569a0c0)
(3)创建新数据库company,并切换到company:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_2.jpg?sign=1739459742-OMkVqGLXkwsMMGpD7i4YQgGPSbhiH41N-0-ac4120f34abd697ba7b2d213d2c86af1)
(4)在company数据库中创建数据表employee:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_3.jpg?sign=1739459742-DLTupCr4I03LmHwoMFuI1hWaP0yzo7Ku-0-60ff5f02fd7fbc306ff9a7d853a1fc0a)
(5)在表employee中插入如下数据:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_4.jpg?sign=1739459742-PItcJ6rxk53RBzdH7Ef9bZL0vOmqUrdZ-0-4914fd6ff85e9745ff64ba5383ee069e)
(6)查询employee表中的数据:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_5.jpg?sign=1739459742-VWa607qDp3sjZdHKLxtEsgORbV53bCpD-0-2fd939c2693f27e2abfe124725892342)
(7)退出MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_6.jpg?sign=1739459742-mkp4nNwLPgEYlYeRneMZXREPYqAXy2DE-0-12fb695c2f44d70208adda64c7daa398)
(8)进入coord_catalog容器并进入SequoiaDB Shell交互式界面,使用JavaScript连接协调节点并获取数据库连接:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_7.jpg?sign=1739459742-b7K2HR3eSXFgvC6Fmj5jurtNXH6r7KLW-0-b86a0fdaf2eb1208f3abbfa506f77736)
(9)使用insert()向SequoiaDB集合中写入数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_8.jpg?sign=1739459742-S50u4sz1WthhCCx4bGxmUUbo1NDE9IKc-0-59922d54be1cb1e4b4df718778c2bb8d)
(10)使用find()从集合中查询数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_9.jpg?sign=1739459742-vG4tplW0mYCaOOTQgyFaQvnHzx9M7CPH-0-8b53c800783b5709837020e27ae8853e)
(11)使用update()对集合中的数据记录进行修改:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_1.jpg?sign=1739459742-QqYBSE748MVxDXkp9YB3NpKt1XHpjTLA-0-1a623471ee576dfb6bb1567da1ddf126)
(12)使用find()从集合中查询数据记录,确认数据记录是否已被修改:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_2.jpg?sign=1739459742-VdkqrO2sIFYVZQdiqGH2Ht1aoF4zIRql-0-9ead5176a0a29dc0497d0b98a11f37b4)
(13)使用remove()从集合中删除数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_3.jpg?sign=1739459742-8Gk46yEq4p9VOKdwI4SV9cFXrqYglP2e-0-c14fa65fc260986b347bb90f607400da)
(14)使用find()从集合中查询数据记录,确认数据记录是否已被删除:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_4.jpg?sign=1739459742-tiPIiY7tNR256G3nRrMbjrUANbk84wPf-0-9ca1e24830b0890c28ebab37ab395789)
从本节3项任务的实现步骤可以看出,使用基于Docker的SequoiaDB镜像,可快速创建一个数据库集群,并执行SequoiaDB操作。