GeorgeTH 2019-11-01
我们在学习任何一个应用时,了解它的最初步骤通常是学会如何进行安装配置,后序才去关心如何使用,学习达梦数据库也是如此,而达梦数据库的安装提供了多种方式,接下来会一一介绍每种安装方式,达梦数据库支持多个操作系统平台的安装,本篇主要介绍Linux平台下的静默方式安装。
用户应根据 DM 及应用系统的需求来选择合适的硬件配置,如 CPU 的指标、内存及磁盘容量等。档次一般应尽可能高一些,尤其是作为数据库服务器的机器,基于 Java 的程序运行时最好有较大的内存。其它设备如 UPS 等在重要应用中也应考虑。下面给出安装 DM 所需的硬件基本配置:
- CPU:Intel Pentium4(建议 Pentium 41.6G 以上)处理器 - 内存:256M(建议 512M 以上) - 硬盘:5G 以上可用空间 - 网卡:10M 以上支持 TCP/IP 协议的网卡 - 光驱:32 倍速以上光驱 - 显卡支持:1024*768*256 以上彩色显示 - 显示器:SVGA 显示器 - 键盘/鼠标:普通键盘/鼠标
由于 DM 是基于客户/服务器方式的大型数据库管理系统,一般应在网络环境下使用,客户机与服务器分别在不同的机器上,所以硬件环境通常包括网络环境(如一个局域网)。如果仅有单台 PC,DM 也允许将所有软件装在同一台 PC 上使用。
运行 DM 所要求的软件需求主要有:
- 操作系统:Windows(简体中文服务器版 sp2 以上)/Linux(glibc2.3 以上,内核 2.6,已安装 KDE/GNOME 桌面环境,建议预先安装 UnixODBC 组件) - 网络协议:TCP/IP - 系统盘:至少 1G 以上的剩余空间
此外,如要进行数据库应用开发,在客户端可配备 VC、VB、DELPHI、C++Builder、PowerBuilder、JBuilder、Eclipse、DreamWeaver、Visual Studio.NET 等应用开发工具。如要使用 DM ODBC 驱动程序,应确保 Windows 操作系统中已经安装有ODBC 数据源管理器,并能正常工作。
本次安装的Linux平台为中标麒麟6.0 :
[ 桌面]$ cat /etc/issue NeoKylin Linux General Server release 6.0 (Dhaulagiri)
用户在安装 DM 前,需要检查当前操作系统的相关信息,确认 DM 安装程序与当前操作系统匹配,以保证 DM 能够正确安装和运行。用户可以使用以下命令检查操作系统基本信息。如下图所示:
-#获取系统位数 getconf LONG_BIT -#查询操作系统 release 信息 lsb_release -a -#查询系统信息 cat /etc/issue -#查询系统名称 uname -a
对于中标麒麟6.0系统,防火墙与SELinux默认是关闭,如下图所示:
防火墙: 命令:system-config-firewall SELinux: [ etc]# getenforce Disabled
修改/etc/hosts文件加入IP地址与主机名的对应:
[ etc]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.128.1.3 dm3
为了减少对操作系统的影响,用户不应该以 root 系统用户来安装和运行 DM。用户可以在安装之前为 DM 创建一个专用的系统用户。
1. 创建安装用户组 dinstall。 groupadd dinstall 2. 创建安装用户 dmdba。 useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba 3. 初始化用户密码。 passwd dmdba 4. 之后通过系统提示进行密码设置。
注意:创建安装系统用户完成后,安装手册之后的操作默认使用安装系统用户进行操作。
目录规划:
/usr/appsoft/dmdbms:达梦数据库软件安装位置 /usr/appsoft/dmdata:达梦数据库数据存储目录 /usr/appsoft/dmarch:达梦数据库归档日志目录 /usr/appsoft/dmbak:达梦数据库备份目录
[ ~]# mkdir -p /usr/appsoft/dmdbms [ ~]# mkdir -p /usr/appsoft/dmdata [roo ~]# mkdir -p /usr/appsoft/dmarch [ ~]# mkdir -p /usr/appsoft/dmbak [ ~]# chown -R dmdba:dinstall /usr/appsoft/dmdbms [ ~]# chmod -R 775 /usr/appsoft/dmdbms [ ~]# chown -R dmdba:dinstall /usr/appsoft/dmdata [ ~]# chmod -R 775 /usr/appsoft/dmdata [ ~]# chown -R dmdba:dinstall /usr/appsoft/dmarch [ ~]# chmod -R 775 /usr/appsoft/dmarch [ ~]# chown -R dmdba:dinstall /usr/appsoft/dmbak [ ~]# chmod -R 775 /usr/appsoft/dmbak
在 Linux(Unix)系统中,因为 ulimit 命令的存在,会对程序使用操作系统资源进行限制。为了使 DM 能够正常运行,建议用户检查当前安装用户的 ulimit 参数。运行 ulimit -a 进行查询。如下图所示:
参数 使用限制:
1. data seg size data seg size (kbytes, -d) 建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导致数据库启动失败。 2. file size file size(blocks, -f) 建议用户设置为 unlimited(无限制),此参数过小将导致数据库安装或初始化失败。 3. open files open files(-n) 建议用户设置为 65536 以上或 unlimited(无限制)。 4. virtual memory virtual memory (kbytes, -v) 建议用户设置为 1048576(即 1GB)以上或 unlimited(无限制),此参数过小将导致数据库启动失败。 如 果 用 户 需 要 为 当 前 安 装 用 户 更 改 ulimit 的 资 源 限 制 , 请 修 改 文 件/etc/security/limits.conf。
在/etc/profile或者dmdba用户的~/.bash_profile 里添加如下内容:
export DM_HOME="/usr/appsoft/dmdbms" export LD_LIBRARY_PATH="$DM_HOME/bin:$LD_LIBRARY_PATH" export PATH="$DM_HOME/bin:$PATH"
插入达梦数据库安装光盘或者上传达梦数据库ISO文件到服务器,打开安装程序进行安装即可,下面以ISO文件为例:
挂载ISO文件:
[ ~]# mount -o loop dm7_setup_rh6_64_ent_7.6.0.171_20190704.iso /mnt [ /]# cd /mnt [ mnt]# ls DMInstall.bin DM_Install_en.pdf DM_Install_zh.pdf release_en.txt release_zh.txt
为使dmdba用户可以执行安装操作,最好将安装文件复制到dmdba有足够权限的目录下,比如/home/dmdba,并将文件赋予dmdba相应的执行权限;
在某些特殊应用场景,用户可能需要非交互式的、通过配置文件进行 DM 的安装,这种情况我们可以采用以下静默安装的方式。在终端进入到安装程序所在文件夹,执行以下命令
./DMInstall.bin -q 配置文件全路径 [ /home/dmdba]$./DMInstall.bin -q /home/dmdba/auto_install.xml
其中配置文件的内容格式详见附录一。
安装过程如下:
[ mnt]$ ./DMInstall.bin -q /home/dmdba/auto_install.xml Extract install files.......... 2019-11-01 12:53:09 [INFO] Installing DM DBMS... 2019-11-01 12:53:10 [INFO] Installing BASE Module... 2019-11-01 12:53:16 [INFO] Installing SERVER Module... 2019-11-01 12:53:18 [INFO] Installing CLIENT Module... 2019-11-01 12:53:24 [INFO] Installing DRIVERS Module... 2019-11-01 12:53:25 [INFO] Installing MANUAL Module... 2019-11-01 12:53:25 [INFO] Installing SERVICE Module... 2019-11-01 12:53:28 [INFO] Move ant log file to log directory. 2019-11-01 12:53:28 [INFO] Installed DM DBMS completely. Please execute the commands by root: /usr/appsoft/dmdbms/script/root/root_installer.sh 2019-11-01 12:53:30 [INFO] Creating database... 2019-11-01 12:53:37 [INFO] Create database completed. [ mnt]$
注意:
1.如果操作系统语言与配置文件中选择的安装数据库语言不一致,会出现如下错误: [ mnt]$ ./DMInstall.bin -q /home/dmdba/auto_install.xml Extract install files.......... Fail to parse the config file(/home/dmdba/auto_install.xml) of Auto Install! The language of current OS is not chinese, Can not install chinese version. please modify the value of LANGUAGE in the config file. 此时需要调整语言一致。 2.静默安装不会进行目录创建,需要提前创建好,否则会提示如下错误: [ mnt]$ ./DMInstall.bin -q /home/dmdba/auto_install.xml Extract install files.......... Failed to get the owner of the directory(/home/dmdba/dmdbms1)!
打开窗口以root用户执行即可:
[ dmdba]# /usr/appsoft/dmdbms/script/root/root_installer.sh 移动 /usr/appsoft/dmdbms/bin/home/dmdba_svc.conf 到/etc目录 修改服务器权限 创建DmAPService服务 移动服务脚本文件(/usr/appsoft/dmdbms/bin/home/dmdbaAPService 到 /etc/rc.d/init.d/home/dmdbaAPService) 创建服务(DmAPService)完成 启动DmAPService服务 Starting DmAPService: [ OK ] [ dmdba]#
在图形方式的安装中,进行图形方式的实例初始化的最后,会提示通过root用户进行服务的注册;而在静默方式下,服务不会自动进行注册,需要我们手动进行注册,使用到的工具:$DM_HOME/script/root/dm_service_installer.sh(关于本脚本工具的使用后面与实例的注册一起说明),方法如下:
[ dmdba]# /usr/appsoft/dmdbms/script/root/dm_service_installer.sh -s /usr/appsoft/dmdbms/bin/DmServiceIESDB 移动服务脚本文件(/usr/appsoft/dmdbms/bin/DmServiceIESDB 到 /etc/rc.d/init.d/DmServiceIESDB) 创建服务(DmServiceIESDB)完成 [ dmdba]#
此时已完成实例的初始化,可以通过disql工具进行连接测试:
[ tool]$ disql sysdba/SYSDBA 服务器[LOCALHOST:5236]:处于普通打开状态 登录使用时间: 60.245(毫秒) disql V7.6.0.171-Build(2019.07.02-109059)ENT SQL> select * from v$version; 行号 BANNER ---------- --------------------------------------------------------------- 1 DM Database Server x64 V7.6.0.171-Build(2019.07.02-109059)ENT 2 DB Version: 0x7000a 已用时间: 15.469(毫秒). 执行号:8. SQL>
至此,达梦数据库V7单实例的三种安装方式介绍完毕,下一篇我们进行达梦数据库静dminit工具使用以及服务注册的介绍。
静默安装所需的配置文件如下:
<?xml version="1.0"?> <DATABASE> <!--安装数据库语言配置,中文版ZH,英文版EN,不分大小写。不允许为空--> <LANGUAGE>zh</LANGUAGE> <!--安装数据库时区配置,默认值+08:00,范围-12:59~+14:00--> <TIME_ZONE>+08:00</TIME_ZONE> <!--key文件路径--> <KEY></KEY> <!--安装组件类型,默认0,取值范围0、1、2,0表示全部安装,1表示安装服务器,2表示安装客户端--> <INSTALL_TYPE>0</INSTALL_TYPE> <!--安装路径,不允许为空--> <INSTALL_PATH>/home/dmdba/dmdbms</INSTALL_PATH> <!--是否初始化库,取值Y/N、y/n,不允许为空--> <INIT_DB>Y</INIT_DB> <!--数据库实例参数--> <DB_PARAMS> <!--初始化文件dm.ini存放的路径--> <INI_FILE></INI_FILE> <!--初始化数据库存放路径,不允许为空--> <PATH>/home/dmdba/dmdbms/data</PATH> <!--控制文件路径,文件路径长度不超过256字符--> <CTL_PATHS > <CTL_PATH ></CTL_PATH > <CTL_PATH ></CTL_PATH > </CTL_PATHS> <!--日志文件路径,文件路径长度不超过256字符--> <LOG_PATHS> <LOG_PATH ></LOG_PATH > <LOG_PATH ></LOG_PATH > </LOG_PATHS> <!--数据文件使用的簇大小(16),可选值:16、32,单位:页--> <EXTENT_SIZE>16</EXTENT_SIZE> <!--数据页大小(8),可选值:4、8、16、32,单位:K--> <PAGE_SIZE>32</PAGE_SIZE> <!--日志文件大小(256),单位为:M,范围为:64M ~ 2G--> <LOG_SIZE>2048</LOG_SIZE> <!--大小敏感(Y),可选值:Y/N,1/0--> <CASE_SENSITIVE>N</CASE_SENSITIVE> <!--字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]--> <CHARSET>0</CHARSET> <!--安全特权模式(0),可选值:0[传统],1[bmj]--> <SEC_PRIV_MODE>0</SEC_PRIV_MODE> <!--VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0--> <LENGTH_IN_CHAR></LENGTH_IN_CHAR> <!--设置SYSDBA密码(SYSDBA),密码长度为9到48--> <SYSDBA_PWD>Dameng_123</SYSDBA_PWD> <!--设置SYSAUDITOR密码(SYSAUDITOR),密码长度为9到48--> <SYSAUDITOR_PWD> Dameng_123</SYSAUDITOR_PWD> <!--数据库名(DAMENG),不超过128字符--> <DB_NAME>TESTDB</DB_NAME> <!--实例名(DMSERVER),不超过128字符--> <INSTANCE_NAME>TESTDB</INSTANCE_NAME> <!--监听端口号(5236)--> <PORT_NUM>5236</PORT_NUM> <!--设置时区(+08:00)--> <TIME_ZONE></TIME_ZONE> <!--页检查模式(0),可选值:0/1/2--> <PAGE_CHECK></PAGE_CHECK> <!--设置默认加密算法--> <EXTERNAL_CIPHER_NAME></EXTERNAL_CIPHER_NAME> <!--设置默认HASH算法--> <EXTERNAL_HASH_NAME></EXTERNAL_HASH_NAME> <!--设置根密钥加密引擎--> <EXTERNAL_CRYPTO_NAME></EXTERNAL_CRYPTO_NAME> <!--设置日志文件是否加密(N),可选值:Y/N,1/0--> <RLOG_ENC_FLAG></RLOG_ENC_FLAG> <!--设置USBKEY PIN--> <USBKEY_PIN></USBKEY_PIN> <!--设置全库加密算法--> <ENCRYPT_NAME></ENCRYPT_NAME> <!--设置空格填充模式(0),可选值:0/1--> <BLANK_PAD_MODE></BLANK_PAD_MODE> <!--SYSTEM数据文件镜像路径--> <SYSTEM_MIRROR_PATH></SYSTEM_MIRROR_PATH> <!--MAIN数据文件镜像--> <MAIN_MIRROR_PATH></MAIN_MIRROR_PATH> <!--回滚文件镜像路径--> <ROLL_MIRROR_PATH></ROLL_MIRROR_PATH> <!--初始化时设置dm.ini中的MAL_INI(0)--> <MAL_FLAG></MAL_FLAG> <!--初始化时设置dm.ini中的ARCH_INI(0)--> <ARCH_FLAG></ARCH_FLAG> <!--Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)--> <MPP_FLAG></MPP_FLAG> <!--初始化配置文件(配置文件格式见系统管理员手册)--> <CONTROL></CONTROL> <!--是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖--> <AUTO_OVERWRITE></AUTO_OVERWRITE> <!--是否使用改进的字符类型HASH算法(1)--> <USE_NEW_HASH></USE_NEW_HASH> <!--是否是DCP代理模式(0)--> <DCP_MODE></DCP_MODE> <!--DCP代理模式下管理端口--> <DCP_PORT_NUM></DCP_PORT_NUM> <!--指定初始化过程中生成的日志文件所在路径--> <ELOG_PATH></ELOG_PATH> <!--在ECS模式下,AP监听器端口用于协同工作--> <AP_PORT_NUM></AP_PORT_NUM> </DB_PARAMS> <!--是否创建数据库实例服务(Y/N、 y/n),不能为空,非root用户不能创建数据库服务--> <CREATE_DB_SERVICE>N</CREATE_DB_SERVICE> <!--是否启动数据库实例服务(Y/N、 y/n),不能为空,非root用户不能创建数据库服务--> <STARTUP_DB_SERVICE>N</STARTUP_DB_SERVICE> </DATABASE>