分享关于达梦数据库单机安装的步骤以及注意事项

数据库安装前的必要操作

   我选择的操作系统是linux centos7的系统,DM数据库版本是dm8_rh7_64_ent_8.1.1.87,因为不是生产环境所以虚拟机的硬盘、内存可以小一点,保证数据库能稳定运行即可。

可以通过uname -a 查看CPU架构和系统内核版本是否与数据库版本视适配。

[dmdba@localhost dmrw]$ uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

   安装数据库前需要创建用户以及所属组:

groupadd  dinstall

  创建用户时需要指定用户的所属组,不然就会创建一个与用户同名的组,所以我们要先创建组,再创建用户,创建用户的命令:

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

  -g指定用户的所属组,-m强制建立用户的家目录,-d指定用户家目录,不指定也是会创在/home下,-s指定用户默认解释器,用户名为dmdba

接着需要创建数据库的安装目录,需要严格注意权限问题,属主必须为dmdba,属组必须为dminst,否则无论是安装还是初始化都会出现问题。顺便给用户加个密码。

mkdir  /dm8
chmod 755 -R /dm8
chown dmdba:dinstall -R /dm8
ls -ld /dm8

数据库的具体安装前步骤

数据库的安装包可以通过mobaxterm远程连接传到虚拟机,也可以通过cmd命令行传送同样是scp的命令。

scp   D:\DM8\dm8_20220304_x86_rh6_64.iso  root@10.10.10.10:/root

安装前修改资源限制,修改最大文件同时打开数

/etc/security/limits.conf

vim /etc/security/limits.conf

dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard data unlimited
dmdba soft data unlimited
dmdba hard fsize unlimited
dmdba soft fsize unlimited
dmdba soft stack 65536
dmdba hard stack 65536

修改/etc/systemd/system.conf
DefaultTaskMax=infinity
DefaultLimitNOFILE=65535
DefaultLimitNPROC=infinity
DefaultLimitMEMLOCK=infinity
DefaultLimitCORE=infinity

对于里面具体的参数的使用,soft一般都是比hard小,个别情况是相等。/etc/security/limits.d会覆盖掉/etc/security/limits.conf中的配置。如果没有做配置则默认为1024。修改成功后可以切换成dmdba用户查看是否修改成功

ulimit -a | grep open
ulimit -a | grep stack

若没有发生改变,重启服务器后再查看。到此为止就可以真正的开始安装数据库了。

挂载镜像

mount -o loop  dm8_setup_rh7_64_ent_8.1.1.45_20191121.iso  /mnt

-o loop 视为loop设备,即回环设备。

安装数据库

首先阐述一下命令行安装,切换至dmdba用户,进入到镜像挂载的目录点,执行安装命令:

./DMInstall.bin -i

-i 表示静默安装,选择中文安装,选择不输入key文件,设置时区为21,即中国上海标准时间,选择典型安装, 安装目录就是我们刚刚创好的也给过权限的文件夹/dm8。如果在这之前没有文件资源设置,脚本会提醒,系统中同时打开文件的数量设置过少可能会影响数据库和实例的启动。

安装完成之后切换至root用户,创建DmAPService服务:

/dm8/script/root/root_installer.sh

此服务在做主备集群或读写分离等等一切需要保证数据库数据一致性的集群都需要DMAP服务,如果做脱机备份时该服务没有启动可以进入bin目录下执行./DmService  start启动服务。

进入dmdba用户的家目录设置环境变量:

vim /home/dmdba/.bash_profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/dmdbms/bin
export DM_HOME=/opt/dmdbms
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

vim /home/dmdba/.profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/dmdbms/bin
export DM_HOME=/opt/dmdbms
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

vim /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/dmdbms/bin
export DM_HOME=/opt/dmdbms
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

变量$LD_LIBRARY_PATH,$DM_HOME在安装完数据库就已经在/home/dmdba/.bash_profile定义过了 LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin",$DM_HOME就是数据库的安装目录,配置完成之后source .bash_profile 重新加载一下变量使其生效

初始化实例

初始化实例取决于dminit脚本文件,同样是在$DM_HOME/bin下。结合dm.ini的各种参数的含义对数据库实例进行初始化,具体的参数可以根据./dminit help来查看。

这里举几个常见参数的配置供参考:

extent_size  指数据文件使用的簇的大小,即每次分配新的段空间时连续的页数,只能是16,32或64页,如果不填,缺省为16页。这里就会有人疑惑了,段空间是什么?我们首先了解到段是簇的上级逻辑单元,簇又是由页组成的,其实extent_size就是每次分配新的段空间时簇所包含的页数量。

page_size 指数据文件中页的大小,可以是4k、8k、16k或者32k之一,这个参数越大就意味着DM支持的元组长度越大,同时空间利用率就会下降,缺省是8k。

case_sensitive 指标识符的大小写敏感,默认为Y。当大小写敏感时,小写的标识符应该用双引号括起,否则就会被转换为大写。当大小写不敏感时,系统不自动转换大小写,在标识符比较时也不区分大小写。最明显的就是在建表的表名,如果大小写敏感的话表名中的所有小写就会转换为大写,一般的查询是不涉及大小写敏感的,但比如说使用sysobjects查询某个表的id号,此时表名name就需要大写并且单引号引起来,如果输入小写就会报错:未选定行。

SQL> create table t1(id int );
操作已执行
已用时间: 305.865(毫秒). 执行号:507.
SQL> select id,name from SYSOBJECTS where name = 'T1';

行号     ID          NAME
---------- ----------- ----
1          1055        T1

已用时间: 132.631(毫秒). 执行号:508.
SQL> select id,name from SYSOBJECTS where name = 't1';
未选定行

已用时间: 22.689(毫秒). 执行号:509.

charset 指字符集选项。0代表GB18030;1代表UTF-8;2代表韩文字符集EUC-KR;取其中之一,缺省则为0.

length_in_char:VARCHAR 类型长度是否以字符为单位,Y/N,1/0(默认为N)

空格填充模式(BLANK_PAD_MODE)

设置字符串比较时,结尾空格填充模式是否兼容ORACLE。取值1为兼容,0为不兼容。默认为0。为可选参数。

当然,在虚拟机上初始化实例的时候完全可以采用默认配置,仅指定实例路径:

./dminit path=/dm8/data  

在安装数据库时发现用的用户不对或者因为其他原因导致脚本意外退出,需要删除临时文件:rm -rf /tmp/DMInstall   /tmp/dm_build.properties,将这两个文件删除后才能继续运行脚本,另外在初始化实例的时候如果没有声明db_name那么安装目录下就会多出一个DAMENG的文件夹。

./dminit path=/dmdata db_name=dmrw  page_size=32

目录结构为 /dmdata/dmrw

./dminit path=/dmdata/dmrw  page_size=32

目录结构为/dmdata/dmrw/DAMENG

其实也就是没有指定db_name时默认名称为DAMENG,path只是起到指定路径的作用。

也可以加上常见参数:

./dminit path=/dm8/data exten_size=32 page_size=32 case_sensitive=y  charset=0 length_in_char=n  BLANK_PAD_MODE=0

这个地方最容易出现的错误就是权限问题,上文也提到了创建安装目录时必须注意权限问题。

注册服务

初始化实例完成之后就可以进行注册服务了,没有注册服务之前时这样启动,进入$DM_HOME/bin 

./dmserver /dm8/data/DAMENG/dm.ini   open/mount

open是指以打开模式运行,mount以配置模式运行

切换到root用户进入安装目录下的script/root/

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

  -t 指服务类型,-dm_ini  指dm.ini文件路径,-p 指服务名后缀,可以使用./dm_server_install.sh -h查看具体的参数。注册成功后的服务名为DmServiceDMSERVER.service,可以使用systemctl启动它,也可以切换至dmdba用户,在命令行直接输入(不需要进入任何目录)DmServiceDMSERVER start ,条件是前文提到的用户的环境变量需要配置正确。

配置成功后可以利用systemctl  start|stop  DmServerDMSERVER.service控制数据库的开启和关闭

连接数据库

可以用root用户进入到安装目录文件夹下的bin目录启动数据库

/dm8/bin/dmserver.sh /dm8/dmdata/DAMENG/dm.ini
/dm8/bin/disql SYSDBA/SYSDBA     #连接本机数据库
/dm8/bin/disql SYSDBA/SYSDBA@ip:端口    #远程连接其他数据库

也可应且换至dmdba用户,在配置完环境变量后直接启动数据库

DmServerDMSERVER start
disql SYSDBA/SYSDBA  #连接本机数据库
disql SYSDBA/SYSDBA@ip:端口    #连接远程数据库

以上就是虚拟机环境安装DM数据库的操作步骤。

 关于技术交流分享请关注社区:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值