目录预览
1、安装规划
从达梦官网下载所需的数据库安装包【下载需要注册登录账户】
www.dameng.com
背景:
本次达梦8单机安装在Centos Linux7.8 64Bit系统上,采用了x86处理器,通过多种方式完成数据库安装。
数据库版本 | 1-2-38-21.07.09-143359-10018-ENT Pack1 |
操作系统版本 | CentOS Linux release 7.8.2003 (Core) |
CPU信息 | 6核 |
服务器内存 | 3800MB |
IP地址 | 192.168.3.99 |
服务器名称 | single2 |
备注 | 192.168.3.99 |
软件安装路径 | /dmdb |
数据文件路径 | /dmdata/dmtest |
归档日志路径 | 无 |
备份文件路径 | 无 |
2、安装前置准备
2.1 环境检查
保证内存至少拥有1GB大小,磁盘剩余大小至少1GB。
getconf LONG_BIT
uname –a
cat /etc/redhat-release
lscpu
2.2 查看防火墙是否关闭
systemctl status firewalld (状态)
systemctl stop firewalld (关闭)
systemctl disable firewalld (开机不启动)
2.3 用root创建安装目录和安装用户组
创建安装目录: mkdir -p /dmdb
创建组 :groupadd dinstall
创建用户 :useradd -g dinstall dmdba
设置密码 :passwd dmdba
更改安装目录所有者: chown dmdba:dinstall -R /dmdb
更改数据盘目录所有者:chown dmdba:dinstall -R /dmdata
2.4 更改资源限制
在liunx中检查当前用户资源限制
$ ulimit –n
资源参数设置要求:
data seg size | 建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导 致数据库启动失败。 |
file size | 建议用户设置为 unlimited(无限制),此参数过小将导致数据库安装或初始化失败。 |
open files | 建议用户设置为 65536 以上或 unlimited(无限制)。 |
virtual memory | 建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导 致数据库启动失败。 |
如 果 用 户 需 要 为 当 前 安 装 用 户 更 改 ulimit 的 资 源 限 制 , 请 修 改 文 件
/etc/security/limits.conf。
本次单机安装只需要修改open files参数。
root用户在 /etc/security/limits.conf 添加如下内容:
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard nproc 65536*
进dmdba用户查看open file是否生效
配置环境变量
su - dmdba
vim .bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
export DM_HOME=/dmdb
export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$DM_HOME/bin:$DM_HOME/tool
$ source .bash_profile
上传相应的安装包并解压挂载
$ unzip dm8_20210712_x86_rh6_64_ent.zip
# mount -o loop dm8_20210712_x86_rh6_64_ent_8.1.2.38_pack1.iso /mnt
3、命令行安装
3.1 进入到挂载目录进行命令行安装
(没有找到Key文件,先暂时忽略)
root用户执行:
/dmdb/script/root/root_installer.sh
3.2 初始化实例
数据库安装结束后,还需要初始化数据库实例才能正式运行达梦数据库,使用安装用户dmdba初始化数据库,切换到安装目录的bin目录下,输入./dminit help 查看详细信息,数据页大小,大小写敏感,字符集等初始化之后不能修改,请和客户确认之后再操作
本机初始化例子如下(实例安装到/dmdata目录下)
$ ./dminit PATH=/dmdata EXTENT_SIZE=32 PAGE_SIZE=16 CASE_SENSITIVE=n SYSDBA_PWD=sysdba123 DB_NAME=dmtest INSTANCE_NAME=dmtest PORT_NUM=5236
创建数据库服务
使用root用户创建数据库服务
# ./dm_service_installer.sh -t dmserver -p TEST -dm_ini /dmdata/dmtest/dm.ini
启动数据库服务:
# systemctl start DmServiceTEST
或安装bin目录下进行启动
# ./DmServiceTEST start
3.3 登录数据库
服务安装后,不需要进入安装目录中的bin目录即可进入数据库
未安装服务时另开一个窗口,服务器名加dm.ini文件所在路径亦可启动数据库,但启动界面关闭后数据库也会停止
一窗口执行服务运行操作
# ./dmserver /dmdata/dmtest/dm.ini
另开一窗口可正常进入数据库执行操作
#./disql SYSDBA/sysdba123@localhost:5236
4、拷贝安装
拷贝安装需要先确定源端目标端的系统环境,尽量保证版本的一致性且尽量保证数据文件目录名的一致性,如果数据文件目录名字发生变化,请修改dm.ini
本次安装安装软件目录从源库的/dmdb拷贝到/dm下
4.1 目标端建组建用户
创建安装目录: mkdir -p /dmdb
创建组 :groupadd dinstall
创建用户 :useradd -g dinstall dmdba
设置密码 :passwd dmdba
更改安装目录所有者: chown dmdba:dinstall -R /dmdb
更改数据盘目录所有者:chown dmdba:dinstall -R /dmdata
4.2 配置环境变量
su - dmdba
vim .bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
export DM_HOME=/dm
export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$DM_HOME/bin:$DM_HOME/tool
$ source .bash_profile
4.3 源端拷贝过去
scp -r /dmdb/* 192.168.3.88:/dm
初始化数据库成功
4.4 注册服务
因为安装目录位置改变,所以需要初始化注册服务脚本并手动修改
cp /dm/bin/service_template/DmService /dm/bin
vi /dm/bin/DmService
将上述的两个变量指向修改完成。
$ DmService start
总结:拷贝安装更适合于目录路径完全一致的情况,当路径不一致时服务会产生路径错误,需要手工修改才能够正常启动数据库
5、静默安装
前置准备按上述做好后,写好静默安装脚本,本次安装脚本如下
<?xml version="1.0"?>
<DATABASE>
<!-- 安装数据库的语言配置,安装中文版配置ZH,英文版配置EN,不区分大小写。不允许为空。 -->
<LANGUAGE>en</LANGUAGE>
<!-- 安装程序的时区配置,默认值为+08:00,范围:-12:59 ~ +14:00 -->
<TIME_ZONE>+08:00</TIME_ZONE>
<!-- key 文件路径 -->
<KEY></KEY>
<!-- 安装程序组件类型,取值0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户端 。默认为0。 -->
<INSTALL_TYPE>0</INSTALL_TYPE>
<!--安装路径,不允许为空。 -->
<INSTALL_PATH>/dmdb</INSTALL_PATH>
<!--是否初始化库,取值Y/N、y/n,不允许为空。 -->
<INIT_DB>Y</INIT_DB>
<!-- 数据库实例参数 -->
<DB_PARAMS>
<!-- 初始数据库存放的路径,不允许为空 -->
<PATH>/dmdata</PATH>
<!-- 初始化数据库名字,默认是DAMENG,不超过128 个字符 -->
<DB_NAME>DATEST</DB_NAME>
<!-- 初始化数据库实例名字,默认是DMSERVER,不超过128 个字符 -->
<INSTANCE_NAME>TEST</INSTANCE_NAME>
<!-- 初始化时设置dm.ini中的PORT_NUM,默认5236,取值范围:1024~65534 -->
<PORT_NUM>5236</PORT_NUM>
<!-- 初始数据库控制文件的路径,文件路径长度最大为256 -->
<CTL_PATHS>
<CTL_PATH>/home/dmdba/dmdbms/data/DAMENG/dm.ctl</CTL_PATH>
</CTL_PATHS>
<!-- 初始数据库日志文件的路径,文件路径长度最大为256 -->
<LOG_PATHS>
<LOG_PATH>/dmdb/dmtest/TEST01.log</LOG_PATH>
<LOG_PATH>/dmdb/dmtest/TEST02.log</LOG_PATH>
</LOG_PATHS>
<!-- 数据文件使用的簇大小,只能是16页或32页之一,缺省使用16页 -->
<EXTENT_SIZE>32</EXTENT_SIZE>
<!-- 数据文件使用的页大小,缺省使用8K,只能是4K、8K、16K 或32K 之一 -->
<PAGE_SIZE>8</PAGE_SIZE>
<!-- 日志文件使用的簇大小,默认是512,取值范围64和2048之间的整数 -->
<LOG_SIZE>512</LOG_SIZE>
<!-- 标识符大小写敏感,默认值为 Y。 只能是’Y’, ’y’, ’N’, ’n’, ’1’, ’0’之一 -->
<CASE_SENSITIVE>N</CASE_SENSITIVE>
<!-- 字符集选项 ,默认值为 0。0 代表GB18030,1 代表UTF -8,2 代表韩文字符集EUC-KR -->
<CHARSET>1</CHARSET>
<!-- 设置为1 时,所有 VARCHAR 类型对象的长度以字符为单位,否则以字节为单位。默认值为0。 -->
<LENGTH_IN_CHAR>0</LENGTH_IN_CHAR>
<!-- 字符类型在计算HASH值时所采用的HASH算法类别。0:原始 HASH算法;1:改进的 HASH算法。默认值为1。 -->
<USE_NEW_HASH>1</USE_NEW_HASH>
<!-- 初始化时设置SYSDBA的密码,默认为SYSDBA,长度在6 到48个字符之间 -->
<SYSDBA_PWD>sysdba123</SYSDBA_PWD>
<!-- 初始化时设置SYSAUDITOR的密码,默认为SYSAUDITOR,长度在 6 到48个字符之间 -->
<SYSAUDITOR_PWD></SYSAUDITOR_PWD>
<!-- 初始化时设置SYSSSO的密码,默认为 SYSSSO,长度在6 到48个字符之间,仅在安全版本下可见和可设置 -->
<SYSSSO_PWD></SYSSSO_PWD>
<!-- 初始化时设置SYSDBO的密码,默认为 SYSdbO,长度在6 到48个字符之间,仅在安全版本下可见和可设置 -->
<SYSDBO_PWD></SYSDBO_PWD>
<!-- 初始化时区,默认是东八区。格式为:正负号小时:分钟,范围:-12:59 ~ +14:00 -->
<TIME_ZONE>+08:00</TIME_ZONE>
<!-- 是否启用页面内容校验,0:不启用;1:简单校验;2:严格校验(使用CRC16 算法生成校验码)。默认0 -->
<PAGE_CHECK>0</PAGE_CHECK>
<!-- 设置默认加密算法,不超过128 个字符 -->
<EXTERNAL_CIPHER_NAME></EXTERNAL_CIPHER_NAME>
<!-- 设置默认HASH算法,不超过128 个字符 -->
<EXTERNAL_HASH_NAME></EXTERNAL_HASH_NAME>
<!-- 设置根密钥加密引擎,不超过128 个字符 -->
<EXTERNAL_CRYPTO_NAME></EXTERNAL_CRYPTO_NAME>
<!-- 服务器主密钥,用于加密数据库主密钥,最长为32个字节 -->
<SVR_KEY></SVR_KEY>
<!-- 数据库主密钥,用于加密库内密钥,如用户加密密钥、列加密密钥,最长为32个字节 -->
<DB_KEY></DB_KEY>
<!-- 全库加密密钥 ,最长为32个字节 -->
<ENCRYPT_PWD></ENCRYPT_PWD>
<!-- 全库加密密钥使用的算法名。算法可以是DM内部支持的加密算法,或者是第三方的加密算法。默认使用"AES256_ECB"算法加密 ,最长为128 个字节 -->
<ENCRYPT_NAME></ENCRYPT_NAME>
<!-- 指定日志文件是否加密。默认值 N。取值Y/N,y/n,1/0 -->
<RLOG_ENC_FLAG>N</RLOG_ENC_FLAG>
<!-- 用于加密服务器根密钥,最长为48个字节 -->
<USBKEY_PIN></USBKEY_PIN>
<!-- 设置空格填充模式,取值0 或1,默认为0 -->
<BLANK_PAD_MODE>0</BLANK_PAD_MODE>
<!-- 指定system.dbf文件的镜像路径,默认为空 -->
<SYSTEM_MIRROR_PATH></SYSTEM_MIRROR_PATH>
<!-- 指定main.dbf文件的镜像路径,默认为空 -->
<MAIN_MIRROR_PATH></MAIN_MIRROR_PATH>
<!-- 指定roll.dbf文件的镜像路径,默认为空 -->
<ROLL_MIRROR_PATH></ROLL_MIRROR_PATH>
<!-- 是否是四权分立,默认值为 0(不使用)。仅在安全版本下可见和可设置。只能是0或1 -->
<PRIV_FLAG>0</PRIV_FLAG>
</DB_PARAMS>
<!--是否创建数据库实例的服务,值 Y/N y/n ,不允许为空,不初始化数据库将忽略此节点。非root用户不能创建数据库服务。 -->
<CREATE_DB_SERVICE>Y</CREATE_DB_SERVICE>
<!--是否启动数据库,值 Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 -->
<STARTUP_DB_SERVICE>Y</STARTUP_DB_SERVICE>
</DATABASE>
进去挂载目录,执行下述命令
# ./DMInstall.bin -q /dmdata/install.xml
安装过程如下:
静默安装相比于拷贝安装更加方便快捷,一步直接讲数据库初始化、服务注册全部完成
6、安装后继调整
配置服务资源限制
编辑/usr/lib/systemd/system/DmServiceTEST.service文件,修改下列几个参数
[Service]
LimitNOFILE=65536
LimitCORE=infinity
运行下面命令生效
systemctl daemon-reload
systemctl restart DmServiceTEST.service
如做全局的配置,需要修改文件/etc/systemd/system.conf
修改了system.conf后,因为缺失文件,命令无法正常生效,需要重启系统才行。
vi /etc/systemd/system.conf
#增加参数
DefanltLimitNOFILE=65536
7、数据库卸载
先停止数据库服务:# systemctl stop DmServiceTEST
(这里用错用户,导致需要输入root用户密码才能停止)
卸载数据库服务:# ./dm_service_uninstaller.sh -n DmServiceTEST
查看是否还有服务 systemctl status DmServiceTEST
删除实例:rm -rf /dmdata/dmtest
卸载数据库:$ ./uninstall.sh -i
更多资讯请上达梦技术社区了解:https://eco.dameng.com