【DM】Linux下安装 DM数据库-命令行安装

【DM】Linux下安装 DM数据库-图形化安装

  • 1、安装前准备工作
    • 1.1 检查 Linux系统信息
    • 1.2 创建DM安装用户
    • 1.3 检查操作系统限制
    • 1.4 检查系统内存与存储空间
      • 1.4.1 检查内存
      • 1.4.2 检查存储空间
      • 1.4.2 检查临时文件目录
      • 1.4.3 设置 JAVA 环境
  • 2、使用dmdba用户安装DM8
    • 2.1 挂载 DM 安装光盘
    • 2.2 命令行安装
    • 2.3 安装步骤
      • 步骤 1:选择安装语言
      • 步骤 2:确认是否继续安装
      • 步骤 3:验证Key文件
      • 步骤 4:输入时区
      • 步骤 5:选择安装类型
      • 步骤 6:选择安装路径
      • 步骤 7:安装小结
  • 3、初始化数据库与注册服务
    • 3.1 配置实例
    • 3.2 root用户下注册服务
    • 3.3 服务程序的启动
  • 4、数据库的使用
    • 1、登录 disql
    • 2、用户角色与权限管理
      • 1. 创建用户
        • 3. 授权权限
        • 4. 修改用户密码
        • 5. 其他常用操作
      • 2. 角色管理


💖The Begin💖点点关注,收藏不迷路💖

1、安装前准备工作

先进行一系列的系统检查和环境准备。以下是一些关键的准备步骤,以确保DM能够顺利安装并运行。

DM 软件安装包如果是经过数字签名的,则需要进行数字签名校验,否则跳过该步骤:

1、导入达梦公司的公钥:

gpg --import dm-pub-key

导入名为 dm-pub-key 的文件中的公钥到你的 GPG 密钥环中。

2、将达梦公司的公钥添加到绝对信任列表:

gpg --edit-key 武汉达梦数据库有限公司

进入到编辑该公钥的交互式界面。在这个界面中,你可以设置对这个公钥的信任级别。通常,选择设置为 “5” 表示完全信任。具体的选择和信任级别会依据你的安全策略和实际需要而定。

3、验证达梦安装包的数字签名:

gpg --verify dm.sign dm8_setup_xxx.iso

使用导入的公钥 dm-pub-key 对 dm8_setup_xxx.iso 文件进行数字签名的验证。如果验证通过,输出会显示 “Good signature” 表示签名是有效的,安装包文件是完好无损的。

需要注意的是,数字签名的验证过程关键在于你所导入的公钥必须是可信的,而且没有被篡改过。

1.1 检查 Linux系统信息

1、获取系统位数:

[root@zyl-server ~]# getconf LONG_BIT
64
[root@zyl-server ~]#

2、查询操作系统 release 信息:

lsb_release -a
或
cat /etc/os-release
或
cat /etc/redhat-release

3、查询系统信息:

cat /etc/issue

4、查询系统名称:

uname -a 

1.2 创建DM安装用户

为了减少对操作系统的影响,为DM创建一个专用系统用户来安装和运行DM。

1、创建安装用户组dinstall

groupadd -g 12349 dinstall

2、创建安装用户dmdba,并将其添加到dinstall组中

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

3、初始化用户密码

passwd dmdba

之后认使用用户dmdba进行安装部署等操作。

1.3 检查操作系统限制

使用ulimit -a命令检查当前用户的操作系统资源限制。根据DM的要求,根据需要调整某些限制参数,如data seg size、file size、open files和virtual memory。

可以编辑 /etc/security/limits.conf文件进行参数涉资,确保数据库能够正常运行并处理大规模的数据操作和请求。

# 设置用户名为 john 的用户的虚拟内存限制为 unlimited:
*       -       nofile      65536# 设置所有用户的虚拟内存限制为 1048576(即 1GB):
*       -       memlock     1048576

在这里插入图片描述

资源限制建议设置:

  1. data seg size (-d):

    • 意义: 控制数据段的大小,即进程的数据区域大小。
    • 建议设置: 建议设置为 1048576(即 1GB)以上或 unlimited(无限制)。如果设置过小,可能会导致数据库启动失败,因为数据库需要足够的内存空间来存储数据和执行操作。
  2. file size (-f):

    • 意义: 控制单个文件的大小。
    • 建议设置: 建议设置为 unlimited(无限制)。如果设置过小,可能会导致数据库安装或初始化过程中出现文件大小限制的问题,特别是在操作大型文件或数据集时。
  3. open files (-n):

    • 意义: 控制每个进程能够打开的文件数量。
    • 建议设置: 建议设置为 65536 以上或 unlimited(无限制)。数据库系统经常需要同时打开多个文件,因此较低的限制可能会导致操作受限或失败。
  4. virtual memory (-v):

    • 意义: 控制虚拟内存的大小。
    • 建议设置: 建议设置为 1048576(即 1GB)以上或 unlimited(无限制)。虚拟内存的限制影响数据库启动和运行时的内存分配能力,设置过小可能会导致数据库启动失败或者无法处理大量数据和请求。

1.4 检查系统内存与存储空间

1.4.1 检查内存

  1. 获取内存总大小
grep MemTotal /proc/meminfo
  1. 获取交换分区大小
grep SwapTotal /proc/meminfo
  1. 获取内存使用详情
free

在这里插入图片描述

1.4.2 检查存储空间

提前规划好安装目录,预留足够的存储空间。在 DM 安装前也应该为数据库实例预留足够的存储空间,规划好数据路径和备份路径。

  1. 查询指定目录的可用空间
df -h
或者
df -h 存储目录

1.4.2 检查临时文件目录

DM 安装程序在安装时将产生临时文件,临时文件需要 1GB 的存储空间,临时文件目录默认为/tmp。

在这里插入图片描述

如果/tmp 目录不能保证 1GB 的存储空间,用户可以扩展/tmp 目录存储空间或者通过设置环境变量 DM_INSTALL_TMPDIR 指定安装程序的临时目录。

mkdir -p /dm8data/DM_INSTALL_TMPDIR=/dm8data/export DM_INSTALL_TMPDIR

在这里插入图片描述

1.4.3 设置 JAVA 环境

jdk安装配置:https://blog.csdn.net/qq_41840843/article/details/136897749

DM_JAVA_HOME=/usr/local/jdk1.8.0_321
export DM_JAVA_HOME

在这里插入图片描述

2、使用dmdba用户安装DM8

2.1 挂载 DM 安装光盘

将 DM 安装光盘放入光驱 /home/,然后加载(mount)光驱。将光驱中的内容挂载到指定的挂载点 /mnt/dvd 上


su - dmdbamkdir  /mnt/dvd挂载iso文件(只能读,不可写)mount -o loop  /home/dm8_20240408_x86_rh7_64.iso /mnt/dvd重新以可读可写的方式挂载
mount -o remount,rw /home/dm8_20240408_x86_rh7_64.iso /mnt/dvd
cd /mnt/dvd

在这里插入图片描述

拷贝 DMInstall.bin到 /db/dmdbms/

[root@zyl-server dmdbms]# cd  /mnt/iso
[root@zyl-server iso]#
[root@zyl-server iso]#
[root@zyl-server iso]# ll
total 1057031
-r-xr-xr-x. 1 root root    2587699 Mar 20 14:04 DM8 Install.pdf
-r-xr-xr-x. 1 root root 1079810877 Apr  8 13:35 DMInstall.bin
[root@zyl-server iso]# cp DMInstall.bin /db/dmdbms/
[root@zyl-server iso]#

将 /db/dmdbms/目录下的 DMInstall.bin 文件赋予执行权限。

chmod 755 ./DMInstall.bin

在这里插入图片描述

2.2 命令行安装

在安装用户dmdba下,执行以下命令将运行 DM 的命令行安装。

./DMInstall.bin -i

在这里插入图片描述

2.3 安装步骤

步骤 1:选择安装语言

根据提示选择安装语言,输入相应的选项后回车。

在这里插入图片描述

步骤 2:确认是否继续安装

如果系统中已存在DM,会询问是否继续安装。确认继续后,进行下一步。

步骤 3:验证Key文件

输入Key文件路径(如果有的话)。如果Key文件合法且在有效期内,安装程序将允许继续安装。

在这里插入图片描述

步骤 4:输入时区

根据提示选择或输入时区信息。

在这里插入图片描述

步骤 5:选择安装类型

您可以选择典型安装或自定义安装。如果选择自定义安装,需要手动输入要安装的组件序号。

在这里插入图片描述

步骤 6:选择安装路径

可以输入 DM 的安装路径,不输入则使用默认路径,默认值为$HOME/dmdbms(如
果安装用户为 root,则默认安装目录为/opt/dmdbms,但不建议使用 root 系统用户
来安装 DM)。 如下图所示:

在这里插入图片描述
注意: 安装完成后,终端提示“请以 root 系统用户执行命令”。由于使用非 root
系统用户进行安装,所以部分安装步骤没有相应的系统权限,需要用户手动执行相关命
令。用户可根据提示完成相关操作。

在这里插入图片描述

步骤 7:安装小结

安装结束后,还需要初始化数据库并注册相关服务才能正式运行达梦数据库。

3、初始化数据库与注册服务

安装完成后,根据提示,需要以root用户身份执行一些额外的命令来完成数据库的初始化和服务的注册。这通常涉及到设置环境变量、执行dminit命令初始化数据库、以及配置并启动数据库服务等步骤。

3.1 配置实例

使用 dmdba 用户配置实例,进入到 DM 数据库安装目录下的 bin 目录中,使用 dminit 命令初始化实例。

在这里插入图片描述

dminit 命令可设置多种参数,可查看可配置参数:

/home/dmdba/dmdbms/bin/dminit help

在这里插入图片描述

注意:页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 这四个参数一旦确定无法修改,需谨慎设置。

  • extent_size:数据文件使用的簇大小,只能是 16 页、32 页或 64 页之一,缺省使用 16 页。
  • page_size:数据文件使用的页大小,可以是 4 KB、8 KB、16 KB 或 32 KB 之一,缺省使用 8 KB。
  • case_sensitive:标识符大小写敏感,默认值为 Y。
  • charset:字符集选项,0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。

示例命令,初始化一个数据库,放在/home/dmdba/dmdbms 目录下,设置页大小为 32 KB,簇大小为 32 KB,大小写敏感,字符集为 utf_8,数据库名为 DMDB,实例名为 DBSERVER,端口为 5237。

./dminit path=/home/dmdba/dmdbms PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMDB INSTANCE_NAME=DBSERVER PORT_NUM=5237

在这里插入图片描述

3.2 root用户下注册服务

DM 提供了 14 个服务脚本模板,分别是 DmAPService 服务、DmAuditMonitor 服务、
DmJobMonitor 服务、DmInstanceMonitor 服务、DmServer 服务、DmWatchService
服务、DmMonitorService 服务、DmASMSvrService 服务、DmCSSService 服务和
DmCSSMonitorService 服 务 、 DmDRSService 服 务 、 DmDRASService 服 务 、
DmDCSService 服务和 DmDSSService 服务。其中前 4 个在安装/bin 目录下,其他的都
在/bin/service_template 下。

注册服务需使用 root 用户进行注册。DM 提供了将 DM 服务脚本注册成操作系统服务的脚本,同时也提供了卸载操作系统服务的脚本。注册和卸载脚本文件所在目录为安装目录的“/script/root”子目录下。

在这里插入图片描述

cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/DMDB/dm.ini -p DMSERVER

这条命令的含义是:

  • -t dmserver:指定要注册的服务类型为 dmserver,即 DM 数据库服务器。
  • -dm_ini /home/dmdba/dmdbms/DMDB/dm.ini:指定 DM 数据库的配置文件 dm.ini 的路径。
  • -p DMSERVER:指定服务的名称为 DMSERVER

执行这个命令后,DM 数据库服务将被注册到系统中,可以使用 systemctl 命令来管理这个服务,例如:

  • 启动服务:systemctl start DmServiceDMSERVER
  • 停止服务:systemctl stop DmServiceDMSERVER
  • 重启服务:systemctl restart DmServiceDMSERVER
  • 查看服务状态:systemctl status DmServiceDMSERVER

在这里插入图片描述

在这里插入图片描述

3.3 服务程序的启动

  • 使用 systemctl 启动服务:

    systemctl start DmServiceDMSERVER.service
    
  • 前台启动,进入 DM 安装目录/home/dmdba/dmdbms/bin:

    ./dmserver /home/dmdba/dmdbms/DMDB/dm.ini
    

    关闭数据库,输入 exit

  • 使用服务脚本启动/停止/重启数据库:

    ./DmServiceDMSERVER start/stop/restart
    
  • 查看数据库状态:

    ./DmServiceDMSERVER status
    

在这里插入图片描述

4、数据库的使用

1、登录 disql

在Linux环境下,首先进入数据库软件的bin目录:

cd /home/dmdba/dmdbms/bin

然后,使用disql工具登录数据库。对于非默认用户和密码,特别是密码包含特殊字符时,需要按以下方式输入:

./disql 用户名/'"密码"'@主机名:端口号

例如:

./disql dmdba/'"zyl@2024"'@192.168.234.10:5237

如果用户名、密码和端口号都是默认的(通常是SYSDBA/SYSDBA和端口),则可以直接:

./disql SYSDBA/SYSDBA@192.168.234.10:5237

这将启动disql客户端并连接到本地或指定的默认数据库实例。
在这里插入图片描述

2、用户角色与权限管理

1. 创建用户

CREATE USER ZYl IDENTIFIED BY ZYl20240411;

创建用户ZYl,密码为ZYl20240411.

3. 授权权限
  • 授权基本权限:
GRANT "DBA" TO "ZYl";

ZYl用户授予DBA权限。

在这里插入图片描述

4. 修改用户密码
ALTER USER ZYl IDENTIFIED BY 'newpassword';

ZYl用户的密码更改为newpassword

5. 其他常用操作
  • 查看当前用户:
SELECT USER;
  • 删除用户(慎用):
DROP USER ZYl CASCADE;

删除ZYl用户及其所有对象。

禁用/启用用户

-- 禁用用户
ALTER USER myuser ACCOUNT LOCK;-- 启用用户
ALTER USER myuser ACCOUNT UNLOCK;

2. 角色管理

创建角色:

CREATE ROLE myrole;

这个命令创建了一个名为myrole的角色。

授予系统权限给角色

GRANT CREATE TABLE TO myrole;

这个命令授予myrole角色创建表的权限。

授予对象权限给角色

假设有一个表mytable,要将对其的查询权限授予myrole

GRANT SELECT ON mytable TO myrole;

将角色授予用户

GRANT myrole TO myuser;

这个命令将myrole角色授予myuser用户,myuser将继承myrole的所有权限。

撤销角色

REVOKE myrole FROM myuser;

这个命令从myuser用户中撤销myrole角色。

撤销权限

REVOKE SELECT ON mytable FROM myrole;

这个命令从myrole角色中撤销对mytable的查询权限。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/397669.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中v-html 后端返回html + script js中click事件不生效

效果图&#xff1a; 需求&#xff1a;点击加号执行后端返回的script中的代码 后端返回的html&#xff1a; <!DOCTYPE html> <html langzh> <head> <title>xxx</title> <style>body{font-size: 14px}p{text-indent: 30px;}textarea{width…

华兮云创始人王正一——探索未来之路

在竞争激烈且机遇丛生的行业大环境中&#xff0c;我们有幸邀请到王正一走进直播间&#xff0c;开启一场关于破局与发展、理想与现实的深度交流。 当谈及在行业中应秉持何种心态时&#xff0c;王正一的见解独到且深刻。他强调&#xff0c;无论在融整产业中处于怎样的位置、扮演何…

【C++算法】双指针

移动零 题目链接&#xff1a;移动零https://leetcode.cn/problems/move-zeroes/description/ 算法原理 这类题是属于数组划分、数组分开题型 代码步骤&#xff1a; 使用cur遍历数组当cur所指的元素等于0时&#xff0c;cur向后面移动当cur所指的元素不等于0时&#xff0c;de…

JAVA—异常

认识异常&#xff0c;学会从报错信息中发现问题&#xff0c;解决问题。并学会构建自定义异常&#xff0c;提醒编程时注意 目录 1.认识异常 2.自定义异常 1.自定义运行时异常 2.自定义编译时异常 3.异常的处理 1.认识异常 异常就是代表程序出现的问题&#xff0c;用来查询B…

(自用)交互协议设计——protobuf序列化

protobuf是一种比json和xml等序列化工具更加轻量和高效的结构化数据存储格式&#xff0c;性能比json和xml真的强很多&#xff0c;毕竟google出品。 protobuf原理 protobuf如何使用 创建xxx.proto文件 开头写上 syntax"proto2"package tutorial; 表明使用的proto…

机器学习——支持向量机(SVM)(2)

目录 一、SVC理解进阶 1. C&#xff08;硬间隔与软间隔&#xff09; 2. class_weight 二、模型评估指标&#xff08;SVC&#xff09; 1. 混淆矩阵 &#xff08;Confusion Matrix&#xff09; &#xff08;1&#xff09;准确率 —— 模型整体效果 &#xff08;2&#xff…

Spring AI 更新:支持OpenAI的结构化输出,增强对JSON响应的支持

就在昨晚&#xff0c;Spring AI发了个比较重要的更新。 由于最近OpenAI推出了结构化输出的功能&#xff0c;可确保 AI 生成的响应严格遵守预定义的 JSON 模式。此功能显着提高了人工智能生成内容在现实应用中的可靠性和可用性。Spring AI 紧随其后&#xff0c;现在也可以对Open…

STM32CubleMX创建FreeRtos工程教程,图文教程

前言&#xff1a;STM32CubeMX 是一个开发工具&#xff0c;它已经将 FreeRTOS 这个实时操作系统&#xff08;RTOS&#xff09;集成到其工具中。换句话说&#xff0c;通过 STM32CubeMX&#xff0c;可以非常方便地为 STM32 微控制器生成配置代码&#xff0c;其中包括对 FreeRTOS 的…

jdbc操作数据库MySQL

mysql创建class表 往数据库中使用代码插入一条数据 step1.创建DataSource DataSource dataSource new MysqlDataSource();((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncodingutf8&usessLfalse");((MysqlDataSour…

2024十大网站设计公司推荐TOP10

一个精心设计的网站对于企业来说不仅是品牌形象的延伸&#xff0c;也是吸引客户、提升业务的关键工具。 而选择一家专业的网站设计公司&#xff0c;不仅可以帮助企业在激烈的市场竞争中脱颖而出&#xff0c;还能收获更多的客流量&#xff0c;以下是我们精选的十大网站设计公司…

LVS负载均衡+集群+三种工作模式+调度算法及实战案例

一、LVS 1.1简介 LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;是由章文嵩主导开发的开源负载均衡项目&#xff0c;目前&#xff0c;LVS已经被集成到Linux内核模块中。该项目实现了在基于IP的数据基础上&#xff0c;请求负载均衡调度方案&a…

git推送错误-->远程分支比本地的分支更新,无法直接推送

每次上传本地修改好的代码的时候,十次有八次都会出现这样的问题!!(暴躁!!!) 现在写个帖子记录一下,这个问题目前我还没有解决,欢迎懂的佬指点一下. 情景: 我在本地仓库做了一些代码的修改,准备上传到远程仓库上,下边是上传步骤: git add . # 将所有的修改都提交到缓冲区git …

工作随记:oracle中偶发遇到存储过程编辑,删除等卡死问题

文章目录 一、查询session是否占用二、通过对象名称定位对应SID三、通过对应的SID查询session信息四、kill掉session 最近有几个客户也询问过&#xff1a;我的存储过程怎么编译、调试有时候就卡死不动了&#xff0c;而且还没办法删除&#xff0c;本次又碰到实际情况&#xff0c…

sql及rce漏洞整理

sql及rce漏洞复现 一&#xff0c;mysql小特性解决大问题 <?php $mysqli new mysqli("localhost", "root", "root", "cat"); ​ /* check connection */ if ($mysqli->connect_errno) {printf("Connect failed: %s\n&qu…

前端面试题整合

一、HTML篇 1、简述一下你对HTML语义化的理解&#xff1f; 用正确的标签做正确的事情&#xff1b; HTML语义化让页面内容结构清晰&#xff0c;便于浏览器、搜索引擎解析&#xff1b; 搜索引擎的爬虫依赖HTML标记来确定上下文和关键字的权重&#xff0c;利于SEO&#xff1b; 便于…

JavaScript - 数组对象中实用好玩的reduce方法

JavaScript中reduce() 方法对数组中的每个元素执行一个由您提供的reducer函数(升序执行)&#xff0c;将其结果汇总为单个返回值。 语法&#xff1a; arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue]) 参数配置&#xff1a; 参数名描述cal…

渗透学习之漏洞复现

漏洞 贷齐乐的漏洞复现RCE 贷齐乐的漏洞复现 <?php header("Content-type: text/html; charsetutf-8"); require db.inc.php;function dhtmlspecialchars($string) {if (is_array($string)) {foreach ($string as $key > $val) {$string[$key] dhtmlspecial…

【Oracle点滴积累】解决ORA-20001: Latest xml inventory is not loaded into table故障的方法

广告位招租&#xff01; 知识无价&#xff0c;人有情&#xff0c;无偿分享知识&#xff0c;希望本条信息对你有用&#xff01; 今天和大家分享在安装Oracle Critical Patch Update (Patch Number:33806138) 遇到ORA-20001: Latest xml inventory is not loaded into table故障…

广东盈致MES系统——注塑和冲压行业的智能化管理

广东注塑冲压行业MES制造执行系统是一种专门为注塑和冲压行业设计的生产管理系统&#xff0c;可以帮助企业实现生产过程的智能化管理和优化。盈致MES系统是一种常见的MES系统&#xff0c;具有以下特点和功能&#xff1a; 生产计划和调度&#xff1a;MES系统可以帮助企业进行生产…

SpringCloud网关

1.网关的作用 2.网关入门 2.1引入依赖 <dependencies><dependency><groupId>com.heima</groupId><artifactId>hm-common</artifactId><version>1.0.0</version></dependency><!--网关--><dependency><g…