达梦数据库(DM8)单机版安装教程

本文详细介绍了在Red Hat 7.7系统上安装达梦DM8数据库,包括软件包准备、图形化与命令行安装步骤,以及jdbc和odbc开发驱动的配置教程。适合DM8初学者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   

目录

一、安装准备

二、安装过程 

三、开发驱动配置


最近参加了达梦DCA课程的培训,培训内容主要包括国内外数据库现状介绍、DM8单机版部署、数据库创建及实例管理、SQL部分、DM8体系结构、表空间管理、用户与模式、备份与还原、作业管理、开发驱动配置等。

由于DM8很多概念类似Oracle,本文主要介绍DM8的安装部署及开发驱动配置,供大家参考。

一、安装准备

操作系统:RedHat7.7

备注:软件安装在普通用户dmdba下

0.软件安装包。
dm8_20211021_x86_rh6_64_ent.zip(官网下载的redhat7下的安装包)
dm.key(老师上课给的试用key)
1.操作系统内核设置
vi /etc/sysctl.conf 
kernel.shmall = 2097152 # 可以使用的共享内存的总量,单位:页。
kernel.shmmax = 2147483648 # 最大单个共享内存段大小。取物理内存大小的一半,单位为字节
kernel.shmmni = 4096 # 整个系统共享内存段的最大数目。
kernel.sem = 250 32000 100 128 # 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。
sysctl -p 设置生效

vi /etc/security/limits.conf ,添加以下内容
dmdba soft nofile 65536  
dmdba hard nofile 65536  
dmdba soft nproc 65536  
dmdba hard nproc 65536
检查命令
ulimit -a

2.防火墙设置
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
3.SeLinux设置
vi /etc/selinux/config,设置SELINUX=disabled,重启系统reboot
重启后检查
/usr/sbin/sestatus -v 
4.磁盘调度算法
cat /sys/block/vda/queue/scheduler
--根据实际按需设置
echo deadline > /sys/block/vda/queue/scheduler
5.内存参数
cat /proc/sys/vm/overcommit_memory  
建议设置为0。
6.禁用透明大页
cat /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
7.禁用numa
检查numa禁用
dmesg | grep -i numa
cat /proc/cmdline
如未禁用,参照以下步骤禁用:
vi /etc/default/grub , 加上:numa=off
GRUB_CMDLINE_LINUX="rhgb quiet intel_idle.max_cstate=0 processor.max_cstate=1 transparent_hugepage=never numa=off"
重新生成/etc/grub2.cfg 配置文件:
grub2-mkconfig -o /etc/grub2.cfg
重启系统reboot

二、安装过程 


命令行方式
1.解压挂载软件包
unzip dm8_20211021_x86_rh6_64_ent.zip
mkdir /dm8soft
mount /root/soft/dm8_20211021_x86_rh6_64_ent/dm8_20211021_x86_rh6_64_ent_8.1.2.84.iso /dm8soft
2.添加组、用户
groupadd dmdba
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
3.安装文件系统规划
mkdir /dm8
chown -R dmdba.dinstall /dm8
4.安装软件:注意key的路径写全,选择典型安装即可
cd /dm8soft

./DMInstall.bin 为图形化安装
./DMInstall.bin -i 命令行安装
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:y
请输入Key文件的路径地址 [dm.key]:/home/dmdba  
文件不存在,请检查此key文件路径是否正确:/home/dmdba
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:y           
请输入Key文件的路径地址 [dm.key]:/home/dmdba/dm.key
vi .bash_profile添加
PATH=$PATH:$HOME/bin:/dm8/bin
source .bash_profile
5.创建数据库
图形化 
/dm8/tool/dbca.sh --图形化方式按照选项提示,一步一步点下去即可。
命令行

[dmdba@dev3-bu-poc-dm8-test-1 ~]$ dminit help
initdb V8
db version: 0x7000c
License will expire on 2022-09-25
格式: ./dminit     KEYWORD=value

例程: ./dminit     PATH=/public/dmdb/dmData PAGE_SIZE=16

关键字                     说明(默认值)
--------------------------------------------------------------------------------
INI_FILE                   初始化文件dm.ini存放的路径
PATH                       初始数据库存放的路径
CTL_PATH                   控制文件路径
LOG_PATH                   日志文件路径
EXTENT_SIZE                数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
PAGE_SIZE                  数据页大小(8),可选值:4, 8, 16, 32,单位:K
LOG_SIZE                   日志文件大小(256),单位为:M,范围为:256M ~ 2G
CASE_SENSITIVE             大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG       字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
SEC_PRIV_MODE              权限管理模式(0),可选值:0[TRADITION],1[BMJ],2[EVAL]
LENGTH_IN_CHAR             VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
SYSDBA_PWD                 设置SYSDBA密码(SYSDBA)
SYSAUDITOR_PWD             设置SYSAUDITOR密码(SYSAUDITOR)
DB_NAME                    数据库名(DAMENG)
INSTANCE_NAME              实例名(DMSERVER)
PORT_NUM                   监听端口号(5236)
BUFFER                     系统缓存大小(100),单位M
TIME_ZONE                  设置时区(+08:00)
PAGE_CHECK                 页检查模式(0),可选值:0/1/2
PAGE_HASH_NAME             设置页检查HASH算法
EXTERNAL_CIPHER_NAME       设置默认加密算法
EXTERNAL_HASH_NAME         设置默认HASH算法
EXTERNAL_CRYPTO_NAME       设置根密钥加密引擎
RLOG_ENC_FLAG              设置日志文件是否加密(N),可选值:Y/N,1/0
USBKEY_PIN                 设置USBKEY PIN
PAGE_ENC_SLICE_SIZE        设置页加密分片大小,可选值:0、512、4096,单位:Byte
ENCRYPT_NAME               设置全库加密算法
BLANK_PAD_MODE             设置空格填充模式(0),可选值:0/1
SYSTEM_MIRROR_PATH         SYSTEM数据文件镜像路径
MAIN_MIRROR_PATH           MAIN数据文件镜像
ROLL_MIRROR_PATH           回滚文件镜像路径
MAL_FLAG                   初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG                  初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAG                   Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)
CONTROL                    初始化配置文件(配置文件格式见系统管理员手册)
AUTO_OVERWRITE             是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖
USE_NEW_HASH               是否使用改进的字符类型HASH算法(1)
ELOG_PATH                  指定初始化过程中生成的日志文件所在路径
AP_PORT_NUM                ECS模式下AP协同工作的监听端口
DFS_FLAG                   初始化时设置dm.ini中的DFS_INI(0)
DFS_PATH                   启用dfs时指定数据文件的缺省路径
DFS_HOST                   指定连接分布式系统DFS的服务地址(localhost)
DFS_PORT                   指定连接分布式系统DFS的服务端口号(3332)
DFS_COPY_NUM               指定分布式系统的副本数(3)
DFS_DB_NAME                指定分布式系统的中数据库名(默认与DB_NAME一致)
SHARE_FLAG                 指定分布式系统中该数据库的共享属性(0)
REGION_MODE                指定分布式系统中该数据库的系统表空间数据文件的区块策略(0) 0:微区策略 1:宏区策略
HUGE_WITH_DELTA            是否仅支持创建事务型HUGE表(1) 1:是 0:否
RLOG_GEN_FOR_HUGE          是否生成HUGE表REDO日志(0) 1:是 0:否
PSEG_MGR_FLAG              是否仅使用管理段记录事务信息(0) 1:是 0:否
CHAR_FIX_STORAGE           CHAR是否按定长存储(N),可选值:Y/N,1/0
SQL_LOG_FORBID             是否禁止打开SQL日志(N),可选值:Y/N,1/0
HELP                       打印帮助信息


mkdir /dm8/DAMENG
dminit  path=/dm8/DAMENG db_name=DAMENG instance_name=DMSERVER port_num=5236
root执行以下命令注册服务

/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm8/DAMENG/DAMENG/dm.ini -p DMSERVER
systemctl start DmServiceDMSERVER
systemctl status DmServiceDMSERVER

连接数据库
disql sysdba/SYSDBA@192.168.122.9:5236


6.配置客户端连接串
配置文件路径
/etc/dm_svc.conf   --Linux环境
C:\Windows\SysWOW64\dm_svc.conf --Windows环境
[root@dev3-bu-poc-dm8-test-1 ~]# cat /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
AAA=(192.168.122.9:5236)

连接测试: 

disql sysdba/SYSDBA@AAA

三、开发驱动配置

1.jdbc方式配置

测试文件

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test
{
    private static String url = "jdbc:dm://192.168.122.9:5236";
    
    private static String username = "SYSDBA";
    
    private static String password = "SYSDBA";
    
    private static String sql = "select sysdate";
    
    public static void main(String[] args)
    {
        Connection connection = null;
        Statement stmt = null;
        try
        {
            Class.forName("dm.jdbc.driver.DmDriver");
            connection = DriverManager.getConnection(url, username, password);
            stmt = connection.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next())
            {
                System.out.println(rs.getString(1));
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (stmt != null)
                {
                    stmt.close();
                }
                if (connection != null)
                {
                    connection.close();
                }
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }
    }
}

驱动包在安装目录drivers下:/dm8/drivers/jdbc/DmJdbcDriver18.jar
/dm8/jdk/bin/javac Test.java
/dm8/jdk/bin/java -Xbootclasspath/a:/dm8/drivers/jdbc/DmJdbcDriver18.jar Test

2.odbc方式配置
yum  install unixODBC
注意生成的文件权限 644
-rw-r--r--   1 root  root        660 Apr  8 16:48 odbcinst.ini
-rw-r--r--   1 root  root        126 Apr  8 16:51 odbc.ini

[root@dev3-bu-poc-dm8-test-1 ~]# cat /etc/odbc.ini 
[DM8]
Description = DM ODBC DSN
Driver  = DM8 ODBC DRIVER
SERVER  = 192.168.122.9
UID  = SYSDBA
PWD  = SYSDBA
TCP_PORT = 5236

cat /etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /dm8/bin/libdodbc.so

测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值