麒麟ARM64安装达梦数据库

下载

https://download.dameng.com/product/DM8/月度版/2023.06/dm8_20230907_FTarm_kylin10_sp1_64_ent_8.1.3.26_pack7/dm8_20230907_FTarm_kylin10_sp1_64.iso

安装前的准备

  1. # 创建存放安装文件的文件夹,安装后可以删除
  2. mkdir /home/dm
  3. # 达梦的安装位置
  4. mkdir /data/dmdbms
  5. # 挂载iso文件
  6. mount /home/dm8_20230907_FTarm_kylin10_sp1_64.iso /mnt
  7. # 拷贝安装文件
  8. cp
  9. /mnt/DMInstall.bin /home/dm/

安装完成后卸载挂载的ISO文件:

  1. umount /mnt

创建用户

  1. #创建用户所在的组
  2. groupadd dinstall
  3. #创建用户
  4. useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
  5. #设置密码
  6. passwd dmdba
  7. #将dmdba的家目录和dm文件夹的所有者修改
  8. chown -R dmdba:dinstall /home/dmdba
  9. chown -R dmdba:dinstall /data/dmdbms
  10. chown -R dmdba:dinstall /home/dm
  11. chmod -R 755 /home/dm

修改文件打开最大数

  1. vi /etc/security/limits.conf

在最后添加四条语句,需添加的语句如下:

  1. dmdba hard nofile 65536
  2. dmdba soft nofile 65536
  3. dmdba hard stack 32768
  4. dmdba soft stack 16384

切换到 dmdba 用户,查看是否生效,命令如下:

  1. su dmdba
  2. ulimit -a

开始安装

  1. #切换为dmdba用户登录
  2. su dmdba
  3. #进入存放安装文件的文件夹
  4. cd /home/dm
  5. #开始安装
  6. ./DMInstall.bin -i

选择安装语言,默认为中文

选择key文件,没有就选N

设置时区

选择安装类型

选择安装目录

根据个人情况,我这里安装在/data/dmdbms目录

安装完成

根据提示切换到root用户

  1. su root
  2. /data/dmdbms/script/root/root_installer.sh

配置实例

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

  1. # 切换到dmdba用户
  2. su dmdba
  3. cd /data/dmdbms/bin
  4. ./dminit PATH=/data/dmdbms/data PAGE_SIZE=16 CASE_SENSITIVE=N CHARSET=1 LENGTH_IN_CHAR=Y DB_NAME=TEST INSTANCE_NAME=TEST

参数说明

|----------------------|------------------------------------------------|
| PATH | 初始数据库存放的路径 |
| CASE_SENSITIVE | 大小敏感(Y),可选值:Y/N,1/0 |
| CHARSET/UNICODE_FLAG | 字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR] |
| LENGTH_IN_CHAR | VARCHAR 类型长度是否以字符为单位(N),可选值:Y/N,1/0 |
| SYSDBA_PWD | 设置 SYSDBA 密码(SYSDBA),密码长度为 9 到 48 |
| SYSAUDITOR_PWD | 设置 SYSAUDITOR 密码(SYSAUDITOR),密码长度为 9 到 48 |
| DB_NAME | 数据库名 |
| INSTANCE_NAME | 实例名 |
| PORT_NUM | 监听端口号(5236) |
| TIME_ZONE | 设置时区(+08:00) |
| ARCH_FLAG | 初始化时设置 dm.ini 中的 ARCH_INI(0) |

运行后,将会在指定的PATH(/data/dmdbms/data)目录新建一个TEST文件夹。内容包含初始数据库TEST的相关文件和DM数据库启动所必须的配置文件dm.ini

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

执行命令后将输出create dm database success.则代表实例配置成功。

注册服务

注册服务需使用 root 用户进行注册。使用 root 用户进入数据库安装目录的 /script/root 下:

  1. su root
  2. cd /data/dmdbms/script/root
  3. ./dm_service_installer.sh -t dmserver -dm_ini /data/dmdbms/data/TEST/dm.ini -p DMSERVER

-t:服务类型,包括dmimon,dmap,dmserver,dmwatcher,dmmonitor,dmcss,dmcssm,dmasmsvr,dmasmsvrm.

-p:服务名后缀,对于dmimon,dmap服务类型无效

-dm_ini:dm.ini文件路径

启动、停止数据库

服务注册成功后,可以使用以下命令启停数据库。

启动服务

  1. systemctl start DmServiceDMSERVER.service

停止服务

  1. systemctl stop DmServiceDMSERVER.service

重启服务

  1. systemctl restart DmServiceDMSERVER.service

查看服务状态

  1. systemctl status DmServiceDMSERVER.service

查看服务进程

  1. ps -ef | grep dmserver

测试连接

  1. cd /data/dmdbms/bin
  2. ./disql SYSDBA/SYSDBA@127.0.0.1:5236
  3. SELECT * FROM V$VERSION;

后续

修改SYSDBA密码

SYSDBA默认的密码同账号相同,为了安全,建议修改:

  1. ALTER USER SYSDBA IDENTIFIED BY "需要改的密码";

新建表空间、用户

查询有哪些表空间
  1. select tablespace_name from dba_tablespaces;
创建表空间
  1. create tablespace <表空间名称> datafile <数据库存储文件> size 512;
  2. # 示例:create tablespace TEST datafile '/data/dmdbms/data/TEST/TEST.DBF' size 512;
模式与用户的关系

模式即SCHEMA,是数据库的对象,可以将其理解为一个独立空间,不同的模式下可以拥有相同的名称的表而不会发生冲突,只要有权限,不同模式下的表可以相互查询调用,在模式中可以拥有以下对象:

表、视图、索引、触发器、存储过程、函数、序列、全文索引、包、同义词、类、外部链接。

在达梦数据库中创建用户时,会默认创建一个与用户同名的模式,用户与模式是一对多的关系,用户可以拥有多个模式,但是一个模式只能为一个用户所有。

每个用户有一个默认的同名的模式,访问自己模式下的表、视图等,不需要加模式名,访问其他模式下的对象需要加上模式名。

创建用户
  1. # 创建用户并指定默认使用的表空间
  2. create user "TESTUSER" identified by "TEST@2023" default tablespace "TEST" default index tablespace "TEST";

TESTUSER用户创建后,将自动创建TESTUSER模式。

用户赋权

授予用户DBA角色权限(权限大)

  1. # 授权
  2. grant DBA to 用户名;
  3. # 取消授权
  4. revoke DBA FROM 用户名;

授予用户除了DBA外的所有角色(仅限于操作自己的模式)

复制代码
   `grant PUBLIC,RESOURCE,SOI,VTI to 用户名;`

授予用户其他模式的只读权限(自己的模式可以写操作,其他用户的模式只能读)

  1. grant SELECT TABLE,SELECT ANY TABLE,SELECT VIEW,SELECT ANY VIEW,SELECT SEQUENCE,SELECT ANY SEQUENCE,SELECT ANY DICTIONARY,SELECT MATERIALIZED VIEW,SELECT ANY MATERIALIZED VIEW to 用户名;

授予用户指定模式的只读权限(按对象(表)授权)

方法一(直接执行):

  1. DECLARE
  2. SQLSTMT STRING;
  3. CURSOR CUR FOR SELECT ID,NAME FROM SYSOBJECTS WHERE TYPE$ = 'SCHOBJ' AND SUBTYPE$ IN ('STAB','UTAB') AND (PID=-1 OR PID=0) AND SCHID=(SELECT ID FROM SYSOBJECTS WHERE TYPE$='SCH' AND NAME='模式名' );
  4. TYPE MYREC IS CUR%ROWTYPE;
  5. REC_V MYREC;
  6. BEGIN
  7. FOR REC_V IN CUR LOOP
  8. SQLSTMT = 'grant SELECT ON "模式名"."'|| REC_V.NAME || '" TO "用户名";';
  9. EXECUTE IMMEDIATE SQLSTMT;
  10. END LOOP;
  11. COMMIT;
  12. END;

方法二(先构造SQL语句,然后手动执行):

  1. #授予 TEST 用户对 SYSDBA 模式下所有表的只读权限
  2. select 'grant select on SYSDBA.'||table_name||' to TEST' from dba_tables where owner='SYSDBA';

卸载达梦

  1. # 进入安装目录
  2. cd /data/dmdbms/
  3. ./uninstall.sh -i

卸载后查看服务是否还在:

  1. ps -ef | grep dmserver
  2. systemctl list-unit-files | grep Dm

删除残留安装文件及目录

  1. rm -rf /data/dmdbms/*
相关推荐
C_心欲无痕2 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
冰西瓜6003 小时前
国科大2025操作系统高级教程期末回忆版
linux
HIT_Weston3 小时前
93、【Ubuntu】【Hugo】搭建私人博客:面包屑(一)
linux·运维·ubuntu
cuijiecheng20184 小时前
Linux下Beyond Compare过期
linux·运维·服务器
喵叔哟4 小时前
20.部署与运维
运维·docker·容器·.net
HIT_Weston4 小时前
92、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(六)
linux·运维·ubuntu
CodeAllen嵌入式4 小时前
Windows 11 本地安装 WSL 支持 Ubuntu 24.04 完整指南
linux·运维·ubuntu
期待のcode4 小时前
前后端分离项目 Springboot+vue 在云服务器上的部署
服务器·vue.js·spring boot
AI 智能服务4 小时前
第6课__本地工具调用(文件操作)
服务器·人工智能·windows·php
码农小韩5 小时前
基于Linux的C++学习——指针
linux·开发语言·c++·学习·算法