![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=1734451680-plKNPKQ6XFSBmZRMBPYfSjUAh7YI9rzu-0-5d0a0533dcfb7d2e3c79d934a6fe05fd)
2.在Linux Docker环境中部署SequoiaDB
SequoiaDB在Linux Docker环境中的部署,可参考如下步骤。
(1)下载镜像并上传至docker服务器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_64_2.jpg?sign=1734451680-CQk6zkbs0alCDFaU9d0vIBdk9fnZb7aG-0-025cc44df5637ee6c7f838574fc2b376)
(2)对sequoiadb_docker_image.gz进行解压:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_1.jpg?sign=1734451680-RdBFyciazB7MaP55fITvz2oVNDq0aE4s-0-333d4b529af9c13c20bf928d654b1d65)
(3)恢复镜像sequoiadb.tar与sequoiasql-mysql.tar:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_2.jpg?sign=1734451680-n0Hod7vVG18TVIvauXK2KrfPbIIfDZr9-0-6bc5246db205867e1b771298729cff8d)
(4)启动4个SequoiaDB容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_3.jpg?sign=1734451680-otlLkkFyEAB2sLTuRByCvHa8IrvgIXGK-0-4ff25429fa287fabfe6377fdbea357ca)
(5)查看4个容器的容器ID:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_4.jpg?sign=1734451680-FKX8UiKiXrKrus2ZaHz7wDUrvFZLU51H-0-a551495cfde169a02e6cc60ed635b93f)
(6)查看4个容器对应的IP地址:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_5.jpg?sign=1734451680-2LXsj2WaeUiTpRUPTSgfpDA831DZMCK4-0-96ff644ebd0f169a839d371aabf33911)
(7)部署SequoiaDB集群。根据集群规划及各容器的IP地址,在对应参数处填入地址与端口号。建议存储空间在30GB以上:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_6.jpg?sign=1734451680-HWepUSGmi1YwERxxP7UgZUrXP5dF3g3E-0-9595bfc3fe2306f9afc66e2829c293fb)
(8)启动一个MySQL实例容器,并查看容器的ID:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_7.jpg?sign=1734451680-HrnPgSC9nflfa0FzPwpJlSRPJIRZzd0L-0-7b5d63f04ad3be95aa3a15bf2a8a8e2b)
(9)查看容器的IP地址:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_65_8.jpg?sign=1734451680-j8DSu4KMj21fCoVB0bFxqRoycpD2hKoR-0-172a5dbf080e190baa50201bb660230b)
(10)将MySQL实例注册到协调节点:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_1.jpg?sign=1734451680-clBFch3RsaynWVgFxVJp6ezHAdToZDqZ-0-a004e7a04919af0c420c75593dff016f)
(11)进入MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_2.jpg?sign=1734451680-KOQy5yXDwHuIaEzgpnpdAxKmKC5QgJEg-0-b184c090f449b2907b7c95cef904b694)
(12)查看MySQL实例的状态:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_3.jpg?sign=1734451680-zemajYcxQwZbzMumC8RnYrspcFVkjVJ5-0-f121ea512cd24e013ebcca3be0d6b7d7)
(13)进入coord_catalog容器,查看SequoiaDB存储引擎节点列。
首先查看SequoiaDB容器的名称:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_4.jpg?sign=1734451680-ybUPerVnOTmZT8I6NYRFxP5wLsoShFhr-0-642b2d4893dcbf9d929f83990ce7a598)
然后进入coord_catalog容器,查看编目节点和协调节点:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_5.jpg?sign=1734451680-Cw8bvnXKe6M6I7bGaPazGZPetWGd560p-0-c39089bd184717ed77150bd2641de1b1)
再切换为sdbamdin用户,默认用户密码为sdbadmin:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_6.jpg?sign=1734451680-9S1QZHZzTnnvfzu4NXRRks8K92nOInwX-0-ca4924975af0b9b3463290393edc0e75)
接着查看编目节点和协调节点列表:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_7.jpg?sign=1734451680-gqdcIjg2poPSxBpmxO4WehboTFgm7mo9-0-b7bffc950036e01f31b99f823d0520fa)
最后退出容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_8.jpg?sign=1734451680-JSFdiqr9ur1X5YTTsTmzo5VbwY6RpNdX-0-78b08bf16bc69758bb1da7fc74cbe663)
3.数据库对接开发
具体操作步骤如下。
(1)进入MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_9.jpg?sign=1734451680-l3U1GvS26Wac3ifM0nOAFbrsnRbfaR6T-0-4b067ab3df9f1dc2775327d2b005fc97)
如果未启动MySQL,则需要先启动:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_66_10.jpg?sign=1734451680-qQAV8PuWkoWDtRClJ8vPt5nk0xSvgDyp-0-6248fa697d5193241cddc943b3461c35)
(2)登录到MySQL Shell:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_1.jpg?sign=1734451680-rSIx42tPtJ4VYAomyL5HhMFlPLP8urt9-0-6e90c685ca817178c9d09ae81ef49bc5)
(3)创建新数据库company,并切换到company:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_2.jpg?sign=1734451680-ADSKk8gGR0Cdi3kY6nl3jJqZXsggrs4d-0-fa570f7a1f129be26d11f50fc47e6c3f)
(4)在company数据库中创建数据表employee:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_3.jpg?sign=1734451680-HXJZWofPXtKNMm1RVgx8JUAVUlWB7zYk-0-010433c343b142871bd4e65e276f8c65)
(5)在表employee中插入如下数据:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_4.jpg?sign=1734451680-ReCNI8OhWjXxSGVQFIdS6xXmQulANY21-0-77aaf6011babe5549061c263099e6ca5)
(6)查询employee表中的数据:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_5.jpg?sign=1734451680-S7qEOXmVyB4DSoClhD8qYceDWbqFC5Sc-0-cbe0fe6fca7c35d425ca468cf909cd48)
(7)退出MySQL容器:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_6.jpg?sign=1734451680-lsxue8heyP9niWnDGDSR74DfL6daHdSW-0-38cd77d286e9f0ca4380706e36616dc7)
(8)进入coord_catalog容器并进入SequoiaDB Shell交互式界面,使用JavaScript连接协调节点并获取数据库连接:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_7.jpg?sign=1734451680-2uQUAoHDVv5zTbOcZDJt2z6MIV8gKV87-0-31ef0424113cb18e07affbe5e5429fd1)
(9)使用insert()向SequoiaDB集合中写入数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_8.jpg?sign=1734451680-Kg0nkbnWwy835qD8ozQyLDCwKtmBYbEu-0-ecaa0e94415eeee820c394a4b5d20dd5)
(10)使用find()从集合中查询数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_67_9.jpg?sign=1734451680-5pliixbzKcQ42abucSOKurT016cmjYJR-0-f3319df59fcf3e56487af3b6f8db4f5b)
(11)使用update()对集合中的数据记录进行修改:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_1.jpg?sign=1734451680-4LurrmBufOlMNqpkWSFw6HSG5T0ujRjA-0-98a97e4cadf131c6a28991a892f7c935)
(12)使用find()从集合中查询数据记录,确认数据记录是否已被修改:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_2.jpg?sign=1734451680-4S4GuJ9WtRA0kQPEouXfBH5M0DAmXEI0-0-38ffa1ccf175913f7d8144468d17cf3e)
(13)使用remove()从集合中删除数据记录:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_3.jpg?sign=1734451680-TDylf4cwCJVTNIg6GPxWiz9gDEfbOHAJ-0-8100ed83fa25dc4f7e8194b0fd1c8065)
(14)使用find()从集合中查询数据记录,确认数据记录是否已被删除:
![](https://epubservercos.yuewen.com/4CE233/23020641509740506/epubprivate/OEBPS/Images/42291_68_4.jpg?sign=1734451680-BhvNxGBereHCDYlJliMp1YDQPKdTvq6h-0-747dade295ab061409d49929ac14483d)
从本节3项任务的实现步骤可以看出,使用基于Docker的SequoiaDB镜像,可快速创建一个数据库集群,并执行SequoiaDB操作。