达梦DM8 MPPDB集群搭建及使用

本文涉及的产品
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 作者:陈云亮,系深圳某数据治理厂商,有10余年IT从业经验,在数据仓库,传统数据库和大数据领域有丰富的实战经验。基于三节点搭建DM8 MPPDB集群方案具体步骤,可操作性强。

环境信息

主机IP

主机名

用户名

172.16.1.118

ha01

root

172.16.1.135

ha02

root

172.16.1.98

ha03

root

搭建本地yum源

将iso镜像上传到 172.16.1.118 ,以118节点为yum源服务

登陆172.16.1.118

1、安装httpd服务

yum install -y httpd net-tools

2、修改配置

ip_addr=$(ifconfig | grep -1 'RUNNING' | grep netmask | grep -v "127.0.0.1" | awk 'NR==1{print $2}')sed-i"s/^ServerAdmin.*/ServerAdmin root@${ip_addr}/g" /etc/httpd/conf/httpd.conf 
sed-i"s/^#ServerName www.*/ServerName ${ip_addr}/g" /etc/httpd/conf/httpd.conf 
sed-i"s/Listen 80/Listen ${ip_addr}:18080/g" /etc/httpd/conf/httpd.conf

3、启动httpd服务

systemctl enable httpd
systemctl start httpd
systemctl status httpd

4、挂载 iso 到 os_media

mount /root/CentOS-7.6-x86_64-DVD-1810.iso /media/ -o loop 
ln-s /media /var/www/html/os_media

5、备份repo

find /etc/yum.repos.d -iname'*.repo' | xargs -i-tmv {} {}.bk

6、创建本地repo

echo-e"[os] \nname=Linux OS Packages \nbaseurl=http://${ip_addr}:18080/os_media \ngpgcheck=0 \nproxy=_none_" > /etc/yum.repos.d/os.repo

7、更新 yum 源

yum clean all
yum makecache
yum repolist

image.png


8、关闭防火墙

所有节点都需要关闭

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

分别登陆172.16.1.135和172.16.1.98,执行下面操作

# 配置118为yum源ip_addr="172.16.1.118"find /etc/yum.repos.d -iname'*.repo' | xargs -i-tmv {} {}.bk
echo-e"[os] \nname=Linux OS Packages \nbaseurl=http://${ip_addr}:18080/os_media \ngpgcheck=0 \nproxy=_none_" > /etc/yum.repos.d/os.repo
# 更新yum源yum clean all 
yum makecache 
yum repolist

image.png

image.png


DM MPPDB架构

DM MPP采用完全对等不共享架构,具体的系统架构如下:

image.png


完全对等不共享,继承了完全不共享架构的优点,且各节点完全对等,不需要专用硬件,不存在主控节点,消除了潜在瓶颈以及单节点故障问题。

DM MPP中的每一个DM数据库服务器实例作为一个执行节点,简称EP。客户端可连接任意一个EP节点进行操作,所有EP对客户来说都是对等的。

MAL 系统是 DM 数据库实例间的高速通信系统,是基于 TCP 协议实现的一种内部通信机制,具有可靠、灵活、高效的特性。DM通过MAL系统实现实例间的消息通讯。

DM MPPDB集群安装

资源规划


主机IP

INSTANCE_NAME

MAL_INST_PORT

MAL_PORT

MPP_SEQNO

172.16.1.118

EP0

5236

5269

0

172.16.1.135

EP1

5237

5270

1

172.16.1.98

EP3

5238

5271

2


EP0节点安装DM8

将安装包上传到 172.16.1.118的 /opt 目录

image.png


挂载安装包

使用root用户挂载

mount /opt/dm8_setup_rh6_64_sec_8.1.1.88_20200701.iso /mnt/ -o loop
ls-ltr /mnt

image.png

创建安装用户

使用root用户创建

# 创建组 dinstallgroupadd -g12349 dinstall
# 创建用户 dmdbauseradd -u12345-g dinstall -m-d /home/dmdba -s /bin/bash dmdba
#初始化密码为:dmdbapasswd dmdba

创建安装目录

mkdir /dm8
chown dmdba:dinstall /dm8

操作系统配置

使用root用户配置

echo"*                 hard    core           0*                 hard    nofile         655360*                 soft    nofile         655360*                 soft    nproc          655360*                 hard    nproc          655360*                 hard    memlock    unlimited*                 soft    memlock    unlimited" >> /etc/security/limits.conf
# 检查,重新打开会话生效cat /etc/security/limits.conf
ulimit -a#关闭防火墙systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

image.png


安装JDK

使用root用户,通过yum安装jdk1.8

yum install -y java-1.8.0-openjdk-devel
echo"export DM_JAVA_HOME=/etc/alternatives/java_sdk_1.8.0" >> /etc/profile
source /etc/profile
# 检查echo$DM_JAVA_HOME

命令行安装

# 切换用户 dmdbasu- dmdba
# 进入挂载目录cd /mnt/
[dmdba@ha01 mnt]$ ./DMInstall.bin -iPlease select the installer's language (E/e:English C/c:Chinese) [E/e]:c解压安装程序.........欢迎使用达梦数据库安装程序是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n是否设置时区? (Y/y:是 N/n:否) [Y/y]:y设置时区:[ 1]: GTM-12=日界线西[ 2]: GTM-11=萨摩亚群岛[ 3]: GTM-10=夏威夷[ 4]: GTM-09=阿拉斯加[ 5]: GTM-08=太平洋时间(美国和加拿大)[ 6]: GTM-07=亚利桑那[ 7]: GTM-06=中部时间(美国和加拿大)[ 8]: GTM-05=东部部时间(美国和加拿大)[ 9]: GTM-04=大西洋时间(美国和加拿大)[10]: GTM-03=巴西利亚[11]: GTM-02=中大西洋[12]: GTM-01=亚速尔群岛[13]: GTM=格林威治标准时间[14]: GTM+01=萨拉热窝[15]: GTM+02=开罗[16]: GTM+03=莫斯科[17]: GTM+04=阿布扎比[18]: GTM+05=伊斯兰堡[19]: GTM+06=达卡[20]: GTM+07=曼谷,河内[21]: GTM+08=中国标准时间[22]: GTM+09=汉城[23]: GTM+10=关岛[24]: GTM+11=所罗门群岛[25]: GTM+12=斐济[26]: GTM+13=努库阿勒法[27]: GTM+14=基里巴斯请选择设置时区 [21]:21安装类型:1 典型安装2 服务器3 客户端4 自定义请选择安装类型的数字序号 [1 典型安装]:41 服务器组件2 客户端组件  2.1 DM管理工具  2.2 DM性能监视工具  2.3 DM数据迁移工具  2.4 DM控制台工具  2.5 DM审计分析工具  2.6 SQL交互式查询工具3 驱动4 用户手册5 数据库服务  5.1 实时审计服务  5.2 作业服务  5.3 实例监控服务  5.4 辅助插件服务请选择安装组件的序号 (使用空格间隔) [1 2 3 4 5]:1 2 3 4 5所需空间: 1044M请选择安装目录 [/home/dmdba/dmdbms]:/dm8可用空间: 1442G是否确认安装路径(/dm8)? (Y/y:是 N/n:否)  [Y/y]:y安装前小结安装位置: /dm8所需空间: 1044M可用空间: 1442G版本信息:有效日期:安装类型: 自定义是否确认安装? (Y/y:是 N/n:否):y2021-04-14 15:16:55[INFO] 安装达梦数据库...2021-04-14 15:16:56[INFO] 安装 基础 模块...2021-04-14 15:16:58[INFO] 安装 服务器 模块...2021-04-14 15:16:58[INFO] 安装 客户端 模块...2021-04-14 15:17:00[INFO] 安装 驱动 模块...2021-04-14 15:17:00[INFO] 安装 手册 模块...2021-04-14 15:17:00[INFO] 安装 服务 模块...2021-04-14 15:17:01[INFO] 移动ant日志文件。2021-04-14 15:17:01[INFO] 安装达梦数据库完成。请以root系统用户执行命令:/dm8/script/root/root_installer.sh安装结束

配置环境变量

使用root用户配置

echo"export DM_HOME=/dm8" >> /etc/profile
echo"export PATH=\$PATH:\$DM_HOME/bin:\$DM_HOME/tool" >> /etc/profile
source /etc/profile
which dminit

卸载DM8

可以忽略

su- dmdba
cd /dm8/dmdbms/
[dmdba@ha01 dmdbms]$ sh uninstall.sh -i请确认是否卸载达梦数据库(/dm8/dmdbms/)? (y/Y:是 n/N:否):y
是否删除dm_svc.conf配置文件? (y/Y:是 n/N:否):y
正在删除数据库目录
删除bin目录
删除bin目录完成
删除bin2目录
删除bin2目录完成
删除include目录
删除include目录完成
删除desktop目录
删除desktop目录完成
删除doc目录
删除doc目录完成
删除drivers目录
删除drivers目录完成
删除jdk目录
删除jdk目录完成
删除jar目录
删除jar目录完成
删除samples目录
删除samples目录完成
删除script目录
删除script目录完成
删除tool目录
删除tool目录完成
删除web目录
删除web目录完成
删除uninstall目录
删除uninstall目录完成
删除license_en.txt文件
删除license_en.txt文件完成
删除license_zh.txt文件
删除license_zh.txt文件完成
删除uninstall.sh文件
删除uninstall.sh文件完成
删除数据库目录完成
使用root用户执行命令:
/dm8/dmdbms/root_uninstaller.sh
# 清理目录rm-rf /dm8/*

初始化数据库实例

1、根据规划的信息,初始化实例(注意:此处不同节点有差异

su- dmdba
cd /dm8/bin
# 因为已经添加到path,所以可以直接使用 dminitdminit PATH=/dm8/data PAGE_SIZE=16CASE_SENSITIVE=1CHARSET=1DB_NAME=DMDB INSTANCE_NAME=EP0 PORT_NUM=5236MAL_FLAG=1MPP_FLAG=1

2、配置 dmmal.ini

dmmal.ini 是 MAL 系统的配置文件,此配置文件生效的前提是 dm.ini 中的参数  MAL_INI置为1。

为3个EP 配置 dmmal.ini如下,配置完全一样:

echo"[MAL_INST1]MAL_INST_NAME = EP0MAL_HOST = 172.16.1.118MAL_PORT = 5269MAL_INST_HOST = 172.16.1.118MAL_INST_PORT = 5236[MAL_INST2]MAL_INST_NAME = EP1MAL_HOST = 172.16.1.135MAL_PORT = 5270MAL_INST_HOST = 172.16.1.135MAL_INST_PORT = 5237[MAL_INST3]MAL_INST_NAME = EP2MAL_HOST = 172.16.1.98MAL_PORT = 5271MAL_INST_HOST = 172.16.1.98MAL_INST_PORT = 5238" > /dm8/data/DMDB/dmmal.ini


3、配置dmmpp.ini

echo"[SERVICE_NAME1]MPP_SEQ_NO = 0MPP_INST_NAME = EP0[SERVICE_NAME2]MPP_SEQ_NO = 1MPP_INST_NAME = EP1[SERVICE_NAME3]MPP_SEQ_NO = 2MPP_INST_NAME = EP2" > /dm8/data/DMDB/dmmpp.ini

4、配置 dmmpp.ctl

dmmpp.ctl是DM MPP系统的控制文件,它是一个二进制文件,用户不能直接进行配 置。用户需要首先配置dmmpp.ini,然后利用 dmctlcvt 工具进行转换得到生成的dmmpp.ctl 文件。

dmctlcvt type=2SRC=/dm8/data/DMDB/dmmpp.ini DEST=/dm8/data/DMDB/dmmpp.ctl

5、启动数据库实例

前端方式启动,一旦关闭界面,服务停止(不推荐,但要先执行一次,启动一次成功后,Ctrl+C停止)

dmserver /dm8/data/DMDB/dm.ini

6、配置系统服务

su- root
cd /dm8/script/root/
sh dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dm8/data/DMDB/dm.ini
# 修改资源限制sed-i"5 i LimitCORE=infinity" /usr/lib/systemd/system/DmServiceDMSERVER.service
sed-i"5 i LimitNPROC=65536" /usr/lib/systemd/system/DmServiceDMSERVER.service
sed-i"5 i LimitNOFILE=65536" /usr/lib/systemd/system/DmServiceDMSERVER.service
# 使配置生效systemctl daemon-reload

image.png


通过系统服务命令启动(推荐)

systemctl restart DmServiceDMSERVER
systemctl status DmServiceDMSERVER

EP1节点安装DM8

从EP0复制安装包到/opt目录,在EP1节点执行

scp 172.16.1.118:/opt/dm8_setup_rh6_64_sec_8.1.1.88_20200701.iso /opt

挂载安装包

使用root用户挂载

mount /opt/dm8_setup_rh6_64_sec_8.1.1.88_20200701.iso /mnt/ -o loop
ls-ltr /mnt

image.png


创建安装用户

使用root用户创建

# 创建组 dinstallgroupadd -g12349 dinstall
# 创建用户 dmdbauseradd -u12345-g dinstall -m-d /home/dmdba -s /bin/bash dmdba
#初始化密码为:dmdbapasswd dmdba

创建安装目录

mkdir /dm8
chown dmdba:dinstall /dm8

操作系统配置

使用root用户配置

echo"*                 hard    core           0*                 hard    nofile         655360*                 soft    nofile         655360*                 soft    nproc          655360*                 hard    nproc          655360*                 hard    memlock    unlimited*                 soft    memlock    unlimited" >> /etc/security/limits.conf
# 检查,重新打开会话生效cat /etc/security/limits.conf
ulimit -a#关闭防火墙systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

安装JDK

使用root用户,通过yum安装jdk1.8

yum install -y java-1.8.0-openjdk-devel
echo"export DM_JAVA_HOME=/etc/alternatives/java_sdk_1.8.0" >> /etc/profile
source /etc/profile
# 检查echo$DM_JAVA_HOME

命令行安装

# 切换用户 dmdbasu- dmdba
# 进入挂载目录cd /mnt/
# 与EP0安装一致,过程略..../DMInstall.bin -i

配置环境变量

使用root用户配置

echo"export DM_HOME=/dm8" >> /etc/profile
echo"export PATH=\$PATH:\$DM_HOME/bin:\$DM_HOME/tool" >> /etc/profile
source /etc/profile
which dminit 

初始化数据库实例

1、根据规划的信息,初始化实例(注意:此处不同节点有差异

su- dmdba
cd /dm8/bin
# 因为已经添加到path,所以可以直接使用 dminitdminit PATH=/dm8/data PAGE_SIZE=16CASE_SENSITIVE=1CHARSET=1DB_NAME=DMDB INSTANCE_NAME=EP1 PORT_NUM=5237MAL_FLAG=1MPP_FLAG=1

2、配置 dmmal.ini

从EP0复制即可

scp 172.16.1.118:/dm8/data/DMDB/dmmal.ini /dm8/data/DMDB/

3、配置dmmpp.ini

从EP0复制即可

scp 172.16.1.118:/dm8/data/DMDB/dmmpp.ini /dm8/data/DMDB/


4、配置 dmmpp.ctl

从EP0复制即可

scp 172.16.1.118:/dm8/data/DMDB/dmmpp.ctl /dm8/data/DMDB/

5、启动数据库实例

启动一次成功后,Ctrl+C停止

dmserver /dm8/data/DMDB/dm.ini

6、配置系统服务

su- root
cd /dm8/script/root/
sh dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dm8/data/DMDB/dm.ini
# 修改资源限制sed-i"5 i LimitCORE=infinity" /usr/lib/systemd/system/DmServiceDMSERVER.service
sed-i"5 i LimitNPROC=65536" /usr/lib/systemd/system/DmServiceDMSERVER.service
sed-i"5 i LimitNOFILE=65536" /usr/lib/systemd/system/DmServiceDMSERVER.service
# 使配置生效systemctl daemon-reload

通过系统服务命令启动(推荐)

systemctl restart DmServiceDMSERVER
systemctl status DmServiceDMSERVER

EP2节点安装DM8

从EP0复制安装包到/opt目录,在EP2节点执行

scp 172.16.1.118:/opt/dm8_setup_rh6_64_sec_8.1.1.88_20200701.iso /opt


挂载安装包

使用root用户挂载

mount /opt/dm8_setup_rh6_64_sec_8.1.1.88_20200701.iso /mnt/ -o loop
ls-ltr /mnt



创建安装用户

使用root用户创建

# 创建组 dinstallgroupadd -g12349 dinstall
# 创建用户 dmdbauseradd -u12345-g dinstall -m-d /home/dmdba -s /bin/bash dmdba
#初始化密码为:dmdbapasswd dmdba



创建安装目录

mkdir /dm8
chown dmdba:dinstall /dm8

操作系统配置

使用root用户配置

echo"*                 hard    core           0*                 hard    nofile         655360*                 soft    nofile         655360*                 soft    nproc          655360*                 hard    nproc          655360*                 hard    memlock    unlimited*                 soft    memlock    unlimited" >> /etc/security/limits.conf
# 检查,重新打开会话生效cat /etc/security/limits.conf
ulimit -a#关闭防火墙systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

安装JDK

使用root用户,通过yum安装jdk1.8

yum install -y java-1.8.0-openjdk-devel
echo"export DM_JAVA_HOME=/etc/alternatives/java_sdk_1.8.0" >> /etc/profile
source /etc/profile
# 检查echo$DM_JAVA_HOME

命令行安装

# 切换用户 dmdbasu- dmdba
# 进入挂载目录cd /mnt/
# 与EP0安装一致,过程略..../DMInstall.bin -i

配置环境变量

使用root用户配置

echo"export DM_HOME=/dm8" >> /etc/profile
echo"export PATH=\$PATH:\$DM_HOME/bin:\$DM_HOME/tool" >> /etc/profile
source /etc/profile
which dminit 


卸载DM8

参考EP0,可以忽略

初始化数据库实例

1、根据规划的信息,初始化实例(注意:此处不同节点有差异

su- dmdba
cd /dm8/bin
# 因为已经添加到path,所以可以直接使用 dminitdminit PATH=/dm8/data PAGE_SIZE=16CASE_SENSITIVE=1CHARSET=1DB_NAME=DMDB INSTANCE_NAME=EP2 PORT_NUM=5238MAL_FLAG=1MPP_FLAG=1


2、配置 dmmal.ini

从EP0复制即可

scp 172.16.1.118:/dm8/data/DMDB/dmmal.ini /dm8/data/DMDB/

3、配置dmmpp.ini

从EP0复制即可

scp 172.16.1.118:/dm8/data/DMDB/dmmpp.ini /dm8/data/DMDB/

4、配置 dmmpp.ctl

从EP0复制即可

scp 172.16.1.118:/dm8/data/DMDB/dmmpp.ctl /dm8/data/DMDB/

5、启动数据库实例

启动一次成功后,Ctrl+C停止

dmserver /dm8/data/DMDB/dm.ini


6、配置系统服务

su- root
cd /dm8/script/root/
sh dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dm8/data/DMDB/dm.ini
# 修改资源限制sed-i"5 i LimitCORE=infinity" /usr/lib/systemd/system/DmServiceDMSERVER.service
sed-i"5 i LimitNPROC=65536" /usr/lib/systemd/system/DmServiceDMSERVER.service
sed-i"5 i LimitNOFILE=65536" /usr/lib/systemd/system/DmServiceDMSERVER.service
# 使配置生效systemctl daemon-reload

通过系统服务命令启动(推荐)

systemctl restart DmServiceDMSERVER
systemctl status DmServiceDMSERVER

安装DEM

在172.16.1.118上安装dem,前置条件

1、已经安装jdk、dm8单机版(172.16.1.116)

2、安装tomcat

下载 https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.65/bin/apache-tomcat-8.5.65.tar.gz 并上传到  /opt 目录


tar -zxvf /opt/apache-tomcat-8.5.65.tar.gz -C /opt

3、配置tomcat


# 1、修改server.xml, 找到下面行追加属性: maxPostSize="-1"vi /opt/apache-tomcat-8.5.65/conf/server.xml
    <Connector port="8080"protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443"maxPostSize="-1" />
# 2、修改 catalina.shvi /opt/apache-tomcat-8.5.65/bin/catalina.sh
#JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources"JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"exportTOMCAT_HOME=/opt/apache-tomcat-8.5.65
exportCATALINA_HOME=/opt/apache-tomcat-8.5.65
# 3、授权chmod-R755 /opt/apache-tomcat-8.5.65

4、复制dem.war到webapps


cp /dm8/web/dem.war /opt/apache-tomcat-8.5.65/webapps

5、初始化dem数据库

初始化数据库,118上dmdba用户

disql SYSDBA/SYSDBA@172.16.1.116:5236
set char_code utf8
start /dm8/web/dem_init.sql

5、启动tomcat,解压dem

sh /opt/apache-tomcat-8.5.65/bin/startup.sh

6、停止tomcat

ps-ef | grep tomcat | grep-vgrep | awk'{print $2}' | xargs -rkill-9

7、修改db.xml

vi /opt/apache-tomcat-8.5.65/webapps/dem/WEB-INF/db.xml

<?xml version="1.0"encoding="UTF-8"?>
<ConnectPool>
        <Server>172.16.1.116</Server>
        <Port>5236</Port>
        <User>SYSDBA</User>
        <Password>SYSDBA</Password>
        <InitPoolSize>50</InitPoolSize>
        <CorePoolSize>100</CorePoolSize>
        <MaxPoolSize>500</MaxPoolSize>
        <KeepAliveTime>60</KeepAliveTime>
        <DbDriver></DbDriver>
        <DbTestStatement>select 1</DbTestStatement>
        <SSLDir>../sslDir/client_ssl/SYSDBA</SSLDir>
        <SSLPassword></SSLPassword>
</ConnectPool>

重启tomcat后访问

查看日志

tail -f /opt/apache-tomcat-8.5.65/logs/catalina.out

访问DEM

http://172.16.1.118:8080/dem

用户名/密码:admin/888888

image.png

dmagent部署

在172.16.1.118上操作,其他两个节点操作一样

su- dmdba
cd /dm8/tool/dmagent
vi config.properties
# 修改 center.urlcenter.url=http://172.16.1.118:8080/dem
# 使用root启动服务    su- root
cd /dm8/tool/dmagent
./DMAgentService.sh install
./DMAgentService.sh restart

此时界面上即可在【监控及告警-主机】中查看到

image.png


集群使用

登陆集群

1、通过DM管理工具

通过windows安装包进行安装,选择安装DM管理工具即可

image.png


2、通过命令行

找其中一个节点,使用dmdba用户

disql SYSDBA/SYSDBA@localhost:5236
# 设置字符集SET CHAR_CODE UTF8
# 设置自动提交SET AUTOCOMMIT ON
# 获取本会话连接的EP序号SELECT SF_GET_SELF_EP_SEQNO();
# 获取当前会话连接的实例名SELECT NAME FROM V$INSTANCE WHERE SF_GET_EP_SEQNO(ROWID) = SF_GET_SELF_EP_SEQNO();


DDL和DML

以下基于命令行操作

创建schema

CREATE SCHEMA CYL;

创建哈希分布表T_HASH,分布列为C1

DROPTABLE IF EXISTS CYL.T_HASH;CREATETABLE CYL.T_HASH(C1 INT,C2 INT,C3 INT,C4 VARCHAR(10)) DISTRIBUTED BY HASH(C1);DECLARE
i INT;BEGINFOR i IN1..1000 LOOP
INSERTINTO CYL.T_HASHVALUES(i,i+1,i+2,'adasf');END LOOP;END;/COMMIT;SELECT*FROM CYL.T_HASH;

查看EP节点

SELECT*FROM V$MPP_CFG_ITEM;SELECT*FROM V$MPP_CFG_ITEM WHERE SF_GET_EP_SEQNO(ROWID)= SF_GET_SELF_EP_SEQNO();

查看数据在各节点分布情况:

CALL SP_GET_EP_COUNT('CYL','T_HASH');

查看某一节点存储的表中的数据:

SELECT*FROM CYL.T_HASHWHERE EP_SEQNO('T_HASH')=2LIMIT10;

一般常用SQL

# 设置当前模式
SET SCHEMA CYL;# 查询建表
CREATETABLE NEW_T_HASH1 ASSELECT*FROM T_HASH;SELECT*FROM NEW_T_HASH;# 查看表的定义,不区分大小写
DESCRIBE NEW_T_HASH;--只能命令行查看CALL SP_TABLEDEF('CYL','NEW_T_HASH');# 创建自动增长列
CREATETABLE IDENT_TABLE( C1 INT IDENTITY(100,100), C2 INT);INSERTINTO IDENT_TABLE VALUES(1),(2),(3);SELECT*FROM IDENT_TABLE;# IDENT_CURRENT:获得表上自增列的当前值 # IDENT_SEED:获得表上自增列的种子信息 # IDENT_INCR:获得表上自增列的增量信息
SELECT IDENT_CURRENT('CYL.IDENT_TABLE');SELECT IDENT_SEED('CYL.IDENT_TABLE');SELECT IDENT_INCR('CYL.IDENT_TABLE');# 查看表的空间使用
SELECT TABLE_USED_SPACE('CYL','IDENT_TABLE');# 创建水平分区表
# 注意:水平分区表及垂直分区表不能包含自增列,单表默认分区大小:当 MAX_EP_SITES 为默认值 64 时,分区总数上 限为 1024CREATETABLE t_partition (C1 INT,C2 VARCHAR(15), C3 VARCHAR(15),etl_dt DATETIME)        PARTITION BY RANGE(etl_dt)(                PARTITION p1 VALUES LESS THAN ('2021-4-13'),                PARTITION p2 VALUES LESS THAN ('2021-4-14'),                PARTITION p3 VALUES LESS THAN ('2021-4-15'),                PARTITION p4 VALUES EQU
OR LESS THAN ('2021-4-30'));SELECT*FROM t_partition;# 查看数据库版本信息
SELECT*FROM V$VERSION;select id_code;SELECT*FROM V$DATABASE;# 查看系统函数
SELECT*FROM V$IFUN WHERE NAME LIKE'%parti%';

执行sql文件

# sql文件内容:
-- 设置当前模式SET SCHEMA CYL;SET AUTOCOMMIT ON;SET CHAR_CODE UTF8;-- 查询建表DROPTABLE IF EXISTS NEW_T_HASH1;CREATETABLE NEW_T_HASH1 ASSELECT*FROM T_HASH;EXIT
# 非交互式执行
disql SYSDBA/SYSDBA@172.16.1.135:5237  << EOF
start /home/dmdba/test.sqlEOF
# 或者
disql SYSDBA/SYSDBA@172.16.1.135:5237   \`/home/dmdba/test.sql# 或者 -S 隐藏模式
disql -S SYSDBA/SYSDBA@172.16.1.135:5237   \`/home/dmdba/test.sql

创建用户授权

# 创建用户授权, 密码最好不要带特殊字符,否则要转义
create user dses_user identified by Huaao1234;grant resource,dba to dses_user;create user dcf_user identified by Huaao1234;grant resource,dba to dcf_user;create user dqms_user identified by Huaao1234;grant resource,dba to dqms_user;# 删除用户
drop user dses_user cascade;drop user dcf_user cascade;drop user dqms_user cascade;

参考系统参数

select PARA_NAME,PARA_VALUE,'服务器能使用的最大内存占操作系统物理内存与虚拟内存总和的百分比' describe fromSYS."V$DM_INI"where PARA_NAME ='MAX_OS_MEMORY'union ALL
select PARA_NAME,PARA_VALUE ,'共享内存池大小' describe 
from SYS."V$DM_INI"where PARA_NAME ='MEMORY_POOL'union ALL
select PARA_NAME,PARA_VALUE ,'共享内存池扩充大小限制'describe from SYS."V$DM_INI"where PARA_NAME ='MEMORY_TARGET'union ALL
select PARA_NAME,PARA_VALUE ,'用于缓存数据页,一般配置为操作系统物理内存的 60%~80%' describe from SYS."V$DM_INI"where PARA_NAME ='BUFFER'union ALL
select PARA_NAME,PARA_VALUE ,'用于控制系统缓冲区的上限'describe from SYS."V$DM_INI"where PARA_NAME ='MAX_BUFFER'union ALL
select PARA_NAME,PARA_VALUE ,'BUFFER 的分区数,一般配置为质数,取值范围为 1~512' describe from SYS."V$DM_INI"where PARA_NAME ='BUFFER_POOLS'union ALL
select PARA_NAME,PARA_VALUE ,'高并发或大量使用 with、临时表、排序等应该适当调整' describe from SYS."V$DM_INI"where PARA_NAME ='RECYCLE'union ALL
select PARA_NAME,PARA_VALUE ,'RECYCLE 的分区数' describe 
from SYS."V$DM_INI"where PARA_NAME ='RECYCLE_POOLS'union ALL
select PARA_NAME,PARA_VALUE ,'HASH 连接操作符的数据总缓存大小' describe from SYS."V$DM_INI"where PARA_NAME ='HJ_BUF_GLOBAL_SIZE'union ALL  
select PARA_NAME,PARA_VALUE ,'单个 HASH 连接操作符的数据总缓存大小' describe from SYS."V$DM_INI"where PARA_NAME ='HJ_BUF_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'字典缓冲区大小' describe 
from SYS."V$DM_INI"where PARA_NAME ='DICT_BUF_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'默认创建的临时表空间大小'describe from SYS."V$DM_INI"where PARA_NAME ='TEMP_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'系统执行时虚拟机内存池大小'describe from SYS."V$DM_INI"where PARA_NAME ='VM_POOL_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'会话缓冲区大小,以 KB 为单位'describe from SYS."V$DM_INI"where PARA_NAME ='SESS_POOL_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'SQL 缓冲池大小' describe 
from SYS."V$DM_INI"where PARA_NAME ='CACHE_POOL_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'工作线程个数' describe 
from SYS."V$DM_INI"where PARA_NAME ='WORKER_THREADS'union ALL
select PARA_NAME,PARA_VALUE ,'任务线程个数' describe 
from SYS."V$DM_INI"where PARA_NAME ='TASK_THREADS'union all
select PARA_NAME,PARA_VALUE ,'系统允许同时连接的最大数'describe from SYS."V$DM_INI"where PARA_NAME ='MAX_SESSIONS'union ALL
select PARA_NAME,PARA_VALUE ,'单个会话上允许同时打开的语句句柄最大数' describe from SYS."V$DM_INI"where PARA_NAME 
='MAX_SESSION_STATEMENT'union ALL
select PARA_NAME,PARA_VALUE ,'是否重用执行计划' describe 
from SYS."V$DM_INI"where PARA_NAME ='USE_PLN_POOL'union ALL
select PARA_NAME,PARA_VALUE ,'OLTP设置 2,OLAP设置 1'describe from SYS."V$DM_INI"where PARA_NAME ='OLAP_FLAG'union ALL
select PARA_NAME,PARA_VALUE ,'是否使用新优化器模式。'describe from SYS."V$DM_INI"where PARA_NAME ='OPTIMIZER_MODE'union ALL
select PARA_NAME,PARA_VALUE ,'是否对视图进行上拉优化'describe from SYS."V$DM_INI"where PARA_NAME ='VIEW_PULLUP_FLAG'union ALL
select PARA_NAME,PARA_VALUE ,'兼容模式,0:不兼容,1:SQL92,2:ORACLE 3:SQL SERVER,4: MYSQL' describe  fromSYS."V$DM_INI"where PARA_NAME ='COMPATIBLE_MODE'union ALL
select PARA_NAME,PARA_VALUE ,'启用动态监控功能标记'describe from SYS."V$DM_INI"where PARA_NAME ='ENABLE_MONITOR'union ALL
select PARA_NAME,PARA_VALUE ,'是否打开 SQL 日志功能'describe from SYS."V$DM_INI"where PARA_NAME ='SVR_LOG'union ALL
select PARA_NAME,PARA_VALUE ,'非 WINDOWS 下有效,0:使用 OS 文件系统缓存' describe from SYS."V$DM_INI"wherePARA_NAME ='DIRECT_IO'union ALL
select PARA_NAME,PARA_VALUE ,'IO 线程组个数' describe 
from SYS."V$DM_INI"where PARA_NAME ='IO_THR_GROUPS'union ALL
select PARA_NAME,PARA_VALUE ,'HAGR、DIST、集合操作、SPL2、NTTS2 以及HTAB 操作符的数据总缓存大小' describe fromSYS."V$DM_INI"where PARA_NAME ='HAGR_BUF_GLOBAL_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'单个HAGR、DIST、集合操作、SPL2、NTTS2 以及HTAB 操作符的数据总缓存大小' describe fromSYS."V$DM_INI"where PARA_NAME ='HAGR_BUF_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'排序机制,0:原排序机制;1:新排序机制' describe from SYS."V$DM_INI"where PARA_NAME 
='SORT_FLAG'union ALL
select PARA_NAME,PARA_VALUE ,'新排序机制下,每个排序分片空间的大小M' describe from SYS."V$DM_INI"where PARA_NAME 
='SORT_BLK_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'原排序机制下,排序缓存区最大值M' describe from SYS."V$DM_INI"where PARA_NAME ='SORT_BUF_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'新排序机制下,排序全局内存使用上限M' describe from SYS."V$DM_INI"where PARA_NAME ='SORT_BUF_GLOBAL_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'最大日志缓冲区大小M'describe from SYS."V$DM_INI"where PARA_NAME ='RLOG_POOL_SIZE'union ALL
select PARA_NAME,PARA_VALUE ,'虚拟机内存池能扩充到的最大大小,以 KB 为单位' describe from SYS."V$DM_INI"wherePARA_NAME ='VM_POOL_TARGET'union ALL
select PARA_NAME,PARA_VALUE ,'会话缓冲区能扩充到的最大大小,以 KB 为单位' describe from SYS."V$DM_INI"wherePARA_NAME ='SESS_POOL_TARGET'union ALL
select PARA_NAME,PARA_VALUE ,'临时表空间大小上限,以 M 为单位' describe from SYS."V$DM_INI"where PARA_NAME ='TEMP_SPACE_LIMIT'union ALL
select PARA_NAME,PARA_VALUE ,'在建表语句中指定主关键字时,是否缺省指定为 CLUSTER' describe from SYS."V$DM_INI"where PARA_NAME ='PK_WITH_CLUSTER'union ALL
select PARA_NAME,PARA_VALUE ,'通讯加密所采用的方式'describe from SYS."V$DM_INI"where PARA_NAME ='ENABLE_ENCRYPT'union ALL
select PARA_NAME,PARA_VALUE ,'是否启用自适应计划机制,仅OPTIMIZER_MODE=1 时生效' describe from SYS."V$DM_INI"where PARA_NAME ='ADAPTIVE_NPLN_FLAG';

安装客户端

1、获取安装包程序

dm8_setup_rh6_64_sec_8.1.1.88_20200701.iso可以从数据库管理员或集群中获取

2、上传安装包到 /opt 目录

3、使用root安装,因为要创建dmdba用户

cd /opt
# 挂载镜像mount dm8_setup_rh6_64_sec_8.1.1.88_20200701.iso /mnt/ -o loop
sh /mnt/DMInstall.bin -i

按下图提示安装客户端即可

image.png

相关sql操作:

# 使用客户端需要指定用户为 dmdba, 非ruoot用户提示输入密码:dmdba
su - dmdba -c "/opt/dmclient/bin/disql SYSDBA/SYSDBA@172.16.1.116:5236"# 当然也可以直接使用 
/opt/dmclient/bin/disql SYSDBA/SYSDBA@172.16.1.116:5236# 如果出现下面的错误,请重新连接ssh即可
/opt/dmclient/bin/disql: error while loading shared libraries: libdisql_dll.so: cannot open shared object file: No such file or directory
        
# 查询所有的schema
select username from sys.dba_users;# 查询schema下的所有表
select table_name from sys.dba_tableswhere owner='WEBKIT2023';# 查询所有的schema及所属的所有表
select s.username"schema",t.table_name"table_name"from sys.dba_users s left join sys.dba_tables t on s.username=t.ownerorderby s.usernameasc# 查看当前schema的表的ddl,注意要大写表名
select dbms_metadata.get_ddl('TABLE','TEST1')from dual;describe test1;# 指定shcema,默认在当前用户的schema下
select dbms_metadata.get_ddl('TABLE','CONFIG_CALENDAR','WEBKITUSER')from dual;
相关实践学习
基于EMR Serverless StarRocks一键玩转世界杯
基于StarRocks构建极速统一OLAP平台
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
Linux 测试技术 数据库
达梦(DM)数据库安装
简述windows环境下达梦(DM)数据库安装操作
|
存储 关系型数据库 MySQL
达梦(DM)数据迁移工具
讲述达梦数据库迁移工具使用
|
SQL XML Oracle
达梦(DM)4、SpringBoot集成MyBatisPlus+达梦数据库(DM)
最近在做一个政府项目,由于项目之前使用的 MySQL 数据库,为了适配国产化,需要将 MySQL 换成 达梦数据库(DM),本次我选择了达梦数据库8(DM8),以下是切换过程
1973 0
达梦(DM)4、SpringBoot集成MyBatisPlus+达梦数据库(DM)
|
3月前
|
监控 Java 应用服务中间件
达梦数据库DEM监控部署教程分享
达梦数据库DEM监控部署教程分享
92 2
|
3月前
|
关系型数据库 MySQL 调度
【TiDB原理与实战详解】4、DM 迁移和TiCDC数据同步~学不会? 不存在的!
TiDB Data Migration (DM) 和 TiCDC 是两款用于数据库迁移和同步的强大工具。DM 支持将兼容 MySQL 协议的数据库(如 MySQL、MariaDB)的数据异步迁移到 TiDB 中,具备全量和增量数据传输能力,并能合并分库分表的数据。TiCDC 则专注于 TiDB 的增量同步,利用 TiKV 日志实现高可用性和水平扩展,支持多种下游系统和输出格式。两者均可通过 TiUP 工具进行部署与管理,简化了集群的安装、配置及任务管理过程。
|
11月前
|
存储 SQL 数据库
达梦(DM)数据库管理表
达梦(DM)数据库表管理
达梦(DM)数据库管理表
|
6月前
|
关系型数据库 MySQL 数据处理
TiDB Data Migration (DM):高效数据迁移的实战应用
【2月更文挑战第28天】随着企业对数据处理需求的不断增长,数据库迁移成为一项关键任务。TiDB Data Migration (DM) 作为一款专为TiDB设计的数据迁移工具,在实际应用中表现出色。本文将结合具体案例,详细介绍TiDB DM的应用场景、操作过程及最佳实践,帮助读者更好地理解和运用这一工具,实现高效的数据迁移。
|
6月前
|
移动开发 监控 数据库
Greenplum【部署 02】GP 数据库 web 监控工具 Greenplum Command Center v6.6.0 安装配置及问题处理(一篇学会部署配置启动 GPCC 避坑指南)
Greenplum【部署 02】GP 数据库 web 监控工具 Greenplum Command Center v6.6.0 安装配置及问题处理(一篇学会部署配置启动 GPCC 避坑指南)
123 0
|
6月前
|
消息中间件 存储 中间件
Greenplum GPKafka【部署 01】使用GPKafka实现Kafka数据导入Greenplum数据库完整流程分享(扩展安装文件网盘分享)
Greenplum GPKafka【部署 01】使用GPKafka实现Kafka数据导入Greenplum数据库完整流程分享(扩展安装文件网盘分享)
71 0
|
SQL 关系型数据库 MySQL
达梦(DM) SQL基础操作
讲述达梦 DM数据库 SQL基础查询语句