1.1. 版本介绍
JDK:1.8.0_111
ORACLE:11g
DM:DM8.2,安装包为 dmdbms-8.2-1.x86_64.rpm
HTTPD:Apache/2.4.46
PHP:5.6.40
ZABBIX:3.4.15
OS:CentOS Linux release 7.3
1.2. 目录说明
DM8:/opt/dmdbms
ORACLE:/opt/oracle/product/11g
其他:/home
1.3. 前置条件
(1)安装JDK,并设置JAVA_HOME和PATH
(2)安装oracle数据库 或者 oracle client(本例安装为oracle 11g,可在产品发布系统进行下载安装)
(3)安装DM8
1.4. 涉及修改环境变量
JAVA_HOME
PATH
LD_LIBRARY_PATH
1.5. 构建步骤
1.5.1. 安装系统依赖包
yum install -y libxml2 libxml2-devel curl curl-devel libjpeg libpng freetype libjpeg-devel libpng-devel freetype-devel
yum install -y libssh2-devel net-snmp-devel OpenIPMI-devel
yum install -y apr apr-devel apr-uti apr-util-devel
yum install libevent-devel -y
1.5.2. 安装httpd(已安装可跳过)
(1)下载httpd源码(http://httpd.apache.org/download.cgi),并解压
(2)编译
./configure --prefix=/home/httpd --enable-module=so
(3)安装
make install
1.5.3. 安装php
(1)下载PHP源码(https://www.php.net/releases/),并解压
(2)编译
./configure --prefix=/home/php --with-config-file-path=/home/php/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-oci8=/opt/oracle/product/11g --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --disable-ipv6 --with-pear --with-curl --enable-bcmath --enable-sockets --with-gettext --with-apxs2=/home/httpd/bin/apxs
(3)安装
make install
1.5.4. 导入dmdriver
(1)PHP版本查看,确定驱动版本
【1】创建php.php文件,放置在httpd的htdocs下,内容如下,完成后,浏览器访问改文件
<?php phpinfo(); ?>
【2】版本以及线程安全查看
在【1】步骤的页面中,可查看php version 以及 Thread Safety,即确定php版本和是否线程安全,本例php版本为5.6且Thread Safety为enabled
【3】驱动确认
驱动位于DM数据库安装位置下drivers目录,本例为/opt/dmdbms/bin/drivers/php_pdo,查看后可发现存在如下两个驱动 libphp56_dm.so 和 libphp56ts_dm.so,
根据【2】步骤查看的结果,我们需要选择的是php56且线程安全的驱动包,即选择 libphp56ts_dm.so
(2)导入dmdriver
【1】拷贝php源码中的ext包到php安装位置,本例为 cp /home/php-5.6.40/ext/ /home/php/ -r
【2】拷贝dmdriver到php安装位置下ext文件夹,本例为 cp /opt/dmdbms/bin/drivers/php_pdo/libphp56ts_dm.so /home/php/ext
(3)配置php.ini
【1】定位php.ini文件,locate php.ini,如下结果
/home/php-5.6.40/php.ini-development
/home/php-5.6.40/php.ini-production
【2】文件创立
拷贝配置文件到安装位置
cp /home/php-5.6.40/php.ini-development /home/php/etc/php.ini
【3】修改/home/php/etc/php.ini
extension_dir=/home/php/ext //注意路径为绝对路径
extension=libphp56ts_dm.so
注:这部分添加到最后,以免被开启的默认值覆盖掉
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1
添加dm模块:
[dm]
dm.allow_persistent = 1
dm.max_persistent = -1
dm.max_links = -1
dm.default_host = localhost
dm.default_user = SYSDBA
dm.default_pw = SYSDBA
dm.connect_timeout = 10
dm.defaultlrl = 4096
dm.defaultbinmode = 1
dm.check_persistent = ON
(4)检查驱动加载
访问步骤(1)中的php.php文件,查看dm驱动是否加载成功
(5)数据库连接检查
创建testdm.php文件,放置在httpd的htdocs下,内容如下,完成后,浏览器访问改文件
<?php
$link = dm_connect("DM IP 地址", "用户名", "密码")
or die("Could not connect : " . dm_error());
print "Connected successfully";
dm_close($link);
?>
1.5.5. 安装zabbix
(1)下载zabbix3.4.15版本源码(下载地址为:https://www.zabbix.com/cn/download_sources#tab:unsupported),并解压
(2)修改源码(版本一致,可利用附件进行替换,详见附录,版本不一致时,请手动修改)
【1】src/libs/zbxdb/db.c 共三处:
【2】db.inc.php 修改所有的驱动连接为dm
(3)编译
./configure --prefix=/home/zabbix --with-oracle=/opt/oracle/product/11g --with-net-snmp --with-libcurl --with-libxml2 --enable-server --enable-agent --enable-proxy --with-ssh2 --with-openipmi --enable-java
(4)安装
make install
(5)修改DM关键字设置(屏蔽关键字),并重启
DM 初始化文件dm.ini 中 EXCLUDE_RESERVED_WORDS = function,object,value
/opt/dmdbms/bin/bin/DmServiceDMSERVER start
/opt/dmdbms/bin/bin/DmServiceDMSERVER stop
/opt/dmdbms/bin/bin/DmServiceDMSERVER restart
(6)修改SQL脚本
初始化脚本位于 zabbix源码zabbix-3.4.15/database目录下
初始化脚本使用database/oracle/下schema.sql 和 data.sql,以及database/mysql/images.sql
在database目录下新建dm文件夹,将上述三个sql脚本拷贝到该文件夹下
其中,images.sql插入语句中,需要去掉表名称和字段的单引号,
即:INSERT INTO images
(imageid
,imagetype
,name
,image
) 替换为 INSERT INTO images (imageid,imagetype,name,image)
(7)导入数据
登录disql,创建dba用户XXX,并修改其密码限制,并以XXX登录,执行以下脚本
【1】初始化
start /home/zabbix-3.4.15/database/dm/schema.sql
start /home/zabbix-3.4.15/database/dm/data.sql
start /home/zabbix-3.4.15/database/dm/images.sql
【2】视图
create or replace view tab as select table_name tname, 'TABLE' tabtype from USER_TABLES;
create or replace view col as select table_name tname, column_name cname from USER_TAB_COLUMNS;
(8)修改ZABBIX配置zabbix_server.conf
DBHost=DM8 IP
DBName=步骤7中创建的用户名称
DBUser=步骤7中创建的用户名称
DBPassword=步骤7中创建的用户密码
DBPort=5236(DM8默认端口)
AllowRoot=1
(9)共享库
安装时依赖的是oracle的客户端库文件libclntsh.so.11.1,启动时需替换成达梦的,方式是:将附件中的 libclntsh.so.11.1.dm_debug (记得改为和oracle同名)拷进dm的bin文件夹下,然后设置环境变量:
export LD_LIBRARY_PATH=/opt/dmdbms/bin/[bin:/opt/oracle/product/11g/lib:LD_LIBRARY_PATH)
并通过 ldd /home/zabbix/sbin/zabbix_server查看是否已指向dm的库
(10)启动
/home/zabbix/sbin/zabbix_server -c /home/zabbix/etc/zabbix_server.conf
停止
ps -ef|grep zabbix|grep -v grep|awk '{print $2}'|xargs kill -9
(11)zabbix setup.php配置,访问httpd中zabbix配置setup.php
【1】数据库类型选择oracle即可
【2】需手动放置配置文件 httpd/htdocs/conf/zabbix.conf.php
1.6. 验证
(1)项目db配置
db.type=dm
helper.dialect=com.yoyosys.console.dialect.DMDialect # extends MySqlDialect
db.driver=dm.jdbc.driver.DmDriver
db.username=
db.password=
(2)业务操作
(3)ZABBIX进行指标项查看
1.7. 问题
为支持ZABBIX,DM需要屏蔽关键字,但是在这种情况下,会导致DM web管理端不可用
1.8. 文件附录
(1)libclntsh.so.11.1.dm_debug
(2)db.c
(3)db.inc.php
1.9. 参考链接
https://weibo.com/ttarticle/p/show?id=2309404167508440529002