遇到一个问题,完全没有使用过达梦数据库,如何在linux重启需要重启的服务呢?
在网上找了很多资料,没有解决,最终请教了同事得到了答案,现在将过程记录下来。
最初参照https://blog.csdn.net/jl_li/article/details/100559027这篇博文解决了一下,但是遇到了如下问题:
命令行方式启动数据库实例:
su - dmdba
cd /db/dmdbms/bin
./dmserver /dbdata/CNDT/dm.ini
执行重启,结果报错如下:
[dmdba@vm-hrx-app bin]$ ./dmserver restart
file dm.key not found, use default license!
dmserver startup failed, code = -103 [Invalid startup parameters]
看提示是有文件找不到,产看dmserver进程,发现文件位置:/DATA/emd_data/DM_EMD/dm.ini
[dmdba@vm-hrx-app bin]$ ps -ef | grep dmserver
dmdba 5083 4654 0 10:04 pts/2 00:00:00 grep dmserver
dmdba 48696 1 0 Oct17 ? 01:53:50 /DATA/dmdbms/bin/dmserver /DATA/emd_data/DM_EMD/dm.ini -noconsole
接下来执行
[dmdba@vm-hrx-app bin]$ ./dmserver restart /DATA/emd_data/DM_EMD/dm.ini
file dm.key not found, use default license!
dmserver startup failed, code = -103 [Invalid startup parameters]
提示没有找到 dm.key。尝试查找,但是找不到
[dmdba@vm-hrx-app DATA]$ find . -name dm.key
find: `./lost+found': Permission denied
问题到这里无法解决了,后来找到https://www.jianshu.com/p/94011683b2f0,参考这个解决了问题。
30.linux系统下 达梦数据库设置为开机自启动怎么设置?
修改启动脚本,将DM启动脚本DmServiceXXXXX 移到/etc/init.d下,chkconfig DmServiceXXXXX on
确认此数据库能以dmdba用户正常前台启动后(必须步骤),操作步骤如下:
第一步:复制数据库实例服务脚本dmserverd,命名为DmInstanceServiceDAMENG并修改,修改path值为dm.ini路径(必须),dm_home设置为dm主程序安装路径(必须),svc_porg设置为数据库实例名(可选推荐)。
第二步:将脚本DmInstanceServiceDAMENG 复制到 /etc/rc.d/init.d 目录下。
cp /opt/dmdbms/bin/DmInstanceServiceDAMENG /etc/rc.d/init.d/DmInstanceServiceDAMENG
第三步:赋予服务脚本DmInstanceServiceDAMENG 可执行权限。
chmod 777 /etc/rc.d/init.d/DmInstanceServiceDAMENG
第四步:注册 DM实例服务并配置开机自动启动。
chkconfig --add DmInstanceServiceDAMENG
chkconfig DmInstanceServiceDAMENG on
chkconfig --list DmInstanceServiceDAMENG
第五步:后台启动达梦数据库实例服务,查看服务状态,关闭实例服务。
service DmInstanceServiceDAMENG start
service DmInstanceServiceDAMENG status
service DmInstanceServiceDAMENG stop
根据上述提示,进行操作。
达梦启动的时候,可能把启动脚本放在 /etc/rc.d/init.d 目录下
查看 /etc/rc.d/init.d 目录
[dmdba@vm-hrx-app ~]$ cd /etc/rc.d/init.d
[dmdba@vm-hrx-app init.d]$ ls
acpid cloud-init gfs2 itomsAgent netfs postfix rpcidmapd sshd
atd cloud-init-local haldaemon kdump network psacct rpcsvcgssd sysstat
auditd cpuspeed halt killall NetworkManager quota_nld rsyslog udev-post
blk-availability crond ip6tables lvm2-lvmetad nfs rdisc sandbox vsftpd
cgconfig DmServiceABX iptables lvm2-monitor nfslock restorecond saslauthd winbind
cgred dnsmasq irqbalance mdmonitor ntpd rngd single wpa_supplicant
cloud-config firstboot iscsi messagebus ntpdate rpcbind smartd zabbix-agent
cloud-final functions iscsid netconsole ovirt-guest-agent rpcgssd spice-vdagentd
发现本服务器达梦的启动脚本为 :DmServiceABX
尝试查看status 发现无权限
[dmdba@vm-hrx-app init.d]$ service DmServiceABX status
/sbin/service: line 3: /etc/init.d/functions: Permission denied
[dmdba@vm-hrx-app init.d]$ pwd
/etc/rc.d/init.d
切换到 root账户
[root@vm-hrx-app bin]# cd /etc/rc.d/init.d
[root@vm-hrx-app init.d]# ls
acpid cloud-init gfs2 itomsAgent netfs postfix rpcidmapd sshd
atd cloud-init-local haldaemon kdump network psacct rpcsvcgssd sysstat
auditd cpuspeed halt killall NetworkManager quota_nld rsyslog udev-post
blk-availability crond ip6tables lvm2-lvmetad nfs rdisc sandbox vsftpd
cgconfig DmServiceABX iptables lvm2-monitor nfslock restorecond saslauthd winbind
cgred dnsmasq irqbalance mdmonitor ntpd rngd single wpa_supplicant
cloud-config firstboot iscsi messagebus ntpdate rpcbind smartd zabbix-agent
cloud-final functions iscsid netconsole ovirt-guest-agent rpcgssd spice-vdagentd
查看数据库状态
[root@vm-hrx-app init.d]# service DmServiceABX status
DmServiceABX (pid 48696) is running...
停止数据库服务
[root@vm-hrx-app init.d]# service DmServiceABX stop
Stopping DmServiceABX: [ OK ]
重启数据库服务
[root@vm-hrx-app init.d]# service DmServiceABX start
Starting DmServiceABX: [ OK ]
查看监听的端口号
[dmdba@vm-hrx-app DATA]$ netstat -lntup| grep 5814
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 :::5236 :::* LISTEN 5814/dmserver
[dmdba@vm-hrx-app DATA]$ netstat -lntup| grep dmserver
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 :::5236 :::* LISTEN 5814/dmserver
登录数据库
[dmdba@vm-hrx-app bin]$ ./disql SYSDBA/SYSDBA@***.***.***.***:5236
Server[***.***.***.***:5236]:mode is normal, state is open
normal user login
login used time: 39.458(ms)
disql V7.1.5.60-Build(2016.03.16-66553trunc)
Connected to: DM 7.1.5.60
SQL> select * from user_tables; //执行SQL
SQL>quit; //退出
在远程,telnet ***.***.***.*** 5236 ,发现可telnet 通,即已经正常开始监听