DM8数据库入门到熟练

1、部署

1.1、下载

用户在安装 DM 数据库之前需要检查或修改操作系统的配置,以保证 DM 数据库能够正确安装和运行。

操作系统CPU数据库
CentOS7x86_64dm8_20250506_x86_rh7_64.zip

在这里插入图片描述

1.2、新建 dmdba 用户

安装前必须创建 dmdba 用户,禁止使用 root 用户安装数据库。

创建用户所在的组,命令如下:
groupadd dinstall -g 2001
创建用户,命令如下:
useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba
修改用户密码,命令如下:
passwd dmdba

1.3、修改文件打开最大数

在 Linux、Solaris、AIX 和 HP-UNIX 等系统中,操作系统默认会对程序使用资源进行限制。如果不取消对应的限制,则数据库的性能将会受到影响。
永久修改和临时修改。
重启服务器后永久生效。
使用 root 用户打开 /etc/security/limits.conf 文件进行修改,命令如下:

*       soft   noproc  65536
*       hard   noproc  65536
*       soft   nofile  131072
*       hard   nofile  131072
*       hard   stack   32768
*       soft   stack   16384
*       hard memlock unlimited
*       soft memlock unlimited

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

su - dmdba
ulimit -a

1.4、目录规划

1.4.1、创建目录
  • 可根据实际需求规划安装目录,本示例使用默认配置 DM 数据库安装在 /home/dmdba 文件夹下。
  • 规划创建实例保存目录、归档保存目录、备份保存目录。
##实例保存目录
mkdir -p /data/dm/data 
##归档保存目录
mkdir -p /data/dm/arch
##备份保存目录
mkdir -p /data/dm/dmbak
1.4.2、修改目录权限
chown -R dmdba:dinstall /data/dm/data
chown -R dmdba:dinstall /data/dm/arch
chown -R dmdba:dinstall /data/dm/dmbak
1.4.3、设置 755 权限
chmod -R 755 /data/dm/data
chmod -R 755 /data/dm/arch
chmod -R 755 /data/dm/dmbak

1.5、挂载镜像

1.5.1、解压安装包
mkdir -p /opt/apps/dm
unzip -d /opt/apps/dm/ dm8_20250506_x86_rh7_64.zip
1.5.2、镜像挂载(root)
mkdir -p /mnt/dm
mount dm8_20250506_x86_rh7_64.iso /mnt/dm
1.5.3、命令行安装(dmdba用户)
su - dmdba
cd /mnt/dm
##数据库安装与配置(dmdba用户)
./DMInstall.bin -i

在这里插入图片描述

  • 按需求选择安装语言,默认中文;
  • 没有 key 文件选择 “n”;
  • 时区按需求选择一般选择 “21”;
  • 安装类型选择“1”;
  • 安装目录按实际情况配置,默认安装位置:/home/dmdba/dm。
    在这里插入图片描述
    数据库安装大概 1~2 分钟,数据库安装完成后,显示如下界面。
    在这里插入图片描述#### 1.5.4、创建 DmAPService
    数据库安装完成后,需要切换至 root 用户执行上图中的命令 /home/dmdba/dmdbms/script/root/root_installer.sh 创建 DmAPService,否则会影响数据库备份。
    在这里插入图片描述
1.5.5、配置实例(dmdba用户)

部分参数解释如下

page_size:数据文件使用的页大小。取值范围 4、8、16、32,单位:KB。缺省值为 8。可选参数。选择的页大小越大,则 DM 支持的元组长度也越大,但同时空间利用率可能下降。数据库创建成功后无法再修改页大小,可通过系统函数 SF_GET_PAGE_SIZE()获取系统的页大小。
extent_size:数据文件使用的簇大小,即每次分配新的段空间时连续的页数。取值范围 16、32、64。单位:页数。缺省值为 16。可选参数。数据库创建成功后无法再修改簇大小,可通过系统函数 SF_GET_EXTENT_SIZE()获取系统的簇大小。
case_sensitive: 标识符大小写敏感。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,系统比较函数会将大写字母全部转为小写字母再进行比较。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。缺省值为 Y。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_CASE_SENSITIVE_FLAG()或 CASE_SENSITIVE()查询设置的参数值。
charset:字符集选项。取值范围 0、1、2。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_UNICODE_FLAG()或 UNICODE()查询设置的参数值。
BLANK_PAD_MODE:设置字符串比较时,结尾空格填充模式是否兼容 ORACLE。1:兼容;0:不兼容。缺省值为 0。可选参数。此参数在数据库创建成功后无法修改,可通过查询 V$PARAMETER 中的 BLANK_PAD_MODE 参数名查看此参数的设置值。
PAGE_CHECK:PAGE_CHECK 为页检查模式。取值范围 0、1、2、3。0:禁用页校验;1:开启页校验并使用 CRC 校验;2:开启页校验并使用指定的 HASH 算法进行校验;3:开启页校验并使用快速 CRC 校验。缺省值为 3。可选参数。在数据库创建成功后无法修改。

需要注意的是 页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset) 、空格填充模式 (BLANK_PAD_MODE) 、页检查模式(PAGE CHECK) 等部分参数,一旦确定无法修改,在初始化实例时确认需求后谨慎设置。

/home/dmdba/dm/bin/dminit/dminit path=/data/dm/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=DBSERVER PORT_NUM=5236 SYSDBA_PWD=Dmdb#2025  SYSAUDITOR_PWD=Dmdb#2025
1.5.6、注册服务(root用户)

注册服务(root用户)

/home/dmdba/dm/script/root/dm_service_installer.sh -t dmserver -dm_ini /data/dm/DAMENG/dm.ini -p DMSERVER

部分参数说明

标志	参数	说明
-t	服务类型	注册服务类型,支持一下服务类型:dmap、dmamon、dmserver、dmwatcher、dmmonitor、dmasmsvr、dmasmsvrm、dmcss、dmcssm。
-dm_ini	INI 文件路径	指定服务所需要的 dm.ini 文件路径。
-p	服务名后缀	指定服务名后缀,生成的操作系统服务名为“服务脚本模板名,称 + 服务名后缀”。此参数只针对 dmserver、dmwatcher、dmmonitor、dmasmsvr、dmasmsvrm、dmcss、dmcssm 服务脚本生效。
1.5.7、启动、停止数据库(root用户)
1、启停及开机自启
systemctl start DmServiceDMSERVER.service
systemctl stop DmServiceDMSERVER.service
systemctl restart DmServiceDMSERVER.service
systemctl status DmServiceDMSERVER.service

systemctl enable DmServiceDMSERVER.service 
systemctl is-enabled DmServiceDMSERVER.service
2、配置环境变量
vi /home/dmdba/.bash_profile

# DMDB
export DM_HOME=/home/dmdba/dm
export PATH=$PATH:$DM_HOME/bin

source /home/dmdba/.bash_profile
1.5.8、数据库目录结构
1、数据库安装目录

在这里插入图片描述
/home/dmdba/dmdbms/bin 目录存放 DM 数据库的可执行文件,例如 disql 命令、dminit 命令、dmrman 工具等。
在这里插入图片描述
/home/dmdba/dmdbms/desktop/icons 存放 DM 数据库各个工具的桌面图标。
在这里插入图片描述
/home/dmdba/dmdbms/doc 存放 DM 数据库用户手册。
在这里插入图片描述
/home/dmdba/dmdbms/drivers 存放连接 DM 数据库的驱动文件。
在这里插入图片描述
/home/dmdba/dmdbms/log 存放 DM 数据库日志,包括工具的日志、数据库日志、服务日志等。
在这里插入图片描述
/home/dmdba/dmdbms/samples 存放 DM 数据库各类配置文件的示例文件。
在这里插入图片描述
/home/dmdba/dmdbms/script/root 存放注册、注销 DM 数据库服务的工具,例如 dm_service_installer.sh 等。
在这里插入图片描述
/home/dmdba/dmdbms/tool 存放 DM 数据库的各个工具,例如 manager 管理工具、dbca 数据库配置助手等。
在这里插入图片描述
/home/dmdba/dmdbms/uninstall 目录存放卸载 DM 数据库的脚本。
在这里插入图片描述
/home/dmdba/dmdbms/web 目录存放 DM 数据库 dem 工具的 web 环境。
在这里插入图片描述

2、数据库实例目录

/data/dm/data 为数据库实例目录,该目录存放各个实例的文件。
在这里插入图片描述
以实例 DAMENG 为例,该目录下存放 DAMENG 实例的配置文件 *.ini、控制文件 dm.ctl、数据文件 *.DBF、日志文件 *.log 等。
在这里插入图片描述

1.6、

2、数据库操作

2.1、模式名、表空间、用户

  • 表空间其实就相当于mysql的库概念,达梦是分配表空间,而mysql是新建数据库。mysql是在数据库里建表插入数据,达梦是在表空间里建表插入数据。
  • 用户的模式(SCHEMA)指的是用户账号拥有的对象集,在概念上可将其看作是包含表、 视图、索引和权限定义的对象。
  • 默认情况模式与用户相同

2.2、创建表空间,并绑定用户和表空间

1、登录
disql SYSDBA/\"Dmdb#2025\"@localhost:5236

disql ZHUGE_IO/\"zhugeIO#2025\"@localhost:5236
2、创建表空间,用户赋权限
-- 创建表空间
CREATE TABLESPACE SDKV DATAFILE '/data/dm/data/DAMENG/SDKV.DBF' SIZE 256 AUTOEXTEND ON NEXT 256 MAXSIZE 512;
--创建用户绑定表空间
create user "ZHUGE_IO" IDENTIFIED BY "zhugeIO#2025" default tablespace "SDKV" default index tablespace "SDKV";
-- 给用户赋权限
-- grant "DBA" to "ZHUGE_IO";
grant "PUBLIC", "RESOURCE", "SOI" to  ZHUGE_IO;
grant  SELECT ANY TABLE,CREATE SESSIONCREATE TABLE,CREATE VIEW,CREATE INDEX,BACKUP DATABASE, INSERT TABLE, ALTER PROFILE, ALTER TABLE to ZHUGE_IO;

2.3、表空间

1、表空间操作
-- 查询所有表空间,需DBA权限
DROP TABLESPACE IF EXISTS SDKV; 
DROP TABLESPACE 'SDKV';

DROP TABLESPACE "SDKV" INCLUDING CONTENTS;
SELECT  "SDKV" FROM DBA_TABLESPACES;

SELECT TABLESPACE_NAME, STATUS, CONTENTS FROM DBA_TABLESPACES; 
SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS WHERE DEFAULT_TABLESPACE =  'SDKV';

SELECT TABLE_NAME FROM DBA_TABLES WHERE OWNER = 'ZHUGE_IO'; -- 将 'ZHUGE_IO' 替换为目标模式名
SELECT USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE FROM DBA_USERS;
SELECT USERNAME FROM ALL_USERS;

ALTER USER "ZHUGE_IO" IDENTIFIED BY "zhgeIO#2025"; -- 修改密码
DROP USER "ZHUGE_IO" CASCADE;  -- CASCADE级联删除用户对象
select * from DBA_USERS; -- 查询用户信息
SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'ZHUGE_IO';  -- 查看用户权限
select * from DBA_TABLESPACES;  -- 查看所有表空间 
select * from DBA_DATA_FILES; -- 查看表空间数据文件信息  
select ts.NAME, df.PATH from V$tablespace AS ts, V$DATAFILE AS df where ts.ID = df.GROUP_ID; --查询表空间与数据文件对应关系
2、用户操作
-- 查询当前用户有权限访问的表
SELECT TABLE_NAME, TABLESPACE_NAME FROM ALL_TABLES WHERE TABLESPACE_NAME = 'SDKV';
SELECT TABLESPACE_NAME, STATUS, CONTENTS FROM DBA_TABLESPACES;
SELECT SF_GET_UNICODE_FLAG();  -- 返回整数值
select UNICODE (); -- 查看字符集;0 表示 GB18030,1 表示 UTF-8,2 表示 EUC-KR
select SF_GET_PAGE_SIZE(); -- 查看页大小

2.4、管理表

https://eco.dameng.com/document/dm/zh-cn/pm/management-table.html#9.2.2%20%E6%8C%87%E5%AE%9A%E8%A1%A8%E7%9A%84%E8%81%9A%E9%9B%86%E7%B4%A2%E5%BC%95

2.5、创建表

1、T_ROLE表
CREATE TABLE   "T_ROLE"
(
"ROLE_ID" INT IDENTITY(1, 1) NOT NULL,
"ROLE_NAME" VARCHAR(200) NOT NULL,
"ROLE_CODE" VARCHAR(200) NOT NULL,
"COMMENTS" VARCHAR(400),
"DELETED" INT DEFAULT 0 NOT NULL,
"TENANT_ID" INT DEFAULT 1 NOT NULL,
"CREATE_TIME" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL,
"UPDATE_TIME" TIMESTAMP(6) DEFAULT CURRENT_TIMESTAMP NOT NULL,
NOT CLUSTER PRIMARY KEY("ROLE_ID"))   ;
COMMENT ON TABLE "T_ROLE" IS '角色表';
COMMENT ON COLUMN   "T_ROLE"."COMMENTS" IS '备注';
COMMENT ON COLUMN   "T_ROLE"."CREATE_TIME" IS '创建时间';
COMMENT ON COLUMN   "T_ROLE"."DELETED" IS '是否删除, 0否, 1是';
COMMENT ON COLUMN   "T_ROLE"."ROLE_CODE" IS '角色标识';
COMMENT ON COLUMN   "T_ROLE"."ROLE_ID" IS '角色id';
COMMENT ON COLUMN   "T_ROLE"."ROLE_NAME" IS '角色名称';
COMMENT ON COLUMN   "T_ROLE"."TENANT_ID" IS '租户id';
COMMENT ON COLUMN   "T_ROLE"."UPDATE_TIME" IS '修改时间';

INSERT INTO  T_ROLE(role_name,role_code,comments,deleted,tenant_id,create_time,update_time)  VALUES ('管理员', 'admin', '管理员', 0, 1, '2020-02-26 15:18:37', '2020-03-21 15:15:54');
2、EMP表
create table emp (
id int,
name varchar(255) not null,
email varchar(255),
dept_id int,
hire_date date,
-- 定义主键
primary key (id),
-- 定义唯一键
constraint uk_dept unique (dept_id),
-- 联合唯一约束
constraint uk_id_dept unique (id,dept_id)
);
comment  on table   emp is '客户基本信息表';
comment  on column  emp.id is '员工id';
comment  on column  emp.name is '姓名';
comment  on column  emp.email is '邮箱';
comment  on column  emp.dept_id is '部门id';
comment  on column  emp.hire_date is '入职日期';

2.6、查看表


-- 查看当前用户
SELECT CURRENT_USER;
-- 查看是否存在 SDKV 模式
SELECT * FROM SYSOBJECTS WHERE NAME = 'ZHUGE_IO' AND TYPE$ = 'SCH';
-- 查看你是否有权限访问该模式下的表
SELECT * FROM ALL_TABLES WHERE OWNER = 'ZHUGE_IO';
-- 如果存在且有权限,切换模式
SET SCHEMA 'SDKV';
-- 查询建表语句
SP_TABLEDEF('ZHUGE_IO', 'T_ROLE');

-- 查看当前用户模式下的所有表
SELECT TABLE_NAME FROM USER_TABLES;
-- 使用 ALL_TABLES (适用于有权限访问的情况),将 'ZHUGE_IO' 替换为目标模式名
SELECT TABLESPACE_NAME as 表空间,OWNER as 模式名,TABLE_NAME as 表名,TABLE_LOCK as 是否允许锁定,STATUS as 表状态 FROM ALL_TABLES WHERE OWNER = 'ZHUGE_IO';
-- 查看表级别的注释
SELECT TABLE_NAME, COMMENTS FROM USER_TAB_COMMENTS WHERE TABLE_NAME = 'T_ROLE';
-- 查看列级别的注释
SELECT COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'T_ROLE';
-- 获取列级别的注释
SELECT T.COLUMN_NAME, T.DATA_TYPE, C.COMMENTS
FROM USER_COL_COMMENTS C
JOIN USER_TAB_COLUMNS T ON C.COLUMN_NAME = T.COLUMN_NAME AND C.TABLE_NAME = T.TABLE_NAME
WHERE C.TABLE_NAME = 'T_ROLE';

2.7、

2.8、

2.9、

3、数据库维护

3.1、

3.2、

3.3、

3.4、

3.5、

3.6、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值