当前位置:首页 > 文档 > 安装环境
安装环境
独游(Indievow)分布式数据库文档:安装环境
INDIEVOW DISTRIBUTED DATABASE DOCUMENTATION

安装环境

部署方式、硬件规划、操作系统配置与安装部署

1. 规划

1.1 软硬件要求

虽然使用一台物理机就可以安装和运行Indievow系统,但这样的环境多用于学习和测试。为了充分发挥分布式系统的优势,建议使用3台以上的物理机环境。由于集群中不同类型的节点所消耗的主要系统资源不同,在规划Indievow数据库集群时,通常将MG和TG安装在同一台物理机上,将DG和CG安装在同一台物理机上。

安装Indievow数据库系统所需的软硬件环境如表1-1所示。

<div class="img-descr">表1-1:Indievow数据库系统软硬件配置需求</div>

<table style="border-collapse: collapse; width: 100%; border: 1px solid;">

<thead class="ant-table-thead">

<tr>

<th class="ant-table-cell" colspan="3" style="text-align: center; padding: 8px; border: 1px solid #d9d9d9;">MG/TG</th>

<th class="ant-table-cell" style="text-align: center; padding: 8px; border: 1px solid #d9d9d9;">DG/CG</th>

</tr>

</thead>

<tbody class="ant-table-tbody">

<tr class="ant-table-row">

<td class="ant-table-cell" rowspan="6" style="border: 1px solid #d9d9d9; vertical-align: middle; text-align: center; padding: 8px;">

最低配置

</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">数量</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">1</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">3</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">系统</td>

<td class="ant-table-cell" colspan="2" style="text-align: center; border: 1px solid #d9d9d9; padding: 8px;">Red Hat Enterprise Linux Server release 6.2(64bit)及以上版本</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">CPU</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">8核 * 1</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">8核 * 1</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">内存</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">48G</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">48G</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">磁盘</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">300GB*4</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">300GB*4</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">网络</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">千兆口*1</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">千兆口*1</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" rowspan="6" style="border: 1px solid #d9d9d9; vertical-align: middle; text-align: center; padding: 8px;">

推荐配置

</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">数量</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">3</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">3</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">系统</td>

<td class="ant-table-cell" colspan="2" style="text-align: center; border: 1px solid #d9d9d9; padding: 8px;">Red Hat Enterprise Linux Server release 6.2(64bit)及以上版本</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">CPU</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">6核 * 2</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">6核 * 2</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">内存</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">128G</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">64G</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">磁盘</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">300GB*12(15K或SSD) RAID卡*1</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">300GB*10(15K或SSD) SAS卡*1</td>

</tr>

<tr class="ant-table-row">

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">网络</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">千兆口*2</td>

<td class="ant-table-cell" style="border: 1px solid #d9d9d9; text-align: center; padding: 8px;">千兆口*2</td>

</tr>

</tbody>

</table>

注:也可使用具有相同内核的CentOS操作系统,支持Red Hat 7操作系统;

1.2 部署模式

Indievow分布式数据库系统支持多种部署方式,见表2-2。用户可以根据需要选择合适的部署方式,并且能够在使用过程中进行灵活的调整。

<div class="img-descr">表1-2:Indievow数据库系统的部署方式</div>

部署方式说明
单机安装在一台服务器上,只启动 1 个 MG、1 个 TG、1 个 CG 和 1 个 DG 进程。这种方式能够保证 Indievow 正常地运行,但无法体现出分布式系统的优势,通常只用于学习和测试的场景。
单机房
(单 MG/TG)
安装在同一机房的多台服务器上,其中一台服务器上启动 MG 和 TG 进程,其它每台服务器上启动 CG 和 DG 进程。这种方式无法处理 MG/TG 节点宕机的场景,只能用于对可用性要求不高的应用系统。
单机房
(多 MG/TG)
安装在同一机房的多台服务器上,其中多台服务器分别启动主备 MG/TG 节点(通常为 1 主 2 备),其它每台服务器上启动 CG 和 DG 进程。这种方式可以满足大多数应用系统对可靠性和可用性的需求。
多机房安装在多个机房的多台服务器上,通常每个机房中都部署有 MG、TG、CG 和 DG。这种方式能够满足应用系统对异地容灾的需求,当主机房发生故障时,可以自动将备机房切换为主机房,继续对外提供服务。

1.3 安装规划

在安装Indievow数据库之前,数据库管理员首先应当对系统的资源和环境进行规划,包括服务器的使用,IP地址和端口、安装目录、数据目录和磁盘挂载点等内容。

1.4 服务器规划

数据库管理员可以根据示例表1-3对Indievow系统所使用的服务器进行规划,包括服务器所属集群,IP地址、网卡名称、安装用户、安装目录、所运行服务、使用端口等信息。

<div class="img-descr">表1-3:Indievow数据库系统服务器使用规划示例</div>

服务器 一
IP 地址192.168.1.2
网卡名称eth0
安装用户admin
用户密码INDIEVOW@123
安装目录/home/admin/indievow
应用名称indietest

 

服务器 二
IP 地址192.168.1.3
网卡名称eth0
安装用户admin
用户密码INDIEVOW@123
安装目录/home/admin/indievow
应用名称indietest

 

服务器 三
IP 地址192.168.1.4
网卡名称eth0
安装用户admin
用户密码INDIEVOW@123
安装目录/home/admin/indievow
应用名称indietest

 

1.5 目录规划

数据库管理员需要规划和管理每台服务器上不同服务存储数据的目录位置,并且需要根据数据规模、使用频率、访问性能等需求将数据目录与相应的磁盘挂载点关联起来。Indievow系统中的服务需要持久化到磁盘上的内容包括日志和数据,表1-4是一个目录规划的示例。

<div class="img-descr">表1-4:Indievow数据库服务目录使用规划示例</div>

数据库服务类型存储位置
MG数据/home/admin/indievow/data/mg
日志/home/admin/indievow/data/log/mg_commitlog
TG数据/home/admin/indievow/data/tg_data/raid0/store0
/home/admin/indievow/data/tg_data/raid0/store1
/home/admin/indievow/data/tg_data/raid1/store0
/home/admin/indievow/data/tg_data/raid1/store1
……
/home/admin/indievow/data/tg_data/raidn/store0
/home/admin/indievow/data/tg_data/raidn/store1
日志/home/admin/indievow/data/tg_commitlog
DG数据/home/admin/indievow/data/1
/home/admin/indievow/data/2
……
/home/admin/indievow/data/n

1.6 磁盘挂载点规划

Indievow系统中的TG服务和DG服务分别需要存储大规模的增量数据和静态数据,建议不与操作系统和其它服务共享磁盘,而使用单独的磁盘来存储这些服务的数据。数据库管理员需要对每台服务器上的磁盘挂载点进行规划,并且能够与目录规划相对应。

例如,在一台运行了DG的服务器上,规划8块磁盘用于专门存储DG的数据,数据库管理员可以在Indievow的安装目录下创建DG的数据目录,如下:


/home/admin/indievow/data/1

/home/admin/indievow/data/2

...

/home/admin/indievow/data/8

然后将8块磁盘的挂载点设为:


/data/1

/data/2

...

/data/8

最后在挂载点目录与数据目录之间建立链接:


ln -s  /data/1  /home/admin/indievow/data/1

ln -s  /data/2  /home/admin/indievow/data/2

...

ln -s  /data/8  /home/admin/indievow/data/8

2. 配置安装环境

为了能够正常运行Indievow数据库系统,数据库管理员需要对安装环境进行必要的配置,包括设置网卡、内核参数、时间同步、环境变量等。

2.1 操作系统配置

2.1.1 关闭 THP(透明大页)

  1. 检查 THP 是否开启

grep -i HugePages /proc/meminfo cat /sys/kernel/mm/transparent_hugepage/enabled

如下图所示,AnonHugePages 为 0,enabled 为 [never] 说明 THP 已关闭,否则

执行:

  1. vi /etc/default/grub;

在 GRUB_CMDLINE_LINUX 一行最后添加 transparent_hugepage=never,如下图所示:

  1. 查看系统是 BIOS 引导还是 UEFI 引导

[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

  1. 重建 grub.cfg

如果使用的是 BIOS,执行以下命令:


grub2-mkconfig -o /boot/grub2/grub.cfg

如果使用的是 UEFI,执行以下命令,注意替换成不同操作系统


grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

或


grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg

或


grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg

或


grub2-mkconfig -o /boot/efi/EFI/uos/grub.cfg
  1. 重启服务器

reboot

  1. 执行步骤 1 再次确认

2.1.2 配置内核参数

配置操作系统内核参数的操作步骤如下:

  1. 以root用户登录Indievow服务器;
  1. 编辑“/etc/sysctl.conf”文件,在末尾添加以下内容:

# for INDIEVOW

    net.core.somaxconn = 2048

    net.core.netdev_max_backlog = 10000

    net.core.rmem_default = 16777216

    net.core.wmem_default = 16777216

    net.core.rmem_max = 16777216

    net.core.wmem_max = 16777216

    net.ipv4.ip_local_port_range = 10240 65535

    net.ipv4.ip_forward = 0

    net.ipv4.conf.default.rp_filter = 1

    net.ipv4.conf.default.accept_source_route = 0

    net.ipv4.tcp_syncookies = 0

    net.ipv4.tcp_rmem = 4096 87380 16777216

    net.ipv4.tcp_wmem = 4096 65536 16777216

    net.ipv4.tcp_max_syn_backlog = 16384

    net.ipv4.tcp_fin_timeout = 15

    net.ipv4.tcp_tw_reuse = 1

    net.ipv4.tcp_tw_recycle = 1

    vm.swappiness = 0
  1. 执行以下命令,使修改生效;

sysctl -p /etc/sysctl.conf

2.1.3 配置时间同步

INDIEVOW 数据库系统通常运行于 PC 服务器集群之上,对于集群中服务器间的时钟误差有较为严格的要求,可以通过 chrony 时钟同步来保证所有的服务器时间一致。在系统运行期间,如果发生服务器重启的情况,需要关注时钟同步服务是否正常。使用NTP时钟同步需要关闭所有服务器的防火墙(或者开放NTP服务相应端口)。

使用 NTP 时钟同步需要关闭所有服务器的防火墙和 SELinux(或者开放NTP服务相应端口):

1、关闭防火墙的命令为:


service iptables stop

chkconfig iptables off

或


systemctl stop firewalld

systemctl disable firewalld

2、关闭 SELinux:


setenforce 0

vi /etc/selinux/config

将 SELINUX=enforcing 改为 SELINUX=disabled

安装 chrony 服务

安装 chrony


yum install -y chrony

 systemctl start chronyd #启动 chrony 服务

 systemctl status chronyd #查看服务状态

 systemctl enable chronyd #设置开机同步时间
开启 chrony 服务端

如果没有现成可用的时钟同步服务器,可以在 INDIEVOW 数据库集群中任选一

台服务器作为时钟同步服务器,在其上开启 chrony 服务,操作步骤如下:

1.以 root 用户登录 NTP Server 服务器;

编辑修改“vi /etc/chrony.conf”文件,主要内容如下 ;

设置 server IP


server {ip} iburst

#根据实际时间计算出服务器增减时间的比率,然后记录到一个文件中,

在系统重启后为系统做出最佳时间补偿调整。


driftfile /var/lib/chrony/drift

makestep 1.0 3

将启用一个内核模式,在该模式中,系统时间每 11 分钟会拷贝到实

时时钟(RTC)。


rtcsync

指定一台主机、子网,或者网络以允许或拒绝 NTP 连接到时钟服务器

的机器


allow all

local stratum 10

指定日志文件的目录。


logdir /var/log/chrony

2.执行以下命令,重启 chronyd 服务;


systemctl restart chronyd

3.执行以下命令,设置 NTP 服务开机自动启动;


systemctl enable chronyd

4.执行以下命令,查看 NTP Server 服务是否启动;


systemctl status chronyd

 开启 chrony 客户端

配置文件修改:vim /etc/chrony.conf

修改 server 即可,删掉其他的,添加要同步时间的源服务器 ip,格式

如下:


server x.x.x.x iburst

重启 chronyd 服务并设为开机启动,开启网络时间同步功能


systemctl enable chronyd

systemctl restart chronyd

timedatectl set-ntp true

 chrony 常用命令

查看时间同步源:chronyc sources -v

立即手工同步:chronyc -a makestep

查看时间同步源状态:chronyc sourcestats -v

设置硬件时间,硬件时间默认为


UTC:timedatectl set-local-rtc 1

#将你的硬件时钟设置为本地时区

设置当前系统为 Asia/Shanghai 上海时区:


timedatectl set-timezone Asia/Shanghai

启用 NTP 时间同步:


timedatectl set-ntp yes

校准时间服务器:


chronyc tracking

最后需要注意的是,配置完/etc/chrony.conf 后,需重启 chrony 服务,

否则可能会不生效。

2.1.4 配置资源限制

Linux操作系统默认所使用堆栈和文件数的限制值较小,为了正常运行Indievow数据库服务,需要放大对资源的限制,操作步骤如下:

  1. 以root用户登录服务器;
  1. 编辑修改配置文件”/etc/security/limits.conf”,添加如下信息:

admin soft stack 819200

    admin hard stack 819200

    admin soft nofile 655350

    admin hard nofile 655350

    admin soft nproc 655360

    admin hard nproc 655360

其中 admin 为 INDIEVOW 安装用户名

注意:UOS 系统可以通过添加对 core 文件的大小添加无限制来解决可能出现的

因 core 文件太大而被截断的问题。被截断后的 core 文件可能无法查看到信息。

  1. 操作步骤步骤:

1.修改/etc/security/limits.conf,在里面设置上 core 文件大小无限制

2.重启机器,重启机器后建议设置下 core 文件生成路径和格式,方便查找。( 可 在 root 下 执 行 echo “ /tmp/core.%E.%t.%p ” >/proc/sys/kernel/core_pattern。这样崩溃时会在/tmp 目录下产生 core 文件,格式为”core.程序绝对路径.时间.进程 ID”)

2.2 创建安装用户

在所有Indievow服务器中创建安装用户的操作步骤如下:

  1. 以root用户登录服务器;
  1. 执行如下命令,创建安装用户admin;

useradd -d /home/admin -s /bin/bash -m admin
  1. 执行如下命令,为用户admin设置密码;

passwd admin
  1. 为用户admin赋予sudo权限;
  • 执行以下命令,添加“/etc/sudoers”文件的写权限

chmod u+w /etc/sudoers
  • 编辑“/etc/sudoers”文件中“root ALL=(ALL) ALL”后添加如下黑体语句:

root ALL=(ALL) ALLadmin ALL=(ALL) ALL
  • 执行以下命令,删除“/etc/sudoers”文件的写权限;

chmod u-w /etc/sudoers

2.3 配置环境变量

为了正常运行Indievow数据库系统,需要对安装用户admin的环境变量进行配置,操作步骤如下:

  1. 以admin用户登录Indievow服务器;
  1. 编辑修改“/home/admin/.bashrc”文件,添加如下语句:

export LD_LIBRARY_PATH=/home/admin/indievow/lib:/usr/local/lib64:/usr/:/usr/lib/:/usr/local/lib:/lib

    export PATH=~/indievow/bin:$PATH

    ulimit -c unlimited
  1. 执行以下命令,让环境配置生效;

source ~/.bashrc

2.4 配置服务器间免登录

在所有的Indievow服务器中选择一台作为本机,配置该服务器到所有服务器的免登录(包括本机到本机)。配置免登录后,该服务器在连接其他服务器时无需输入密码。

2.4.1 配置过程

假设本机的IP地址为“192.168.1.4”,配置免登录的操作步骤如下:

  1. 以admin用户登录服务器;
  1. 执行以下命令,并按“Enter”键,直至生成公钥;

ssh-keygen -t rsa -P ''
  1. 执行以下命令,并根据提示输入登录密码,配置免登录;

ssh-copy-id admin@192.168.1.2

    ssh-copy-id admin@192.168.1.3

    ssh-copy-id admin@192.168.1.4

    ssh-copy-id admin@192.168.1.5

2.4.2 验证

配置免登录完成后,在本机中输入“ssh admin@192.168.1.X”;

  • 如果无需输入密码,则表示配置免登录成功;
  • 如果仍需要输入密码,则请重新配置免登录;

3.  RPM包安装

3.1 复制安装包

将Indievow数据库的安装文件复制到”~/install”目录下;

3.2 安装依赖库

  1. 以admin用户登录服务器;
  1. 执行以下命令,进入安装目录;

cd ~/install
  1. 执行以下命令,安装依赖库;

sudo rpm –ivh mysql-5.1.73-7.el6.x86_64.rpm(如已有mysql客户端则不必安装)sudo rpm -ivh snappy-1.1.2-1.x86_64.rpmsudo rpm -ivh lzo-2.06-0.x86_64.rpm

3.3 安装Indievow数据库

执行一下命令,安装Indievow数据库:


sudo rpm –ivh indievow-1.0.44.x86_64.rpm --prefix=/home/admin/indievow

注:如果不加prefix参数,默认安装在/home/admin/indievow目录下;

3.4 创建数据目录

本样例安装挂载使用了4块数据盘到/data/1..4,数据目录:~/indievow/data最终结构如下


data

├── 1 -&gt; /data/1/admindata/dg_data

├── 2 -&gt; /data/2/admindata/dg_data

├── 3 -&gt; /data/3/admindata/dg_data

├── 4 -&gt; /data/4/admindata/dg_data

├── mg

├── mg_commitlog -&gt; /data/1/admindata/commitlog/mg_commitlog

├── tg_commitlog -&gt; /data/1/admindata/commitlog/tg_commitlog

└── tg_data

    ├── raid0

    │   ├── store0 -&gt; /data/1/admindata/tg_data/1

    │   └── store1 -&gt; /data/2/admindata/tg_data/2

    └── raid1

        ├── store0 -&gt; /data/3/admindata/tg_data/3

        └── store1 -&gt; /data/4/admindata/tg_data/4
  1. 以admin用户登录服务器,并进入安装目录~/indievow;
  1. 执行以下命令,创建和配置所需数据目录:

sh RebuildDir.sh -m performence -u 4 -c 4 –d indiehdfs

参数含义:

-m: 创建数据目录的模式:[test|performence] (performance使用/data/1..n作为数据挂载点,test使用~/data作为数据挂载点,默认test)

-u: MG/TG服务所使用的挂载磁盘数目(默认 4)

-c: DG/CG 服务所使用的挂载磁盘数目(默认 4)

-d: 应用名(默认为kwtest)

注:sh RebuildDir.sh –h 查看更多参数选择;

4 启动与管理系统

在每台服务器上正确安装Indievow软件并且创建数据目录之后,就可以启动数据库服务。

4.1数据库服务启动命令

进入Indievow安装目录:cd ~/indievow

4.1.1 MG启动命令

主MG启动命令格式:


bin/manEng -r 192.168.1.2:2500 -R 192.168.1.2:2500 -i eth0 -U 3 -u '3' -C 0 -K 1 -G 1

备MG启动命令格式:


bin/manEng -r 192.168.1.3:2500 -R 192.168.1.2:2500 -i eth0 -C 0

参数含义:

-r:所启动 MG 服务的 IP 地址和端口;

-R:系统主 MG 服务的 IP 地址和端口;

-i:绑定的网卡名;

-C:系统中所属逻辑集群 ID,必须为数字;V5.* 版本后 -C 需要从 0 开始, V3 版本及以前,从 1 开始

-U:指定系统中 MG 服务的数量;

-u:指定系统中每个 paxos 组 TG 服务的数量, 每个 group 可以设置不同的值,格式为"x,x,x,x,x,x,x"),中间可以用逗号或者分号隔开

-s:指定备 MG 以 slave_only 模式启动,slave_only 模式的 MG 不会被选为主 MG;

-G:指定 paxos 组个数,必须为数字;

-K:指定 cluster 个数,必须为数字;

4.1.2 TG启动命令

命令格式:


bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i eth0 -C 0 -g 0

参数含义:

-r:系统主 MG 服务的 IP 地址和端口;

-p:所启动 TG 服务的端口号;

-m:所启动 TG 服务的内部端口号;

-i:绑定的网卡名;

-C:系统中所属逻辑集群 ID,必须为数字;V5.* 版本后 -C 需要从 0 开始,V3 版本及以前,从 1 开始

-g:paxos 组 id,必须为数字;与 MG 启动参数-G 参数对应,从 0 开始;

4.1.3 DG启动命令

命令格式:


bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0

参数含义:

-r:系统主 MG 服务的 IP 地址和端口;

-p:所启动 DG 服务的端口号;

-n:指定应用名,应当与建 DG 数据目录时所设定的应用名一致;

-i:绑定的网卡名;

-C:系统中所属逻辑集群 ID,必须为数字;

4.1.4 CG启动命令

CG启动命令格式:


bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0

参数含义:

-r:系统主 MG 服务的 IP 地址和端口;

-p:所启动 CG 服务的端口号;

-z:所启动 CG 的数据库服务端口号;

-i:绑定的网卡名;

-C:系统中所属逻辑集群 ID,必须为数字;V5.* 版本后-C 需要从 0 开始,V3 版本及以前,从 1 开始

4.2 单集群启动示例

以一个逻辑集群组成的Indievow数据库系统为例,集群号为1,使用三台服务器,在每台服务器上都启动MG、TG、CG和DG服务,其中主MG所在的服务器上启动CG被设置为。指定主MG为192.168.1.4:2500。

以admin用户登录所有服务器,在安装目录/home/admin/indievow下执行启动命令。

Server 1(主MG所在服务器)


bin/manEng -r 192.168.1.2:2500 -R 192.168.1.2:2500 -i eth0 -U 3 -u '3' -C 0 -K 1 -G 1

bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i eth0 -C 0 -g 0

bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0

bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0

Server 2


bin/manEng -r 192.168.1.3:2500 -R 192.168.1.2:2500 -i eth0 -C 0 -K 1

bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i eth0 -C 0 -g 0

bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0

bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0

Server 3


bin/manEng -r 192.168.1.4:2500 -R 192.168.1.2:2500 -i eth0 -C 0 -K 1

bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i eth0 -C 0 -g 0

bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0

bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0

如果有其它服务器加入到集群中,可以在这些服务器上启动DG和CG服务,命令如下:


bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i eth0 -C 0

bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i eth0 -C 0

注:MG和TG已经达到设定数目;

在所有服务器上执行完毕命令后,在确认所有服务进程都已启动,在任意一台服务的安装目录下执行以下命令确认所有角色均在线,且已选出主TG:


bin/mg_admin -r 192.168.1.2 -p 2500 stat -o all_server

确认点,状态正常必须同时满足下述两个条件:

1 输出各类服务的节点和规划启动的一致

2 transEngs 角色有一台的 stat:master,其余为 stat:sync若stat 报错-12 或者上述条件未同时满足,请等待数秒后,重新执行 stat 命令。

确认启动正常后,在任意一台服务的安装目录下执行以下命令进行数据库系统的初始化:


bin/mg_admin -r 192.168.1.2 -p 2500 -t 600000000 boot_strap

4.3 多集群启动示例

以三个逻辑集群组成的Indievow数据库系统为例,集群号分别为1、2、3,可以分别部署在三个机房中。每个逻辑集群使用两台服务器,启动MG、TG、CG和DG共五个服务,其中MG/TG/部署于一台服务器,CG/DG部署于另一台服务器,指定主MG为182.119.80.62:8000。

以admin用户登录所有服务器,在安装目录/home/admin/indievow下执行启动命令。

集群1:

Server1


bin/manEng -r 192.168.1.2:2500 -R 192.168.1.2:2500 -i bond0 -U 3 -u '3' -C 0 -K 3 -G 1

bin/transEng -r 192.168.1.2: 2500 -p 2700 -m 2701 -i bond0 -C 0 -g 0

bin/datEng -r 192.168.1.2: 2500 -p 2600 -n kwtest -i bond0 -C 0

bin/calEng -r 192.168.1.2: 2500 -p 2800 -z 2880 -i bond0 -C 0

集群2

Server2


bin/manEng -r 192.168.1.3: 2500 -R 192.168.1.2:2500 -i bond0 -C 1 -K 3

bin/transEng -r 192.168.1.2: 2500 -p 2700 -m 2701 -i bond0 -C 1 -g 0

bin/datEng -r 192.168.1.2: 2500 -p 2600 -n kwtest -i bond0 -C 1

bin/calEng -r 192.168.1.2: 2500 -p 2800 -z 2880 -i bond0 -C 1

集群3:

Server3


bin/manEng -r 192.168.1.4:2500 -R 192.168.1.2:2500 -i bond0 -C 2 -K 3

bin/transEng -r 192.168.1.2:2500 -p 2700 -m 2701 -i bond0 -C 2 -g 0

bin/datEng -r 192.168.1.2:2500 -p 2600 -n kwtest -i bond0 -C 2

bin/calEng -r 192.168.1.2:2500 -p 2800 -z 2880 -i bond0 -C 2

在任意一台服务的安装目录下执行以下命令确认所有角色均在线,且已选出主 TG:


bin/mg_admin -r 192.168.1.2 -p 2500 stat -o all_server

确认点,状态正常必须同时满足下述两个条件:

1 输出各类服务的节点和规划启动的一致

2 transEngs 角色有一台的 stat:master,其余为 stat:sync若stat 报错-12 或者上述条件未同时满足,请等待数秒后,重新执行 stat 命令。

确认启动正常后,在任意一台服务的安装目录下执行以下命令进行数据库系

统的初始化:


bin/mg_admin -r 192.168.1.2 -p 2500 -t 600000000 boot_strap

4.4 使用 INDIEVOW 客户端

在数据库系统初始化完成后,可以执行以下命令连接 INDIEVOW 数据库:


indievow -h192.168.1.2 -P2880 -uadmin -padmin

参数含义:

-h:CG所在服务器的IP地址;

-P:启动CG服务命令

-u:Indievow数据库用户名,admin为预置超级用户;

-p:Indievow数据库用户的密码,admin用户的缺省密码为admin

4.5 创建图形化客户端需要的视图

上传 view_tenant.sql 到服务器上,在 view_tenant.sql 所在文件夹下登录数据库。


indievow -h192.168.1.2 -P2880 -uadmin -padmin -e"source view_tenant.sql"

4.6 配置 crontab 清理数据库垃圾文件及日志文件

将 scripts 压 缩 包 上 传 到 数 据 库 主 目 录 $HOME/indievow , 执 行 unzip scripts.zip 解压缩,配置 crontab 定时任务,以下为凌晨 1 点执行定时清理任务的示例:

设置 crontab 定时任务


source ~/.bashrc && cd $HOME/indievow && bash scripts/file_expire_v2.sh >> log/file_expire_v2.log

 source ~/.bashrc && cd $HOME/indievow && bash scripts/file_expire_tg_commitlog.sh >> log/file_expire_tg_commitlog.log

 source ~/.bashrc && cd $HOME/indievow && rm -f data/{1..4}/Recycle/*

 source ~/.bashrc && cd $HOME/indievow && rm -f data/tg_data/raid{0..1}/store{0..1}/trash/*
© 2026 上海独游网络有限公司 版权所有|地址:上海市普陀区云岭西路600弄5号3层(集中登记地)|沪ICP备2026048507号-1