达梦(DM)数据库2种Linux常用安装方法与基础使用

简介

本文主要介绍数据库的安装与基础使用

数据库安装分为:可视化界面安装、命令行引导安装、静默安装3种方式

基础使用,主要介绍:表、视图、索引、模式的概念及使用

1、可视化界面安装

下载windows版本,解压安装包,打开安装界面根据提示安装,安装过程非常简单,不做详细介绍

2、命令引导安装

2.1 创建用户/用户组及目录(root用户)

groupadd dinstall #创建用户组

useradd  -g dinstall -m -d /home/dmdba -s /bin/bash  dmdba #创建用户

echo dmdba:123456 | chpasswd #设置密码

mkdir -p /home/dmdba/dmdbms #创建目录

chown dmdba:dinstall -R /home/dmdba/dmdbms #修改目录用户及用户组

chmod 775 -R /home/dmdba/dmdbms # 修改目录权限

2.2 添加防火墙策略(root用户)

客户生产环境中,从服务器安全方面考虑,不应该关闭防火墙,因此需要熟悉防火墙策略的配置

示例CentOS 7

-- 防火墙,开放5236端口

firewall-cmd --permanent --add-port=5236/tcp

firewall-cmd --reload    #重新加载防火墙配置才会起作用

-- 防火墙,移除5236端口

firewall-cmd --permanent --remove-port=5236/tcp

firewall-cmd --reload    #重新加载防火墙配置才会起作用

firewall-cmd --list-ports  #查看防火墙开放的端口列表

-- 开启防火墙

systemctl start firewalld

2.3 配置用户资源限制(root用户)

执行以下命令,修改 dmdba 用户资源限制:

vi /etc/security/limits.conf

文件末尾添加如下内容(上一章博客,有配置项详细说明):

dmdba soft core unlimited

dmdba hard core unlimited

dmdba soft nofile 65536

dmdba hard nofile 65536

dmdba soft nproc  65536

dmdba hard nproc  65536

dmdba soft stack  65536

dmdba hard stack  65536

 

2.4用户环境变量(root用户)

执行以下命令,修改 dmdba 用户环境变量:

vi /home/dmdba/.bash_profile

文件末尾添加如下内容:

export DM_HOME=/home/dmdba/dmdbms

export PATH=$PATH:$DM_HOME/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

2.5挂载iso文件(root用户)

前置步骤,先上传安装包,到服务器的/opt目录

解压安装包:

yum源安装unzip,如果不能连接公网,可以挂载离线iso系统镜像,并修改yum源配置

cd /opt

yum install -y unzip

unzip dm8_20220304_x86_rh6_64_ent.zip

mount -o loop dm8_20220304_x86_rh6_64_ent/dm8_20220304_x86_rh6_64_ent_8.1.2.114.iso /mnt/

2.6安装数据库(dmdba用户)

切换至 dmdba 用户下,在 /mnt 目录下使用命令行安装数据库程序,依次执行以下命令安装 DM 数据库。

普通引导安装:

[root@localhost opt]# su - dmdba

[dmdba@localhost ~]$ cd /mnt/

[dmdba@localhost mnt]$

[dmdba@localhost mnt]$ ll

total 927088

-r-xr-xr-x. 1 root root   2802237 Mar  4 13:39 DM8 Install.pdf

-r-xr-xr-x. 1 root root 946534466 Mar  4 13:44 DMInstall.bin

[dmdba@localhost mnt]$ ./DMInstall.bin -i

Please select the installer's language (E/e:English C/c:Chinese) [E/e]:

Extract install files..........

Welcome to DM DBMS Installer

Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:n

Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:y

TimeZone:

[ 1]: GTM-12=West Date Line

[ 2]: GTM-11=Samoa

[ 3]: GTM-10=Hawaii

[ 4]: GTM-09=Alaska

[ 5]: GTM-08=Pacific(America and Canada)

[ 6]: GTM-07=Arizona

[ 7]: GTM-06=Central(America and Canada)

[ 8]: GTM-05=East(America and Canada)

[ 9]: GTM-04=Atlantic(America and Canada)

[10]: GTM-03=Brasilia

[11]: GTM-02=Middle Atlantic

[12]: GTM-01=Azores

[13]: GTM=Greenwich Mean Time

[14]: GTM+01=Sarajevo

[15]: GTM+02=Cairo

[16]: GTM+03=Moscow

[17]: GTM+04=AbuDhabi

[18]: GTM+05=Islamabad

[19]: GTM+06=Dakar

[20]: GTM+07=BangKok,Hanoi

[21]: GTM+08=China

[22]: GTM+09=Seoul

[23]: GTM+10=Guam

[24]: GTM+11=Solomon

[25]: GTM+12=Fiji

[26]: GTM+13=Nukualofa

[27]: GTM+14=Kiribati

Please Select the TimeZone [21]:21

Installation Type:

1 Typical

2 Server

3 Client

4 Custom

Please Input the number of the Installation Type [1 Typical]:1

Require Space: 1579M

Please Input the install path [/home/dmdba/dmdbms]:

Available Space:50G

Please Confirm the install path(/home/dmdba/dmdbms)? (Y/y:Yes N/n:No) [Y/y]:y

Pre-Installation Summary

Installation Location: /home/dmdba/dmdbms

Require Space: 1579M

Available Space: 50G

Version Information:

Expire Date:

Installation Type: Typical

Confirm to Install? (Y/y:Yes N/n:No):y

2022-04-21 14:48:49

[INFO] Installing DM DBMS...

2022-04-21 14:48:50

[INFO] Installing BASE Module...

2022-04-21 14:49:09

[INFO] Installing SERVER Module...

2022-04-21 14:49:11

[INFO] Installing CLIENT Module...

2022-04-21 14:49:32

[INFO] Installing DRIVERS Module...

2022-04-21 14:49:52

[INFO] Installing MANUAL Module...

2022-04-21 14:49:57

[INFO] Installing SERVICE Module...

2022-04-21 14:49:59

[INFO] Move log file to log directory.

2022-04-21 14:50:00

[INFO] Installed DM DBMS completely.

Please execute the commands by root:

/home/dmdba/dmdbms/script/root/root_installer.sh

End

[dmdba@localhost mnt]$ exit

logout

[root@localhost opt]# /home/dmdba/dmdbms/script/root/root_installer.sh

Move /home/dmdba/dmdbms/bin/dm_svc.conf to /etc

Modify the files' mode of DM Server

Create the DmAPService service

Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.

Finished to create the service (DmAPService)

Start the DmAPService service

2.7初始化数据库(dmdba用户)

su - dmdba

dminit PATH=/home/dmdba/dmdbms DB_NAME=dmmpp INSTANCE_NAME=DMMPP PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 PORT_NUM=5236

参数说明:

1、参数PATH数据库安装路径

2、参数DB_NAME初始化数据库名字,是一个数据库的唯一标识,就像人的身份证号一样

3、参数INSTANCE_NAME初始化数据库实例名字, 数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名

4PAGE_SIZE数据文件使用的页大小,缺省使用 8K,只能是 4K8K16K 32K 之一

5EXTENT_SIZE数据文件使用的簇大小,只能是 16 页或 32 页之一,缺省使用 16

6CASE_SENSITIVE标识符大小写敏感,默认值为 Y。只能是’Y, y, N, n, 1, 0’之一

7CHARSET字符集选项,默认值为 00 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR

8LOG_PATH初始数据库日志文件的路径,文件路径长度最大为 256

9LOG_SIZE初始数据库日志文件的大小,单位MB

10PORT_NUM初始化时设置 dm.ini 中的 PORT_NUM,默认 5236,取值范围:1024~65534

2.8注册服务(root用户)

cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/dmmpp/dm.ini -p DMSERVER

2.9启动数据库(root用户)

服务注册成功后,启动数据库,如下所示:

systemctl start DmServiceDMSERVER.service

 

停止数据库,如下所示:

systemctl stop DmServiceDMSERVER.service

重启数据库,如下所示:

systemctl restart DmServiceDMSERVER.service

2.10验证数据库(dmdba用户)

[root@localhost mnt]# su - dmdba

Last login: Thu Apr 21 14:56:23 CST 2022 on pts/0

[dmdba@localhost ~]$ disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is normal, state is open

login used time : 4.269(ms)

disql V8

SQL> select instance_name from v$instance;

LINEID     INSTANCE_NAME

---------- -------------

1          DMMPP

used time: 4.823(ms). Execute id is 55200.

SQL>

3、静默安装

3.1准备步骤(root用户)

请参考命令引导安装,步骤1~5

3.2创建静默安装配置文件(root用户)

-- 使用vi编辑器,将文件内容,复制到服务器

vi /home/dmdba/auto_install.xml

文件内容(请根据实际环境调整):

<?xml version="1.0"?>
<DATABASE>
    <!--安装数据库的语言配置,安装中文版配置 ZH,英文版配置 EN,不区分大小写。不允许为空。-->
    <LANGUAGE>en</LANGUAGE>
    <!--安装程序的时区配置,默认值为+08:00,范围:-12:59 ~ +14:00 -->
    <TIME_ZONE>+08:00</TIME_ZONE>
    <!-- key 文件路径,没有可以留空 -->
    <KEY></KEY>
    <!--安装程序组件类型,取值 0、1、2,0 表示安装全部,1 表示安装服务器,2 表示安装客户端。默认为 0。 -->
    <INSTALL_TYPE>0</INSTALL_TYPE>
    <!--安装路径,不允许为空。 -->
    <INSTALL_PATH>/home/dmdba/dmdbms</INSTALL_PATH>
    <!--是否初始化库,取值 Y/N、y/n,不允许为空。 -->
    <INIT_DB>Y</INIT_DB>
    <!--数据库实例参数 -->
    <DB_PARAMS>
    <!--初始数据库存放的路径,不允许为空 -->
    <PATH>/home/dmdba/dmdbms/data</PATH>
    <!--初始化数据库名字,默认是 DAMENG,不超过 128 个字符 -->
    <DB_NAME>DAMENG</DB_NAME>
    <!--初始化数据库实例名字,默认是 DMSERVER,不超过 128 个字符 -->
    <INSTANCE_NAME>DMSERVER</INSTANCE_NAME>
    <!--初始化时设置 dm.ini 中的 PORT_NUM,默认 5236,取值范围:1024~65534 -->
    <PORT_NUM>5236</PORT_NUM>
    <!--初始数据库控制文件的路径,文件路径长度最大为 256 -->
    <CTL_PATH></CTL_PATH>
    <!--初始数据库日志文件的路径,文件路径长度最大为 256 -->
    <LOG_PATHS>
        <LOG_PATH>/home/dmdba/dmdbms/data/dm01.log</LOG_PATH>
        <LOG_PATH>/home/dmdba/dmdbms/data/dm02.log</LOG_PATH>
    </LOG_PATHS>
    <!--数据文件使用的簇大小,只能是 16 页或 32 页之一,缺省使用 16 页 -->
    <EXTENT_SIZE>16</EXTENT_SIZE>
    <!--数据文件使用的页大小,缺省使用 8K,只能是 4K、8K、16K 或 32K 之一 -->
    <PAGE_SIZE>8</PAGE_SIZE>
    <!--日志文件使用的簇大小,默认是 256,取值范围 64 和 2048 之间的整数 -->
    <LOG_SIZE>256</LOG_SIZE>
    <!--标识符大小写敏感,默认值为 Y。只能是’Y’, ’y’, ’N’, ’n’, ’1’, ’0’之一 -->
    <CASE_SENSITIVE>Y</CASE_SENSITIVE>
    <!--字符集选项,默认值为 0。0 代表 GB18030,1 代表 UTF-8,2 代表韩文字符集 EUC-KR-->
    <CHARSET>0</CHARSET>
    <!--设置为 1 时,所有 VARCHAR 类型对象的长度以字符为单位,否则以字节为单位。默认值为 0。 -->
    <LENGTH_IN_CHAR>0</LENGTH_IN_CHAR>
    <!--字符类型在计算 HASH 值时所采用的 HASH 算法类别。0:原始 HASH 算法;1:改进的HASH 算法。默认值为 1。 -->
    <USE_NEW_HASH>1</USE_NEW_HASH>
    <!--初始化时设置 SYSDBA 的密码,默认为 SYSDBA,长度在 9 到 48 个字符之间 -->
    <SYSDBA_PWD></SYSDBA_PWD>
    <!--初始化时设置 SYSAUDITOR 的密码,默认为 SYSAUDITOR,长度在 9 到 48 个字符之间 -->
    <SYSAUDITOR_PWD></SYSAUDITOR_PWD>
    <!--初始化时设置 SYSSSO 的密码,默认为 SYSSSO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 -->
    <SYSSSO_PWD></SYSSSO_PWD>
    <!--初始化时设置 SYSDBO 的密码,默认为 SYSDBO,长度在 9 到 48 个字符之间,仅在安全版本下可见和可设置 -->
    <SYSDBO_PWD></SYSDBO_PWD>
    <!--初始化时区,默认是东八区。格式为:正负号小时:分钟,范围:-12:59 ~ +14:00-->
    <TIME_ZONE>+08:00</TIME_ZONE>
    <!--是否启用页面内容校验,0:不启用;1:简单校验;2:严格校验(使用 CRC16 算法生成校验码)。默认 0 -->
    <PAGE_CHECK>0</PAGE_CHECK>
    <!--设置默认加密算法,不超过 128 个字符 -->
    <EXTERNAL_CIPHER_NAME></EXTERNAL_CIPHER_NAME>
    <!--设置默认 HASH 算法,不超过 128 个字符 -->
    <EXTERNAL_HASH_NAME></EXTERNAL_HASH_NAME>
    <!--设置根密钥加密引擎,不超过 128 个字符 -->
    <EXTERNAL_CRYPTO_NAME></EXTERNAL_CRYPTO_NAME>
    <!--全库加密密钥使用的算法名。算法可以是 DM 内部支持的加密算法,或者是第三方的加密算法。默认使用"AES256_ECB"算法加密,最长为 128 个字节 -->
    <ENCRYPT_NAME></ENCRYPT_NAME>
    <!--指定日志文件是否加密。默认值 N。取值 Y/N,y/n,1/0 -->
    <RLOG_ENC_FLAG>N</RLOG_ENC_FLAG>
    <!--用于加密服务器根密钥,最长为 48 个字节 -->
    <USBKEY_PIN></USBKEY_PIN>
    <!--设置空格填充模式,取值 0 或 1,默认为 0 -->
    <BLANK_PAD_MODE>0</BLANK_PAD_MODE>
    <!--指定 system.dbf 文件的镜像路径,默认为空 -->
    <SYSTEM_MIRROR_PATH></SYSTEM_MIRROR_PATH>
    <!--指定 main.dbf 文件的镜像路径,默认为空 -->
    <MAIN_MIRROR_PATH></MAIN_MIRROR_PATH>
    <!--指定 roll.dbf 文件的镜像路径,默认为空 -->
    <ROLL_MIRROR_PATH></ROLL_MIRROR_PATH>
    <!--是否是四权分立,默认值为 0(不使用)。仅在安全版本下可见和可设置。只能是 0 或 1-->
    <PRIV_FLAG>0</PRIV_FLAG>
    <!--指定初始化过程中生成的日志文件所在路径。合法的路径,文件路径长度最大为 257(含结束符),不包括文件名-->
    <ELOG_PATH></ELOG_PATH>
    </DB_PARAMS>
    <!--是否创建数据库实例的服务,值 Y/N y/n,不允许为空,不初始化数据库将忽略此节点。非 root 用户不能创建数据库服务。 -->
    <CREATE_DB_SERVICE>Y</CREATE_DB_SERVICE>
    <!--是否启动数据库,值 Y/N y/n,不允许为空,不创建数据库服务将忽略此节点。 -->
    <STARTUP_DB_SERVICE>Y</STARTUP_DB_SERVICE>
</DATABASE>

-- 执行命令(root用户执行)

cd /mnt

./DMInstall.bin -q /home/dmdba/auto_install.xml

说明:

1、安装完成后,服务已注册成功,服务名称DmServiceDMSERVER

3.3启动数据库(root用户)

服务注册成功后,启动数据库,如下所示:

systemctl start DmServiceDMSERVER.service

 

停止数据库,如下所示:

systemctl stop DmServiceDMSERVER.service

重启数据库,如下所示:

systemctl restart DmServiceDMSERVER.service

3.3验证数据库(dmdba用户)

[root@localhost mnt]# su - dmdba

Last login: Thu Apr 21 14:56:23 CST 2022 on pts/0

[dmdba@localhost ~]$ disql SYSDBA/SYSDBA

Server[LOCALHOST:5236]:mode is normal, state is open

login used time : 4.269(ms)

disql V8

SQL> select instance_name from v$instance;

LINEID     INSTANCE_NAME

---------- -------------

1          DMMPP

used time: 4.823(ms). Execute id is 55200.

SQL>

4、数据库简单使用

4.1模式

模式:是数据库中全体数据的逻辑结构和特征的描述,在关系型数据库中,模式的具体表现是一系列表及表与表之间的联系。

-- 创建模式,名称为dmtest

create schema dmtest;

4.2基本表

基本表:基本表就是一个关系及属性的描述,如:学生(学好,姓名,性别,班级)

-- 创建数据表

drop table if exists t_student_info;

create table t_student_info(

stu_no bigint,

stu_name varchar2(30),

stu_sex_code char(1),

stu_class varchar2(20)

);

-- 表添加注释

comment on table t_student_info is '学生信息';

-- 列添加注释

comment on column t_student_info.stu_no is '学号';

comment on column t_student_info.stu_name is '姓名';

comment on column t_student_info.stu_sex_code is '性别';

comment on column t_student_info.stu_class is '班级';

-- 创建数据表

drop table if exists tr_sex;

create table tr_sex(

stu_sex_code char(1),

stu_sex_name char(2)

);

-- 表添加注释

comment on table tr_sex is '性别维表';

-- 列添加注释

comment on column tr_sex.stu_sex_code is '性别编码';

comment on column tr_sex.stu_sex_name is '性别名称';

-- 插入数据到表中

insert into t_student_info(stu_no,stu_name,stu_sex_code,stu_class) values (10001,'张三','1','三年级2');

insert into t_student_info(stu_no,stu_name,stu_sex_code,stu_class) values (10002,'李四','1','五年级3');

insert into t_student_info(stu_no,stu_name,stu_sex_code,stu_class) values (10003,'王琳','2','二年级1');

insert into tr_sex(stu_sex_code,stu_sex_name) values ('1','');

insert into tr_sex(stu_sex_code,stu_sex_name) values ('2','');

-- 查询表记录

select * from t_student_info;

4.3视图

视图:视图是一种外模式,是建立在基础表之上的数据查询(单表或者多表关联)

-- 单表创建视图

create or replace view v_t_student_info_1 as select * from t_student_info;

-- 查询视图数据

select * from v_t_student_info_1;

-- 创建表关联视图

create or replace view v_t_student_info_2 as select a.*,b.stu_sex_name from t_student_info a inner join tr_sex b on a.stu_sex_code = b.stu_sex_code;

-- 查询视图数据ALTER

select * from v_t_student_info_2;

4.4索引

索引:数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信模式的作用

-- 索引

create index idx_t_student_info on t_student_info(stu_no);

-- 查看SQL的执行计划

explain select * from t_student_info where stu_no = 10102;

如下图的执行计划解析,可以看出来,已经正确使用索引,进行SQL条件过滤数据

 更多产品资料,请查阅官方网站:https://eco.dameng.com

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值