2.达梦数据库安装及操作

前言

本篇博客主要内容是关于达梦数据库的安装、实例初始化以及数据库常用操作。

数据库系统在设计和管理过程中是需要出于多方面的考虑来着,尤其特别需要注重数据库的性能、可靠性、安全性和可拓展性,由于自己是小白的原因,大多数东西都会跟达梦官网内容相同,包括一些操作系统用户的权限控制(不会给予过高权限)、参数调优等。

一、安装部署

达梦数据库的常规安装部署方式有 Window 以及 Linux 两种方式,而常规的生产数据库更多是在 Linux 环境上操作,所以选择了 Linux 环境作为安装部署以及数据库管理的主要环境,Window 作为桌面的可视化连接工具(DM 数据库 window 安装

1 服务器信息

本文演示环境如下 :

系统CPU内存磁盘网卡数据库版本
redhat 7.91C2G50G千兆DM8

2 环境配置

2.1 新建 dmdba 用户

建议按照官网进行用户权限控制,模拟实际生产环境使用。

## 创建用户所在组并查看组是否创建成功,组名为 dinstall,组ID为 2001
groupadd dinstall -g 2001;getent group dinstall

## 创建用户,-s 确保新用户在登录时将使用 Bash 作为其命令行解释器
useradd  -G dinstall -m -d /home/dmdba -s /bin/bash -u 2001 dmdba

## 修改命令
passwd dmdba

## 查看是否符合预期
getent passwd dmdba;groups dmdba

用户

2.2 修改文件打开最大数
## 获取是否存有输入目标内容
grep -vE "^#|^\s*$" /etc/security/limits.conf

## 追加配置信息
cat >> /etc/security/limits.conf  <<EOF
## dm start
dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited
## dm end
EOF

## 使用安装用户进行配置检查
grep -vE "^#|^\s*$" /etc/security/limits.conf
su - dmdba 
ulimit -a

参数

  • 参数说明

nice:调整进程的调度优先级,影响进程获得的 CPU 时间;
as:数据库进程所允许最大虚拟内存寻址空间限制;
fsize:数据库进程所允许寻址的文件大小;
nproc:用户或用户组可以创建的最大进程数,限制资源;
nofile:一个用户或用户组可以打开的最大文件描述符数量;
core:数据库出现故障时产生 core 文件用于故障诊断;
data:数据库进程所允许分配的数据内存大小;

2.3 目录规划

规划并创建数据库实例的保存目录、归档保存目录以及备份保存目录。

## 实例保存目录
mkdir -p /opt/dm/data
## 归档保存目录
mkdir -p /opt/dm/arch
## 备份保存目录
mkdir -p /opt/dm/dmbak
## 日志保存目录
mkdir -p /opt/dm/dmlog

## 赋权,实例配置文件未修改该部分,需要进行添加
chown -R dmdba:dinstall /opt/dm/data
chown -R dmdba:dinstall /opt/dm/arch
chown -R dmdba:dinstall /opt/dm/dmbak
chown -R dmdba:dinstall /opt/dm/dmlog
chmod -R 755 /opt/dm/data
chmod -R 755 /opt/dm/arch
chmod -R 755 /opt/dm/dmbak
chmod -R 755 /opt/dm/dmlog

3 数据库安装

3.1 挂载镜像

数据库安装包下载路径

## DM 主要是通过 iso 挂载镜像进行安装,只读方式进行挂载
mount -o loop dm8_20240408_x86_rh7_64.iso /mnt
3.2 数据库安装

安装相对比较简单,部分步骤被省略,需要可以参考官网安装步骤

su - dmdba
cd /mnt
## 命令行安装
./DMInstall.bin -i
## 默认安装
## 

安装图

3.3 切换 root 用户
## 创建 DmAPService,数据库备份需要
/home/dmdba/dmdbms/script/root/root_installer.sh

## 配置环境变量
echo "export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool" >>/home/dmdba/.bash_profile

## 切回数据库用户
su - dmdba
source .bash_profile

环境变量

4 初始化实例

dminit 是 DM 数据库实例的初始化工具,本次配置会通过配置文件进行初始化。

4.1 参数分析

通过查看相应的帮助文档可以看到可设置的大量参数,如下图(蓝色为实例初始化无法后更改参数,需要重点注意,红色为重要参数
参数设置

4.2 实例初始化

使用 dmdba 用户进行实例初始化。

## 单机实例配置化文件
cat > /home/dmdba/dmdbms/bin/dminit.ini << EOF
[DBSERVER]
PATH = /opt/dm/data
PAGE_SIZE = 32
EXTENT_SIZE = 32
CASE_SENSITIVE = Y
CHARSET = 1
PORT_NUM = 5237
INSTANCE_NAME = DBSERVER
DB_NAME = DMTEST
EOF
## 进行初始化
/home/dmdba/dmdbms/bin/dminit CONTROL=/home/dmdba/dmdbms/bin/dminit.ini

初始化实例

4.3 注册服务

需用使用 root 用户进行服务器注册,主要用于服务器重启后数据库实例可进行启动。

## 进行注册,卸载为相同路径下另外的脚本 dm_service_uninstaller.sh
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dm/data/DMTEST/dm.ini -p DMTEST

二、数据库管理操作

1. 启动与关闭数据库

## 查看注册的 DM 服务
ls -trlh /home/dmdba/dmdbms/bin/ |awk '/Service/ && !/so/'
## 查看数据库状态
/home/dmdba/dmdbms/bin/dmserver /opt/dm/data/DMTEST/dm.ini
## 启动数据库
/home/dmdba/dmdbms/bin/DmServiceDMTEST start
## 关闭数据库
/home/dmdba/dmdbms/bin/DmServiceDMTEST stop

服务

2.删除和上下翻页环境配置

执行过程中经常需要上下翻看历史 SQL ,可参考塔库米博文

## 
yum search rlwrap
## 安装
yum install -y rlwrap
## 配置环境变量
cat >> /home/dmdba/.bash_profile << EOF
export PATH=$DM_HOME/bin:$PATH
alias disql='rlwrap disql' 
alias dmrman='rlwrap dmrman'
EOF
source /home/dmdba/.bash_profile

3. 数据库操作

3.1创建表空间
## 连接数据库
/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@127.0.0.1:5237

表空间的初始大小最低为 128 M。

-- 创建表空间 TEST, 指定数据库文件为 '/opt/dm/data/DAMENG/TEST.DBF',初始大小为 128 M,打开自动扩展,每次制动扩展 2 M ,扩展上限 1024 M,使用 RC4 加密算法
create tablespace "TEST" datafile '/opt/dm/data/DMTEST/TEST.DBF' size 128 autoextend on next 2 maxsize 1024 CACHE = NORMAL encrypt with RC4;
3.2 创建用户
-- 创建用户 TEST 关联 TEST 表空间以及索引空间
create user "TEST" identified by "DM@TEST1234" 
default tablespace "TEST"
default index tablespace "TEST";
-- 赋权
grant "DBA","PUBLIC","SOI" to "TEST";
--退出数据库
exit;
## 切换用户
/home/dmdba/dmdbms/bin/disql TEST@127.0.0.1:5237
3.3 创建表、插入数据、查询数据
-- 创建表 CITY
CREATE TABLE city
(
 city_id CHAR(3) NOT NULL,
 city_name VARCHAR(40) NULL,
 region_id INT NULL
);
-- 插入数据
INSERT INTO city(city_id,city_name,region_id) VALUES('BJ','北京',1);
INSERT INTO city(city_id,city_name,region_id) VALUES('SJZ','石家庄',1);
INSERT INTO city(city_id,city_name,region_id) VALUES('SH','上海',2);
INSERT INTO city(city_id,city_name,region_id) VALUES('NJ','南京',2);
INSERT INTO city(city_id,city_name,region_id) VALUES('GZ','广州',3);
INSERT INTO city(city_id,city_name,region_id) VALUES('HK','海口',3);
INSERT INTO city(city_id,city_name,region_id) VALUES('WH','武汉',4);
INSERT INTO city(city_id,city_name,region_id) VALUES('CS','长沙',4);
INSERT INTO city(city_id,city_name,region_id) VALUES('SY','沈阳',5);
INSERT INTO city(city_id,city_name,region_id) VALUES('XA','西安',6);
INSERT INTO city(city_id,city_name,region_id) VALUES('CD','成都',7);
--查询数据
select * from city limit 3;
3.4 创建视图
--对 CITY 表创建一个视图,命名为 V_CITY,保存 region_id 小于 4 的数据,列名有:city_id,city_name,region_id。
CREATE VIEW v_city AS
SELECT
        city_id  ,
        city_name ,
        region_id
FROM
        city
WHERE
        region_id < 4;
-- 查询视图结果
SELECT * FROM v_city;

视图

3.5 创建存储过程
-- 创建一个名为 PROC_1 的存储过程,入参数据类型为 INT,变量 B 赋予初始值 10,输出变量 A 的值为输入的变量 A 值与变量 B 值之和
CREATE
PROCEDURE proc_1
        (a IN OUT INT)
AS
        b INT:=10;
BEGIN
        a:=a+b;
        PRINT 'PROC_1调用结果:'||a;
END;
-- 调用存储过程,输入变量值 3,得到结果值 13
CALL proc_1(3);

存储过程

3.6 创建序列
-- 建序列 SEQ_QUANTITY,起始值为 5,增量值为 2,最大值为 200。
CREATE SEQUENCE seq_quantity START WITH 5 INCREMENT BY 2 MAXVALUE 200;
--查询下一个值
SELECT seq_quantity.nextval FROM dual;

序列

3.7 创建函数
---创建一个名为 FUN_1 的存储函数。该函数的返回类型为 INT 类型。两个参数 A、B 的和赋给了变量 S,RETURN 语句则将变量 S 的值作为函数的返回值返回。
CREATE
        FUNCTION fun_1
                (a INT, b INT)
                RETURN INT
        AS
                s INT;
        BEGIN
                s:=a+b;
                RETURN s;
        END;
---调用函数,给变量 A、B 分别赋值 4 和 5,得出结果 9
SELECT fun_1(4,5);

函数

3.8 创建触发器
--创建一个触发器 TRG_UPD,当对表 CITY 进行更新操作时,定义的触发器 TRG_UPD 将被激发。
CREATE TRIGGER trg_upd AFTER
        UPDATE ON city
        FOR EACH ROW
                BEGIN
                PRINT 'UPDATE OPERATION ON CITY !!';
             END;
--对 CITY 表数据进行更新操作,测试触发器结果
UPDATE city SET city.region_id=8 WHERE city.city_id='XA';

触发器

至此对达梦数据库的安装部署以及操作有了基本了解,本篇博客到此结束!

参考内容

  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值