准备工作
- 已获取自动化工具包,并上传到服务器完成解压,得到完整的软件文件夹tsdbtool。
- 已下载依赖:GCC-7.3.0、CMake-3.5.2、cython、pyyaml、typing、cheetah3的源码包,放到tsdbtool文件夹下的mongodbDep文件夹中,下载地址见表2。
- 已获取MongoDB的源码包或者RPM包,并上传到自动化工具“tsdbtool”目录下。
- 根据实际环境,完成安装配置文件mongoconf.csv的修改。
配置文件mongodbconf.csv参数说明如表1所示。
表1 配置文件mongodbconf.csv参数说明 参数
说明
isopath
OS镜像的路径,需提前上传到服务器的操作系统中,用于安装一些依赖包。
prefixdir
软件从源码编译后安装到该目录,绝对路径值,需存在于OS中,RPM包安装此参数无效,不使用。
os_root_user
被安装服务器OS的root用户名。
os_root_password
被安装服务器OS的root密码。
version
MongoDB的版本
compile_flag
用于检查过程的判断,RPM包编译前的检查请设置为1,否则设置为0。执行编译过程,检查项少。
config_server
MongoDB集群中config server的IP地址,多个IP地址以分号隔开。
config_server_num
config server的数目,用于校验。
config_db_prefix_dir
config db目录的前缀,会在该目录下建立config db的data和log目录。
config_db_port
config db使用的端口号。
router_server
MongoDB集群中router server的IP地址,多个IP地址以分号隔开。
router_server_num
router server的数目,用于校验。
router_db_prefix_dir
router db目录的前缀,会在该目录下建立router db的data和log目录。
router_db_port
router db使用的端口号。
shard_server
MongoDB集群中shard server的IP地址,多个IP地址以分号隔开。
shard_server_num
shard server的数目,用于校验。
shard_db_prefix_dir
分片数据库使用的目录,多个以分号隔开,目录可相同。根据分片的数量和目录顺序,在第一个目录下建立datashard1 logshard1分别存放分片1的数据和日志。在第二个目录下建立datashard2 logshard2分别存放分片2的数据和日志。
shard_db_port
分片数据库使用的端口号,多个端口号以分号隔开。
shard_num
MongoDB集群中的分片数。
replica_num
MongoDB集群中副本数。
wiredTigerCacheSizeGB
每一个分片shard库使用的内存。
举例:MongoDB集群(4台server,4分片,3副本)规划举例如表3所示。
DB类型 |
Port |
Server1 |
Server2 |
Server3 |
Server4 |
prefixdir |
---|---|---|---|---|---|---|
Router |
1801 |
√ |
√ |
√ |
- |
/mg/router |
Config |
1802 |
- |
√ |
√ |
√ |
/mg/config |
Shard1 |
1803 |
√ |
√ |
√ |
- |
/mg/shard1 |
Shard2 |
1804 |
- |
√ |
√ |
√ |
/mg/shard2 |
Shard3 |
1805 |
√ |
- |
√ |
√ |
/mg/shard3 |
Shard4 |
1806 |
√ |
√ |
- |
√ |
/mg/shard4 |
工具会根据server的数目、分片数、副本数目,依次选择不同server分组来给不同的shard分片。例如:3副本的分片1选择server1、server2、server3;分片2选择server2、server3、server4;分片3选择server3、server4、server1;分片4选择server4、server1、server2。
mongodbconf.csv的关键配置如表4所示。
分类 |
参数 |
值 |
---|---|---|
Config配置 |
config_server |
server2-ip;server3-ip;server4-ip |
config_server_num |
3 |
|
config_db_prefix_dir |
/mg/config |
|
config_db_port |
1802 |
|
Router配置 |
router_server |
server1-ip;server2-ip;server3-ip |
router_server_num |
3 |
|
router_db_prefix_dir |
/mg/router |
|
router_db_port |
1801 |
|
Shard配置 |
shard_server |
server1-ip;server2-ip;server3-ip;server4-ip |
shard_server_num |
4 |
|
shard_db_prefix_dir |
/mg/shard1;/mg/shard2;/mg/shard3;/mg/shard4 |
|
shard_db_port |
1803;1804;1805;1806 |
|
shard_num |
4 |
|
replica_num |
4 |
本文以MongoDB 4.0.12的check、install、uninstall为例进行说明。已完成的准备工作如下:
- 已获取工具包并上传至服务器,然后解压到“/home”目录得到“/home/tsdbtool”目录。
- 已上传mongo-r4.0.12.tar.gz源码包或者RPM包到“/home/tsdbtool”。
- 已下载依赖:GCC-7.3.0、CMake-3.5.2、cython、pyyaml、typing、cheetah3的源码包,放到tsdbtool文件夹下的mongodbDep文件夹中。
- 已完成mongodbconf.csv的修改,prefixdir目录已经创建(RPM包安装此参数无效,不使用)。