Solaris下的iHyperDB完整安装

Navigation:  Solaris下的iHyperDB >

Solaris下的iHyperDB完整安装

Previous pageReturn to chapter overviewNext page

预备工作:

1.具备root帐户权限。

 

2.安装SolarisStudio的C++运行库

因采用Sun C/C++编译器编译生成,需要依赖SolarisStudio的运行时环境。需要安装SolarisStudio的C++运行库。

 

1)申请Oracle ID获取许可证书

根据Oracle的规则,SolarisStudio的安装需要向Oracle申请免费的许可,申请时需要注册Oracle ID。

申请Oracle ID的网址:https://pkg-register.oracle.com/register/cert_info/11882/

许可证书包含两个文件:Oracle_Solaris_Studio.key.pem 和 Oracle_Solaris_Studio.certificate.pem。

 

2)安装SolarisStudio的C++库

安装步骤:

mkdir -m 0755 -p /var/pkg/ssl

cd /var/pkg/ssl/

pkg set-publisher -k /var/pkg/ssl/Oracle_Solaris_Studio.key.pem -c /var/pkg/ssl/Oracle_Solaris_Studio.certificate.pem -G '*' -g https://pkg.oracle.com/solarisstudio/release solarisstudio

pkg install solarisstudio-123/library/c++-libs

注意:使用pkg命令,系统管理员需要事先配置好IPS。一般来说,操作系统安装完毕,缺省情况下IPS的发布包指向ORACLE网站的release更新,这种情况需要保证服务器可以联网。

 

运行库安装步骤:

解压SolarisStudio12.3-solaris11-sparc-bin.tar

在SolarisStudio12.3-solaris11-sparc-bin.tar解压包同级目录下,将压缩包放在/opt目录下

#tar -zxvf SolarisStudio12.3-solaris11-sparc-bin.tar

解压出SolarisStudio12.3-solaris-sparc-bin文件夹,需要把下面这两个路径配置到系统环境

/opt/SolarisStudio12.3-solaris-sparc-bin/solarisstudio12.3/bin/sparcv9

/opt/SolarisStudio12.3-solaris-sparc-bin/solarisstudio12.3/lib/stlport4/v9

打开profile文件

#vi ~/.profile

在文件里写入:

export LD_LIBRARY_PATH=/opt/SolarisStudio12.3-solaris-sparc-bin/solarisstudio12.3/bin/sparcv9:/opt/SolarisStudio12.3-solaris-sparc-bin/solarisstudio12.3/lib/stlport4/v9:/usr/mysql/5.5/lib/sparcv9

:wq保存退出后

#source ~/.profile

 

3.修改执行客户端或代理的每个shell中的文件描述符限制

Solaris 和 Linux 平台,运行客户端或代理的 shell 对进程可以使用的文件描述符数量的限制不是很严格。在 Message Queue 中,客户端创建的每个连接或代理接受的每个连接都使用其中一个文件描述符。每个具有持久性消息的物理目的地也使用文件描述符。因此,文件描述符限制限定了代理或客户端可以具有的连接数。

默认情况下,Solaris 最多可具有 256 个连接,Linux 最多可具有 1024 个连接。(在实践中,由于将文件描述符用于持久性,因此连接限制实际上低于此值。)某些服务需要的连接数高于此值,则必须修改、提高将要执行客户端或代理的每个 shell 中的文件描述符的最大限制数。

修改文件描述符的最大限制数的方法:

使用ulimit命令:ulimit –n 65535。ulimit只能使当前shell及其子进程生效,一旦shell退出设置即失效;

在/etc/system文件中增加以下两个参数,然后重启系统。

set rlim_fd_cur=65535

set rlim_fd_max=65535

 

安装iHyperDB:

iHyperDB v3的服务端包括“配置中心ConfigCenter”和“数据节点DataNode”。

注:配置中心和数据节点可以部署在同一台机器上,但需使用相同安装目录。

 

1.安装配置中心ConfigCenter

1)登录root账户

若当前为非root用户登录,则需切换:

$su - root

 

2)上传安装包至服务器

假设路径/opt/soft(路径可自行定义,但不支持/root目录下)

安装包名称形如:ihd3solaris64_ConfigCenter_3.x.tag.gz

 

3)解压安装包

切换到安装包所在路径

#cd /opt/soft

解压

#tar -zxvf ihd3solaris64_ConfigCenter_3.x.tag.gz

 

4)修改安装脚本,配置预读文件setup.ini

#cd iHyperDB3

#vi setup.ini

这里使用系统自带的vi编辑器,若使用windows的编辑器可能导致换行符和linux系统不一致!

修改setup.ini里面配置参数(下述参数非常重要,需随实际情况对应修改):

CCEnableRedundancy:表示是否使用冗余;使用,赋值1;不使用,赋值0。

CCIP:为配置中心IP

CCBKIP:指备机的IP(当启用冗余时需填)

主备Port:默认填5673

LocalIP:当前安装机器的IP

所有参数都直接加在=后面,不要加多余字符(包括空格)。

:wq

在vi编辑器按键盘Esc,然后输入上面3个字符后回车,完成setup.ini修改并退出编辑器。

 

5)运行安装脚本

#./hdCCsetup

 

如提示没有权限则运行脚本,设置运行权限:

#chmod +x hdCCsetup

 

如出现:

mv: overwrite `/opt/test/iHyperDB3/config/LogConfigCenter.xml'?

输入“y”,表示yes,覆盖原文件。

 

……

Success!

……

Relogon and start server by running script..

以上完成配置中心服务端的安装。

 

6)启动配置中心

上述安装完成后,使用root用户重新登录,在iHyperDB安装目录下运行启动脚本:

#./hdCCstart

另,停止服务脚本为:

#./hdCCstop

查看服务状态脚本为:

#./hdCCproc

 

2.安装数据中心DataNode

1)登录root账户

若当前为非root用户登录,则需切换:

$su - root

 

2)上传安装包至服务器

假设路径/opt/soft(路径可自行定义,但不支持/root目录下)

安装包名称形如:ihd3solaris64_DateNode_3.x.tar.gz

 

3)解压安装包

切换到安装包所在路径

#cd /opt/soft

解压

#tar -zxvf ihd3solaris64_DateNode_3.x.tar.gz

 

4)修改安装脚本,配置预读文件setup.ini

#cd iHyperDB3

#vi setup.ini

这里使用系统自带的vi编辑器,若使用windows的编辑器可能导致换行符和linux系统不一致!

修改setup.ini里面配置参数(下述参数非常重要,需随实际情况对应修改):

CCIP:配置中心IP;

DNIP:第一个数据节点IP;注意:根据实际机器IP填入;

CCEnableRedundancy:配置中心是否冗余;冗余,赋值1;不冗余,赋值0。

DNEnableRedundancy:数据节点是否冗余;冗余,赋值1;不冗余,赋值0。

CCBKIP:配置中心备机IP;当配置冗余时需填,其中主备Port一般默认取5673端口。

DNBKIP:第一个数据节点备机IP;当配置冗余时需填,其中主备Port一般默认取5673端口。

LocalIP:当前安装机器的IP;

MEMCACHE:hdKernel缓存大小,单位MB;

DATAFILESIZE:单个归档文件大小,单位MB;

DATAFILENUM:最大归档文件个数;

注意:上面2项相乘的大小不要超过硬盘容量。

     所有参数都直接加在=后面,不要加多余字符(包括空格)。

:wq

在vi编辑器按键盘Esc,然后输入上面3个字符后回车,完成setup.ini修改并退出编辑器。

 

5)运行安装脚本

运行脚本

#chmod +x hdDNsetup

设置运行权限

#./hdDNsetup

脚本结束

Success!

..

Relogon and start server by running script..

以上完成数据节点服务端的安装。

 

6)启动数据节点服务

上述安装完成后,使用root用户重新登录,在iHyperDB3安装目录下运行启动脚本:

#./hdDNstart

停止服务脚本

#./hdDNstop

查看服务状态脚本

#./hdDNproc

 

 

3.启停服务管理(推荐)

可将配置中心和服务中心均采用此法同时启动

#screen -S ihd1

创建一个窗口,ihd1为窗口名,此时当前窗口已为ihd1

#cd runtime

ihd1为窗口名,

#./../executable/ihdprocessmgr

前面的./../是写你的executable存放路径。在runtime文件夹内运行executable下的ihdprocessmgr,此时ihd服务开始启动并自重启。

#Ctrl  a  d

同时按Ctrl键+a键+d键,可退出ihd1窗口,回到原窗口

#cd iHyperDB3

回到iHyperDB3文件夹

# ./hdproc

查询ihd运行状态,此时会发现状态是running了

#screen -ls

查询有多少类似ihdb1的窗口,防止之前有人开过类似的窗口,但是不影响操作。

#screen -r ihd1

远程回到ihd1窗口,如有多个ihd1,加上前缀使用全称来区分不通的窗口。

#q

ihdprocessmgr开始退出服务

# Ctrl a d

#cd iHyperDB3

#./hdproc

重复之前的三个操作,可查看此时的ihd的运行状态为stop

# screen -d ihd1  

在原窗口远程detach ihd1。当在原窗口发现ihd1处于attach状态,无法用screen -r ihd1进入ihd1时,执行该-d命令

 

 

4.MySQL数据库转储配置

实现功能:

将Solaris机器上iHyperDB中的Tag点数据以原始值或插值等格式转存到mysql数据库。

 

操作:

需一台Windows机器,运行windows版本的iHyperDB_Client.exe安装客户端;

使用客户端连接如上安装完成服务端的Solaris机器,接下来进行转储配置,可参考userhelp.chm中,功能明细>>数据保存>>数据转储>>关系数据库连接配置,使用mysql数据库的转储方式,配置完成后确认保存;

在Windows机器中,于客户端的安装目录找到iHyperDB\config\HDExport.xml和ClientCfg.xml两个文件。HDExport.xml中有转储配置完成后的规则信息等用于转储执行程序hdRDBExporter读取。将2个xml配置文件复制到Solaris机器中对应目录iHyperDB\config\下,然后运行hdCCstop和hdCCstart ,转储功能即启用新的配置。注意修改配置后都更新xml文件。

可使用MySQL-Front.exe等相关软件查看转储得到的数据库。

注意:

mysql转储运行需要文档最开头环境变量配置libmysql的动态库路径,可在Solaris机器中使用env查看LD_LIBRARY_PATH中是否存在/usr/mysql/5.5/lib/sparcv9,如遗漏请补回。

 

 

5.FAQ

1)许可证文件路径为数据节点服务端安装目录的config/license.xml。

部署许可证文件后,重新启动服务才生效!

 

2)如何卸载服务端?

先停止服务(运行hdDNstop和hdCCstop脚本),然后删除安装目录。

 

3)数据节点服务端参数配置在安装路径的config/ServerCfg.xml文件中,可能需要修改(注意修改后重新启动服务才生效):

<ArchiveFile Num="3" 保存的数据归档文件个数

<NetworkPort="5678" />,服务端对外监听端口,如果修改了,那么客户端访问时的参数配置也要相应修改。

<TimeStamp Enable="1" MaxTimeDevSec="1800"/>,服务器时间和采集器时间戳不同会丢弃数据,MaxTimeDevSec参数为时间差,单位秒, Enable="1"的配置改为0则不丢弃。但是可能产生数据查询的时间与服务端不一致,请配置人员一定要确认最终客户应用需求,并告知客户。

 

4)网络数据量大的局域网可以关闭系统防攻击功能来提高性能

方式一、重启后生效.

set ip:tcp_do_reclaim=0

方式二、在线修改,无需重启,但重启后配置无效.

echo tcp_do_reclaim/W 0 | mdb -kw

 

5)扩大系统网络缓冲区配置的方法(重启服务器生效)

扩大TCP buffer

# ipadm show-prop -p max_buf=8388608 tcp

# ipadm set-prop -p recv_buf=4194304 tcp 

# ipadm show-prop -p send_buf=4194304 tcp

max_buf为网络收发总的上限,为二者之和,将之设置为8M

recv_bufsend_buf分别为收发缓冲上限,均设置为4M

 

另附查询系统当前配置命令:

#  ipadm show-prop -p recv_buf tcp 
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE 
tcp   recv_buf              rw   128000       --           128000       2048-1048576 
 
# ipadm show-prop -p send_buf tcp 
ROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE 
tcp   send_buf              rw   49152        --           49152        4096-1048576
 
# ipadm show-prop -p max_buf tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   max_buf               rw   4194304      --           1048576      131083-1073741824

 

扩大tcp_conn_req_max_q和tcp_conn_req_max_q0

修改命令:

# ipadm set-prop -p _conn_req_max_q=16384 tcp
# ipadm set-prop -p _conn_req_max_q0=16384 tcp

此参数设置默认的TCP连接的最大数目,系统默认值为128,现设置为16k

 

另外,查询系统当前配置命令为:

# ipadm show-prop -p _conn_req_max_q tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   _conn_req_max_q       rw   128        --           128          1-4294967295
 
# ipadm show-prop -p _conn_req_max_q0 tcp
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
tcp   _conn_req_max_q0      rw   1024        --           1024         0-4294967295

 

6)网络性能问题重现时现场信息获取

客户端和服务端抓包;

客户端和服务端日志备份;

vmstat 1,获取服务器的状态值,参数1表示1秒采集一次,输出可重定向到文件;

mpstat 1,获取 CPU 相关统计信息,参数1表示1秒采集一次,输出可重定向到文件;

iostat  -cnxz 1,用于监控系统设备的IO负载情况,参数1表示1秒采集一次,输出可重定向到文件;

prstat 1,系统进程监控,参数1表示1秒采集一次,输出可重定向到文件;

cat /var/adm/message,查看系统记录的异常信息;

查询操作系统版本:pkg info entire。