环境信息
主机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
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
DM MPPDB架构
DM MPP采用完全对等不共享架构,具体的系统架构如下:
完全对等不共享,继承了完全不共享架构的优点,且各节点完全对等,不需要专用硬件,不存在主控节点,消除了潜在瓶颈以及单节点故障问题。
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 目录
挂载安装包
使用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/ [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
通过系统服务命令启动(推荐)
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
创建安装用户
使用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/
启动一次成功后,Ctrl+C停止
dmserver /dm8/data/DMDB/dm.ini
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
# 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
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
用户名/密码:admin/888888
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
此时界面上即可在【监控及告警-主机】中查看到
集群使用
登陆集群
1、通过DM管理工具
通过windows安装包进行安装,选择安装DM管理工具即可
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 时,分区总数上 限为 1024; CREATETABLE 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
按下图提示安装客户端即可
相关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;