Centos7安装SinoDB(Informix)


Centos7安装SinoDB(Informix)


系统准备

关闭防火墙和Selinux
systemctl status firewalld 
systemctl stop firewalld 
systemctl disable firewalld 

vi /etc/selinux/config
SELINUX=disabled

系统参数调整优化
vi /etc/sysctl.conf
fs.file-max = 1000000

sysctl -p


用户进程级别的限制修改
echo "
* soft nofile 65535
* hard nofile 70000
" >> /etc/security/limits.conf


> 设置&检查主机名
hostnamectl set-hostname sinodb
hostnamectl status

> 配置hosts
vi /etc/hosts
192.168.1.38 sinodb

说明:这里我刚开始并没有设置hostname,后来因为无法远程连接端口(nc 192.168.1.38 33721) ,后来排查和定位的过程中设置了hostname,但同时也做了其他的修改,这里不太确定SinoDB是否必须设置hostname,没有进一步尝试和研究。


SinoDB底层实际是Informix。
SinoDB 数据库需要一个名字为 informix 的操作系统用户, 做为数据库的超级用户。 我们在安装前, 需要创建好这个用户。

groupadd informix
useradd -g informix -d /home/informix -s /bin/bash -m informix
passwd informix
1q2w3e

以root用户安装(如果用 informix 用户安装,后面会提示有些功能不支持非root用户安装)
mkdir -p /opt/soft
cp /opt/SinoDB.12.10.FC8TL.linux-x86_64-GIT-4bcde202b.tar  /opt/soft
cd $_
tar -xvf SinoDB.12.10.FC8TL.linux-x86_64-GIT-4bcde202b.tar
ls
bundle.properties  CSDK  ICONNECT  ids_install  JDBC  README.html  SERVER  SinoDB.12.10.FC8TL.linux-x86_64-GIT-4bcde202b.tar


执行安装命令
./ids_install

安装过程中出现命令行交互配置界面:
Enter         #确认安装
Enter         #License确认
Y             #临时License确认
/opt/sinodb   #指定数据库的安装位置
Y             #确认安装目录指定是否正确
1             #典型安装
Enter         #hostname使用默认值: localhost.localdomain
1526          #端口使用默认值:sinodb默认端口是8080,我修改成 1526
yes           #是否启用OAT的管理密码、默认启用。如果不启用密码保护,则输入no。如果默认或输入yes,则会提示输入OAT用户名和密码。输入no和输入yes我都试过一次。
Enter         #如果前面输入yes,使用默认OAT用户名admin,如果要指定用户名也可以输入指定的
1q2w3e        #如果启用OAT的管理密码,会提示输入OAT用户的密码
1q2w3e        #如果启用OAT的管理密码,会提示再次输入确认密码
Enter         #其他许可信息
Y             #其他许可信息确认
1             #安装过程中自动创建数据库实例选择1,如果输入2则不创建数据库实例
Enter         #选择数据库预期的用户数量,快速安装默认1~100,则直接回车或者输入1
Enter         #安装信息汇总确认,确认无误后,直接回车开始安装
Enter         #安装前再次提示确认安装路径是否正确、是否开始安装,确认继续,开始安装,大约需要1~2分钟
Enter         #提示直接进行实例初始化(Server Initialization),回车继续,初始化数据库实例,大约1分钟,初始化实例完成后,提示信息如下:
===============================================================================
Using the new instance
----------------------

A database server instance was created. If you chose to initialize the 
instance, it is ready to use.

You can open a command prompt to an initialized instance by running one of the
following commands at /opt/sinodb, where ol_sinodb1210 is the path or filename
of the instance.

Windows:
ol_sinodb1210.cmd

UNIX csh:
source ol_sinodb1210.csh

UNIX ksh or bourne:
./ol_sinodb1210.ksh

If initialization fails, check the online.log file for messages. The 
instance's root chunk must be owned by the correct user and group, and it must
have readable and writable (rw) permission bits set only for owner and group.

PRESS <ENTER> TO CONTINUE

提示数据库实例已经创建完毕,提示不同系统实例的环境变量文件位置。按照提示,以root身份打开一个新的终端命令行,执行命令加载环境变量:
cd /opt/sinodb
./ol_sinodb1210.ksh

Enter        #输入回车,进入下一步,会提示安装成功的信息
Enter        #确认安装完毕、退出安装

检查环境变量是否生效:

# echo $INFORMIXDIR

如果没有生效,则手动配置环境变量:
cat /opt/sinodb/ol_sinodb1210.ksh 

 INFORMIXDIR=/opt/sinodb
 INFORMIXSERVER=ol_sinodb1210
 ONCONFIG=onconfig.ol_sinodb1210
 INFORMIXSQLHOSTS=/opt/sinodb/etc/sqlhosts.ol_sinodb1210
 GL_USEGLU=1
 PATH=${INFORMIXDIR}/bin:${INFORMIXDIR}/extend/krakatoa/jre/bin:${PATH}
export INFORMIXDIR INFORMIXSERVER ONCONFIG INFORMIXSQLHOSTS GL_USEGLU PATH

给root用户和informix用户添加环境变量:

vi /root/.bash_profile

末尾追加环境变量配置:

 INFORMIXDIR=/opt/sinodb
 INFORMIXSERVER=ol_sinodb1210
 ONCONFIG=onconfig.ol_sinodb1210
 INFORMIXSQLHOSTS=/opt/sinodb/etc/sqlhosts.ol_sinodb1210
 GL_USEGLU=1
 PATH=${INFORMIXDIR}/bin:${INFORMIXDIR}/extend/krakatoa/jre/bin:${PATH}
export INFORMIXDIR INFORMIXSERVER ONCONFIG INFORMIXSQLHOSTS GL_USEGLU PATH

source /root/.bash_profile
echo $INFORMIXDIR

su - informix
vi .bash_profile
末尾添加相同的配置内容
source .bash_profile
echo $INFORMIXDIR

注意环境变量中的关键信息:
默认初始化实例的数据库服务名:ol_sinodb1210
数据库实例(服务)的配置文件:onconfig.ol_sinodb1210
HOSTS配置文件:/opt/sinodb/etc/sqlhosts.ol_sinodb1210

cat /opt/sinodb/etc/onconfig.ol_sinodb1210  #可以不用修改
cat /opt/sinodb/etc/sqlhosts.ol_sinodb1210  #需要根据实际情况修改


查看实例的状态, 如果是 online 说明服务状态正常
onstat -
[root@localhost soft]# onstat -
Your evaluation license will expire on 2022-12-18 00:00:00

Sinoregal SinoDB Dynamic Server Version 12.10.FC8TL -- On-Line -- Up 00:15:04 -- 254088 Kbytes

查看服务监听端口
cat /opt/sinodb/etc/sqlhosts.ol_sinodb1210
[root@localhost etc]# cat /opt/sinodb/etc/sqlhosts.ol_sinodb1210
ol_sinodb1210 onsoctcp localhost.localdomain ol_sinodb1210 
dr_sinodb1210 drsoctcp localhost.localdomain dr_sinodb1210 
lo_sinodb1210 onsoctcp 127.0.0.1 lo_sinodb1210 

查看服务 ol_sinodb1210 对应的监听端口
vi /etc/services
最后几行:
lo_sinodb1210           14782/tcp
ol_sinodb1210_json      27017/tcp                  #JSON listener for ol_sinodb1210
ol_sinodb1210           33721/tcp                      #该端口为远程连接数据库访问端口
dr_sinodb1210           26709/tcp
lo_sinodb1210_1          7366/tcp
ol_sinodb1210_json_1     7067/tcp                 #JSON listener for ol_sinodb1210

[root@sinodb ~]# ps aux |grep informix
informix  1712  0.0  0.0 113280  1196 ?        S<   00:59   0:00 /bin/sh -c /opt/sinodb/extend/krakatoa/jre/bin/java -Dcom.ibm.tools.attach.enable=no -jar /opt/sinodb/bin/jsonListener.jar  -config /opt/sinodb/etc/jsonListener.properties -logfile /opt/sinodb/ol_sinodb1210_jsonListener.log -start   > /dev/null 2>&1
informix  1713  0.0  0.6 2543456 36908 ?       S<l  00:59   0:08 /opt/sinodb/extend/krakatoa/jre/bin/java -Dcom.ibm.tools.attach.enable=no -jar /opt/sinodb/bin/jsonListener.jar -config /opt/sinodb/etc/jsonListener.properties -logfile /opt/sinodb/ol_sinodb1210_jsonListener.log -start
informix  1874  0.0  3.6 430964 215584 ?       S<   01:21   0:03 oninit
informix  1912  0.0  0.4 430452 24476 ?        S<   01:22   0:03 oninit
root      2507  0.0  0.0 112808   968 pts/0    S+   08:55   0:00 grep --color=auto informix
[root@sinodb ~]# 

最初我的监听端口33721无法远程访问(nc 远程无法访问33721,提示连接拒绝,本机通过 127.0.0.1可以访问),显示的监听状态如下:
[root@localhost sinodb]# netstat -an |grep 33721
tcp6       0      0 ::1:33721               :::*                    LISTEN     
[root@localhost sinodb]# 

后来修改配置文件中正确以后,正确的监听状态如下:

[root@sinodb ~]# netstat -an |grep 33721
tcp        0      0 192.168.1.38:33721    0.0.0.0:*               LISTEN

其中7067,7366端口为本地(内部)JSON listener监听端口:
[root@localhost sinodb]# cat /opt/sinodb/etc/jsonListener.properties
listener.port=7067
url=jdbc:informix-sqli://localhost:7366/sysmaster:INFORMIXSERVER=lo_sinodb1210;USER=ifxjson;PASSWORD=eWLaI(AzWoF
[root@localhost sinodb]# 

关于 informix 默认允许访问的用户,Informix数据库支持两种用户访问方式,数据库内部用户和操作系统用户。数据库内部用户是指使用create user命令创建的用户,通过映射配置,新建用户可以映射至操作系统用户。这种方法使系统可以通过映射系统中已存在的除 Informix 和 root 外的其他用户,来访问数据库。这种机制将会减少为了使用数据库而创建的大量系统用户。

查看数据库状态:

onstat -i
[root@sinodb ~]# onstat -i
Your evaluation license will expire on 2022-12-18 00:00:00

Sinoregal SinoDB Dynamic Server Version 12.10.FC8TL -- On-Line -- Up 07:39:04 -- 254088 Kbytes

进入数据库,不指定数据库登录:
dbaccess - - 

-- 创建数据库并测试
create database testdb;
create table test (id int not null, name varchar(255), primary key (id));
insert into test values(1,'test');
select * from test;

将 testdb 数据库授权给用户(切换到 testdb 数据库、再执行授权命令)
database testdb;
grant dba to informix;

用 informix 用户连接数据库:
CONNECT TO 'testdb@lo_sinodb1210' USER 'informix';
testdb为数据库、lo_sinodb1210为数据库服务名,输入informix系统用户的密码即可
select * from test;


用 informix 用户连接数据库:
CONNECT TO 'sysmaster@lo_sinodb1210' USER 'informix';
sysmaster为数据库(安装后默认就有了)、lo_sinodb1210为服务名,输入informix系统用户的密码即可


DBeaver远程连接数据库:
JDBC-URL for testdb:
jdbc:informix-sqli://192.168.1.38:33721/testdb:INFORMIXSERVER=lo_sinodb1210
连接用户密码:informix/1q2w3e

JDBC-URL for sysmaster:
jdbc:informix-sqli://192.168.1.38:33721/sysmaster:INFORMIXSERVER=lo_sinodb1210
连接用户密码:informix/1q2w3e

数据库关闭
su - informix
onmode –ky

数据库启动
oninit -v
或者
onmode – vy

查看数据库状态
onstat -i

远程无法访问(无法通过 192.168.1.38 或者hostname sinodb 访问) 33721 端口


onmode -ky

修改配置 sqlhosts.ol_sinodb1210
vi /opt/sinodb/etc/sqlhosts.ol_sinodb1210

修改第一行:
ol_sinodb1210 onsoctcp localhost.localdomain ol_sinodb1210
的 localhost.localdomain 修改为 sinodb 

修改后如下:

[root@sinodb etc]# cat sqlhosts.ol_sinodb1210
ol_sinodb1210 onsoctcp sinodb ol_sinodb1210
dr_sinodb1210 drsoctcp localhost.localdomain dr_sinodb1210 
lo_sinodb1210 onsoctcp 127.0.0.1 lo_sinodb1210_1 
[root@sinodb etc]# 

启动数据库:
oninit -v

[root@sinodb etc]# netstat -an |grep 33721
tcp        0      0 192.168.1.38:33721    0.0.0.0:*               LISTEN    

nc 192.168.1.38 33721 
端口能通以后,就可以通过IP地址可以远程访问了,再通过DBeaver客户端工具也就可以远程访问了:

连接默认的sysmaster数据库:
主机:192.168.1.38
端口:33721
服务器:lo_sinodb1210
数据库/模式:sysmaster
用户名:informix
密码:1q2w3e

连接testdb数据库:
主机:192.168.1.38
端口:33721
服务器:lo_sinodb1210
数据库/模式:testdb
用户名:informix
密码:1q2w3e

注意:如果sqlhosts.ol_sinodb1210配置不对的话,只会存在:
[root@localhost ~]# netstat -an |grep 33721
tcp6       0      0 ::1:33721               :::*                    LISTEN
无法远程访问端口。

配置正确以后:
[root@sinodb etc]# netstat -an |grep 33721
tcp        0      0 192.168.1.38:33721    0.0.0.0:*               LISTEN 

informix常用命令:参考 
informix常用命令:_sunny05296的博客-CSDN博客

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值