DM8_Linux详细安装步骤
(从虚拟机配置讲起,有基础的可以直接看二,谢谢)
一、虚拟机的安装和配置
软件:virtualbox
系统:centos7
工具:Xshell
官网下载centos7,使用virtualbox安装centos7
使用命令ip addr 查看网络,发现centos7默认是不开启网络的,接下来手动配置:
cd /etc/sysconfig/network-scripts/ #进入网络配置目录
ls #查看文件
找到并编辑文件ifcfg-enp0s;
将onboot的no改为yes
重启网络:service network restart
网络配置完成,但是新装centos7一般是没有配置yum源的(如有配置请略过此步),接下来手动配置yum系统源:
找到光盘位置dev下的sr0就是iso文件
新建目录用来挂载系统盘:mkdir /yum
挂载光盘到yum: mount /dev/sr0 /yum(因为临时挂载,所以每一次安装包都要重新挂载)umount是卸载命令
进入目录:cd /etc/yum.repos.d
查看文件发现只有一个系统redhat.repo文件,创建一个自己的:
vi yum.repo
[yum] #名称随便写
name=yum-os #另一个名字随便写
baseurl=file:///yum #光盘的挂载目录
enabled=1 #本仓库是否开启 1开启 0关闭
gpfcheck=0 #检查源是否合规,因为是系统源,所以不用检查了
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #这个钥匙可用可不用
Xshell配置:
yum install lrzsz -y #配置lrzsz包--经过上面的配置 lrzsz 已经可以正常安装了;
配置Xshell的连接:
很明显这两个IP是不对的,经过ping测试发现这两个IP也不通,后来发现是虚拟机网卡配置问题,改成桥接形式即可
至此前期配置结束;
二、DM8安装
创建用户和安装组:
groupadd dinstall --创建安装组
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
-g 指定安装组
-d 指定用户目录 -m 目录不存在自动创建(之前我创建过,不过不影响)
-s 指定bash为shell的解释器
===================================================
方法一(不推荐):(修改文件最大打开数)
改一下ulimit参数:(这里用的root用户,可能对服务器有风险,可以换另一种方法)
方法二(推荐):(修改dmdba用户的文件最大打开数)
使用 vi 编辑器打开 /etc/security/limits.conf 文件
命令:vi /etc/security/limits.conf
在最后添加四条语句,需添加的语句如下:
dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384
切换到dmdba用户查看设置:
再用dmdba用户设置临时生效:
====================================================================
使用Xshell把安装文件上传到Linux服务器
这里发现必须用root用户才能上传成功,dmdba用户切换目录还是不行;
记下来切换回dmdba用户,进行镜像挂载
mount -o loop /opt/dm8_20200907_x86_rh7_64_ent_8.1.1.126.iso /mnt
尴尬的发现只有root用户才能挂载,切换回root
创建安装目录,并改变目录属主,和权限的修改
前期准备结束,接下来进行具体安装:
1 切换回dmdba用户
2 执行./DMInstall.bin -i 进行安装
3 根据提示安装完成(路径选/dm8,最好不用默认,因为前面设置了权限,默认的话还要再改一遍)
4 切换至 root 用户执行上图中的命令 /dm8/script/root/root_installer.sh 创建 DmAPService,否则会影响数据库备份
数据库安装完成需要配置实例才能正常登录使用:
需要注意的是页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 这四个参数,一旦确定无法修改,需谨慎设置
接下来用dminit进行实例的初始化:
./dminit path=/dm8/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y
CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5237
设置页大小为 32 KB,簇大小为 32 ,大小写敏感,字符集为 utf_8,数据库名为 DMDB,实例名为 DBSERVER,端口为 5237
接下来切换到root用户,为刚才创建的实例注册服务:
1 cd /dm8/script/root
2 ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMDB/dm.ini -p DBSERVER
=======================
在这其中出现了几个问题:
1 注册服务后,启动disql系统报Create SOCKET connection failure错误,查看日志发现第一次启动数据库需要用前台的方式启动服务
2 前台启动,进入 DM 安装目录下的 bin 目录下执行启动命令
./dmserver /dm/data/DAMENG/dm.ini
服务成功启动,为了可以执行disql,我没有退出而是直接关闭窗口,重新开的连接窗口,这样服务会一直运行
3 运行disql,成功连接上服务器
如果root用户安装就没有注册服务问题了,并且第一次也不用前台启动数据库
===================================================
4 接下来解决注册服务问题(重点)
#进入安装目录下root
cd /dm8/script/root
#注册服务
./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/DMDB/dm.ini -p DMSERVER
参数解释:
-t 注册服务类型,支持一下服务类型:dmap、 dmamon、 dmserver 、dmwatcher、dmmonitor 、dmasmsvr 、 dmcss 、dmcssm、dmdrs、dmdras、dmdcs、dmdss
-dm_ini 指定服务所需要的 dm.ini 文件路径。
-p 指定服务名后缀,生成的操作系统服务名为“服务脚本模板名称+服务名后缀”。前缀为DmService
服务注册成功,但是并不能启动,用脚本卸载服务,然后重新注册了几遍,发现还是不行;
后台服务的启动,关闭,重启都不能用;
后来尝试手动关闭前台开启的服务,卸载刚才的注册服务,重新注册,发现服务可以正常的后台启动
服务注册成功后
启动数据库
systemctl start DmServiceDMSERVER.service
停止数据库
systemctl stop DmServiceDMSERVER.service
重启数据库
systemctl restart DmServiceDMSERVER.service
查看数据库服务状态
systemctl status DmServiceDMSERVER.service
也可进入 DM 安装目录下的 bin 目录下,启动/停止/重启数据库
./DmServiceDMSERVER start/stop/restart
查看数据库状态
./DmServiceDMSERVER status
总结:
怎么起的数据库一定要怎么关,前台起一定要前台关(exit),不然会报错
tips:
使用图形界面配置的数据库实例,dbca会自动注册服务,命令行dminit配置的实例,需要自己注册服务