Linux(CentOS7)搭建达梦数据库

参考官方文档
本文记录一下达梦数据库的安装步骤,在安装的过程中出现了一些问题,进行了处理。

安装前准备

用户在安装 DM 数据库之前需要检查或修改操作系统的配置,以保证 DM 数据库能够正确安装和运行。
新建 dmdba 用户

注意
安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。

1.创建用户所在的组,命令如下:

groupadd dinstall

2.创建用户,命令如下:

useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

3.修改用户密码,命令如下:

passwd dmdba

4.修改文件打开最大数
修改文件打开最大数
重启服务器后永久生效
使用 vim 编辑器打开 /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 用户,查看是否生效,命令如下:
su - dmdba
ulimit -a
设置参数临时生效
可使用 dmdba 用户执行如下命令,使设置临时生效:

ulimit -n 65536

挂载镜像
切换到 root 用户,将 DM 数据库的 iso 安装包保存在任意位置,例如 /mnt/soft 目录下,执行如下命令挂载镜像:

扫描二维码关注公众号,回复: 17200331 查看本文章
mount -o loop /mnt/soft/dm8_20230418_x86_rh6_64.iso /mnt/dmdba

新建安装目录
在根目录下创建 /dm8 文件夹,用来安装 DM 数据库。命令如下:

mkdir /mnt/dm8

注意
使用 root 用户建立文件夹,待 dmdba 用户建立完成后需将文件所有者更改为 dmdba 用户,否则无法安装到该目录下

修改安装目录权限
将新建的安装路径目录权限的用户修改为 dmdba,用户组修改为 dinstall。命令如下:

chown dmdba:dinstall -R /mnt/dm8

给安装路径下的文件设置 755 权限。命令如下:

chmod -R 755 /mnt/dm8

数据库安装

DM 数据库在 Linux 环境下支持命令行安装和图形化安装,本章节将分别进行详细介绍。

命令行安装

切换至 dmdba 用户下,在 /mnt/dmdba目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库。

su - dmdba
cd /mnt/dmdba
./DMInstall.bin -i

按需求选择安装语言,默认为中文。本地安装选择【不输入 Key 文件】,选择【默认时区 21】。
在这里插入图片描述
选择【1-典型安装】,按已规划的安装目录 /mnt/dm8 完成数据库软件安装,不建议使用默认安装目录。
在这里插入图片描述
数据库安装大概 1~2 分钟,数据库安装完成后,显示如下界面。
在这里插入图片描述
数据库安装完成后,需要切换至 root 用户执行上图中的命令 /mnt/dm8/script/root/root_installer.sh 创建 DmAPService,否则会影响数据库备份。

图形化安装

切换到 dmdba 用户,进入 /mnt 目录下,执行命令开始图形化安装。

su - dmdba
cd /mnt/dmdba
./DMInstall.bin

若出现:初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用"./DMInstall.bin -i"进行命令行安装。错误提示,可按以下两种方式操作解决:

方法一:注销当前用户,登陆 dmdba 用户,执行 ./DMInstall.bin 命令。
方法二:用当前用户执行 xhost +,切换到 dmdba 用户,执行 export DISPLAY=:0,再执行 xhost +命令。
图形化界面启动成功后,将弹出【选择语言与时区】页面,默认为简体中文和中国标准时间。
在这里插入图片描述

点击【确定】后,弹出 DM 数据库安装程序。
在这里插入图片描述
点击【下一步】后,为许可证协议页面,选择【接受】。
在这里插入图片描述

点击【下一步】后,弹出 key 文件页面,点击【浏览】选择【key 文件】,若没有 key 文件可以直接点击【下一步】,跳过该步骤。

在这里插入图片描述
点击【浏览】后,找到相应的 key 文件,点击【确定】即可。
在这里插入图片描述
点击【下一步】后,弹出选择组件页面,建议选择典型安装,也可根据需要,选择服务器安装、客户端安装和自定义安装。
在这里插入图片描述
点击【下一步】后,弹出选择安装位置页面,可点击【浏览】选择安装位置,也可安装在默认路径下。
在这里插入图片描述
点击【下一步】后,弹出确认安装信息页面,检查安装信息是否准确,确认无误后点击【安装】。
在这里插入图片描述
点击【安装】后,等待 1~2 分钟即可安装完成,安装完成后弹出执行配置脚本页面,按照页面要求执行该脚本即可。
在这里插入图片描述
重新打开一个终端,切换到 root 用户,执行弹出页面中的脚本。
在这里插入图片描述
脚本执行完成后,点击执行配置脚本页面中的【完成】,弹出提示框,提示是否关闭窗口,选择是,提示数据库安装完成,再点击【完成】按钮,完成数据库安装。
在这里插入图片描述
在这里插入图片描述
配置环境变量
切换到 root 用户进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。命令如下:

export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

编辑 .bash_profile,使其最终效果如下图所示:

cd /home/dmdba/
vim .bash_profile

在这里插入图片描述
切换至 dmdba 用户下,执行以下命令,使环境变量生效。

su - dmdba
source .bash_profile

配置实例

DM 数据库在 Linux 环境支持命令行配置实例以及图形化配置实例,本章节将介绍命令行配置实例。
使用 dmdba 用户配置实例,进入到 DM 数据库安装目录下的 bin 目录中,使用 dminit 命令初始化实例。

dminit 命令可设置多种参数,可执行如下命令查看可配置参数。

./dminit help

在这里插入图片描述
需要注意的是页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 这四个参数,一旦确定无法修改,需谨慎设置。

  • extent_size 指数据文件使用的簇大小,即每次分配新的段空间时连续的页数。只能是 16 页或 32 页或 64 页之一,缺省使用 16 页。
  • page_size 数据文件使用的页大小,可以为 4 KB、8 KB、16 KB 或 32 KB 之一,选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降,缺省使用 8 KB。
  • case_sensitive 标识符大小写敏感,默认值为 Y 。当大小写敏感时,小写的标识符应用双引号括起,否则被转换为大写;当大小写不敏感时,系统不自动转换标识符的大小写,在标识符比较时也不区分大小写,只能是 Y、y、N、n、1、0 之一。
  • charset 字符集选项。0 代表 GB18030;1 代表 UTF-8;2 代表韩文字符集 EUC-KR;取值 0、1 或 2 之一。默认值为 0。
    可以使用默认参数初始化实例,需要附加实例存放路径。此处以初始化实例到 /dm/data 目录下为例(执行初始化命令前,需要使用 root 用户授予 /dm/data 目录相应权限,可以参考修改目录权限),初始化命令如下:
./dminit path=/mnt/dm/data

在这里插入图片描述
也可以自定义初始化实例的参数,参考如下示例:

以下命令设置页大小为 32 KB,簇大小为 32 KB,0大小写不敏感,1大小写敏感,字符集为 utf_8,数据库名为 DMDB,实例名为 DBSERVER,端口为 5236。

./dminit path=/mnt/dm8/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=0 CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=DBSERVER PORT_NUM=5236
./dminit path=/mnt/dm8/data page_size=32 extent_size=32 log_size=2048 port_num=5236 charset=1 case_sensitive=0 LENGTH_IN_CHAR=1 db_name=DAMENG instance_name=DMSERVER
./dminit path=/mnt/dm8/data page_size=32 extent_size=32 log_size=2048 port_num=5236 charset=0 case_sensitive=0 LENGTH_IN_CHAR=0 db_name=DAMENG instance_name=DMSERVER

在这里插入图片描述

注意
如果此处自定义了初始化参数,在后面的注册服务和启动数据库等步骤中,请按实际的自定义参数进行操作。

注册服务

注册服务需使用 root 用户进行注册。使用 root 用户进入数据库安装目录的 /mnt/dm8/script/root 下,如下所示:

cd /mnt/dm8/script/root

注册服务,如下所示:

./dm_service_installer.sh -t dmserver -dm_ini /mnt/dm8/data/DAMENG/dm.ini -p DMSERVER

用户可根据自己的环境更改 dm.ini 文件的路径以及服务名,如下所示:

./dm_service_installer.sh -h

如需为其他实例注册服务,需打开 dbca 工具,进行注册服务,如下所示:

cd /mnt/dm8/tool
./dbca.sh

启动、停止数据库

服务注册成功后,启动数据库,如下所示:

systemctl start DmServiceDMSERVER.service

停止数据库,如下所示:

systemctl stop DmServiceDMSERVER.service

重启数据库,如下所示:

systemctl restart DmServiceDMSERVER.service

查看数据库服务状态,如下所示:

systemctl status DmServiceDMSERVER.service

可前台启动,进入 DM 安装目录下的 bin 目录下,命令如下:

./dmserver /mnt/dm8/data/DAMENG/dm.ini

该启动方式为前台启动,若想关闭数据库,则输入 exit 即可。

也可进入 DM 安装目录下的 bin 目录下,启动/停止/重启数据库,如下所示:

./DmServiceDMSERVER start/stop/restart

查看数据库状态,如下所示:

./DmServiceDMSERVER status

启动的时候报错:
Job for DmServiceDMSERVER.service failed because the control process exited with error code. See “systemctl status DmServiceDMSERVER.service” and “journalctl -xe” for details.
是由于/mnt/dm8授予的文件夹权限不一致导致的

使用命令 ls -l /mnt/dm8查看目录下文件夹所属用户是否为dmdba的用户的,然后对文件夹进行授权

达梦数据库卸载

关闭数据库服务

systemctl stop DmServiceDMSERVER.service 

进入安装目录,执行卸载命令

./uninstall.sh -i

按照提示进行删除
在这里插入图片描述
将剩下的log和data目录下的文件删除,里面存的是数据库配置文件、日志文件和数据文件

rm -rf /mnt/dm8/*

卸载完毕

达梦数据库重新初始化实例

需求背景:

一开始初始化的实例的配置没配置好,大小写敏感、字符集编码、长度以字符为单位都配置不对,导致的后果是从mysql迁移数据到dm时,时不时会出现字符串截断的问题,这个问题就是因为初始化的实例时的长度以字符为单位配置成了否。

1.字符集不是UTF-8,请修改字符集或创建实例时设置CHARSET=1
2.需设置大小写不敏感,创建实例时设置CASE_SENSITIVE=0
3.需设置长度以字符为单位,创建实例时设置LENGTH_IN_CHAR=1

重新初始化实例操作:
第一步、删除实例
进入到/mnt/dm8/script/root

./dm_service_uninstaller.sh -n DmServiceDMSERVER

备注:

DmServiceDMSERVER是实例服务的名称,如果忘记可以到 cd /usr/lib/systemd/system 或者 cd /etc/systemd/system
搜索查看Dm开头的,有Service的有哪些。可以查到名称DmServiceDMSERVER.service。

第二步、删除数据库目录

cd /mnt/dm8/data/DAMENG
rm -rf ./*

备注:

DAMENG是初始化时数据库名称

第三步、初始化实例

cd /mnt/dm8/bin
./dminit path=/mnt/dm8/data page_size=32 extent_size=32 log_size=2048 port_num=5236 charset=1 case_sensitive=0 LENGTH_IN_CHAR=1 db_name=DAMENG instance_name=DMSERVER

备注:

初始化不成功,可以试试用root用户去执行。

第四步、注册服务

cd /mnt/dm8/script/root
./dm_service_installer.sh -t dmserver -dm_ini /mnt/dm8/data/DAMENG/dm.ini -p DMSERVER

猜你喜欢

转载自blog.csdn.net/feritylamb/article/details/132184556