1. 准备工作

1.1 创建数据库用户

1.1.1 创建用户组

groupadd dinstall

1.1.2 创建用户

# 创建用户
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
# 查看是否创建成功
id dmdba
# 设置密码
passwd dmdba

1.2 创建安装目录

1.2.1 创建安装目录

# 创建达梦安装路径
mkdir /dm
# 更改文件夹的所属用户组、所属用户
chown dmdba:dinstall /dm
# 查看是否更改成功
ll -ld /dm

1.3 挂载镜像

挂载达梦ISO镜像文件
# 在mnt下创建dm目录
mkdir /mnt/dm
# 挂载镜像 mount /镜像地址 /挂载的目标路径
mount /opt/dm8_20231109_x86_kylin10_64.iso /mnt/dm

# 切换到dmdba用户下
su - dmdba
# 查看挂载目录
cd /mnt/dm
ll

2. 数据库安装

2.1 设置DISPLAY值

# 打开命令行(root用户)
# 允许所有主机上的应用程序显示图形界面
xhost +

# 查看DISPLAY值
echo $DISPLAY

# 切换到dmdba用户
su - dmdba

# 查看DISPLAY值
echo $DISPLAY

# 设置DISPLAY值(具体以查询出来的值为准)
export DISPLAY=:0.0

2.2 指定临时目录

# 创建临时目录
mkdir /home/dmdba/tmp
# 指定临时目录
export DM_INSTALL_TMPDIR=/home/dmdba/tmp

2.3 界面化安装

2.3.1 执行安装命令

# 进入挂载目录
cd /mnt/dm
# 执行安装程序
./DMInstall.bin

2.3.2 根据页面提示选择

[确定]->[下一步]-> <选择相应的key文件> [下一步] -> [下一步] -> <根据要求选择安装目录> [下一步] -> [安装]

2.3.3 启动DmAPService服务

# 以root用户执行
# 启动DmAPService服务
/dm/data/script/root/root_installer.sh

3. 创建数据库实例

可以在数据库安装完成选择[初始化数据库],或者使用安装目录下的tool/dbca.sh配置数据库(创建实例、删除实例、创建服务、删除服务)

需要注意,达梦的每一个数据库都需要使用一个独立的端口

[创建数据库实例] [下一步] -> [下一步] -> <选择数据库目录> [下一步] -> <根据要求配置数据库名、实例名、端口号> [下一步] -> [下一步] -> <根据要求配置簇大小、页大小、字符集等> [下一步] -> <口令配置>[下一步] -> [下一步] -> [完成]

# 以root用户执行
# 移动自定义服务配置文件
mv /home/dmdba/dmdbms/bin/DmServicePROD.service /usr/lib/systemd/system/DmServicePROD.service
# 将服务设置为开机自启
systemctl enable DmServicePROD.service
# 启动数据库实例
systemctl start DmServicePROD.service

# 重启服务使参数生效
systemctl restart DmServicePROD.service

4. 数据库配置

4.1 兼容性设置

  • 使用 SYSDBA 用户登录数据库命令行工具
  • 执行语句:

    # 修改兼容性配置(静态参数)
    # MEM:内存修改(立即生效,重启失效。适用于动态参数)
    # SPFILE:文件修改(重启生效,长久有效。适用于静态参数)
    # BOTH:MEM & SPFILE(立即生效,长久有效。适用于动态参数)
    # 0:不兼容
    # 1:兼容SQL92标准
    # 2:部分兼容Oracle
    # 3:部分兼容MS SQLServer
    # 4:部分兼容MySQL
    # 5:兼容DM6
    # 6:部分兼容TERADATA
    
    alter system set 'COMPATIBLE_MODE' = 2 spfile;

5. 表空间管理

5.1 创建表空间

  • 使用 SYSDBA 用户登录数据库命令行工具
./disql SYSDBA/Dameng123@127.0.0.1:5238
  • 创建表空间语句如下:
create tablespace TBS datafile '/dm/data/DMDB/TBS01.DBF' SIZE 64 autoextend on next 1 maxsize 1024, '/dm/data/DMDB/TBS02.DBF' SIZE 64 autoextend on next 1 maxsize 1024;

6. 用户和角色管理

6.1 创建角色

  • 创建角色语句:
# 创建角色
create role ROLEDM;
# 为角色分配权限
grant create table, create view, create index to ROLEDM;

6.2 创建用户

  • 创建用户语句:
# 创建用户,指定密码及表空间
create user TEST identified by Dameng123 default tablespace TBS;
# 设定用户登录限制
alter user TEST limit FAILED_LOGIN_ATTEMPS 5,PASSWORD_LOCK_TIME 3;

6.3 授予角色给用户

  • 授予角色语句:
grant ROLEDM to TEST;

7. 表管理

7.1 创建表

  • 在 TEST 用户下
  • 创建 MAJORS 表语句:
CREATE TABLE MAJORS (
    MAJOR_ID INT NOT NULL,
    MAJOR_NAME VARCHAR(50),
    DEPARTMENT_NAME VARCHAR(50)
);
  • 创建 COURSES 表语句:
CREATE TABLE COURSES (
    COURSE_ID INT NOT NULL,
    COURSE_NAME VARCHAR(50) NOT NULL,
    MAJOR_ID INT,
    TEACHER_NAME VARCHAR(50)
);
  • 创建 STUDENTS 表语句:
CREATE TABLE STUDENTS (
    STUDENT_ID INT NOT NULL,
    STUDENT_NAME VARCHAR(20) NOT NULL,
    STUDENT_SEX VARCHAR(6),
    STUDENT_BIRTH DATE NOT NULL,
    STUDENT_ADDR VARCHAR(255),
    STUDENT_MAJOR INT
);

7.2 设置主键

  • 命令行方式,在 TEST 用户下
ALTER TABLE MAJORS ADD CONSTRAINT PK_MAJORS PRIMARY KEY (MAJOR_ID);

ALTER TABLE COURSES ADD CONSTRAINT PK_COURSES PRIMARY KEY (COURSE_ID);

ALTER TABLE STUDENTS ADD CONSTRAINT PK_STUDENTS PRIMARY KEY (STUDENT_ID);

7.3 设置外键

  • 命令行方式,在 TEST 用户下
ALTER TABLE COURSES ADD CONSTRAINT FK_COURSES_MAJORS FOREIGN KEY (MAJOR_ID) REFERENCES MAJORS(MAJOR_ID);

ALTER TABLE STUDENTS ADD CONSTRAINT FK_STUDENTS_MAJORS FOREIGN KEY (STUDENT_MAJOR) REFERENCES MAJORS(MAJOR_ID);

8. 数据导入

  1. 使用 TEST 用户登录数据库命令行工具。
  2. 执行导入脚本:
start /opt/script.sql
'/opt/script.sql

9. 数据库备份

9.1 开启数据库归档

  • 命令行方式,使用 SYSDBA 用户登录
ALTER DATABASE MOUNT;

ALTER DATABASE ARCHIVELOG;

ALTER DATABASE ADD ARCHIVELOG 'type=local,dest=/dm/arch,file_size=128,space_limit=20480';

ALTER DATABASE OPEN;

9.2 联机完全备份

  • 命令行方式,使用 SYSDBA 用户登录
BACKUP DATABASE FULL BACKUPSET '/dm/backup/FULL_BACK';

9.3 逻辑导出

  • 命令行方式,使用 TEST 用户登录
./dexp  userid=test/Dameng123:5238 directory=/dm/backup file=test.dmp log=test.log full=y

10. 作业管理

10.1 创建代理环境

  • 命令行方式,使用 SYSDBA 用户登录
SP_INIT_JOB_SYS(1); 

10.1 创建作业FULL_BACKUP

  • 图形化方式
-- 创建作业:推荐图形化操作 代理-作业
# 以下为图形化界面创建后生成的DDL语句

call SP_JOB_CONFIG_START('FULL_BACKUP');

call SP_ADD_JOB_STEP('FULL_BACKUP', 'JOB01', 6, '00000000/dm/backup/FULL_BACK', 0, 0, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('FULL_BACKUP', 'JOB01', 1, 2, 1, 1, 0, '23:00:00', NULL, '2024-10-20 00:05:35', NULL, '');

call SP_JOB_CONFIG_COMMIT('FULL_BACKUP');

10.2 创建作业INCRE_BACKUP

  • 图形化方式
-- 创建作业:推荐图形化操作 代理-作业
# 以下为图形化界面创建后生成的DDL语句

call SP_CREATE_JOB('INCRE_BACKUP',1,0,'',0,0,'',0,'INC_BACKUP');

call SP_JOB_CONFIG_START('INCRE_BACKUP');

call SP_ADD_JOB_STEP('INCRE_BACKUP', 'job1', 6, '40000000/dm/backup/FULL_BACK', 0, 0, 0, 0, NULL, 0);

call SP_ADD_JOB_SCHEDULE('INCRE_BACKUP', 'job2', 1, 2, 1, 126, 0, '23:00:00', NULL, '2024-10-20 00:10:50', NULL, '');

call SP_JOB_CONFIG_COMMIT('INCRE_BACKUP');

11. 数据库日常管理

11.1 调整TEMP表空间大小

  • 命令行方式,使用 SYSDBA 用户登录
ALTER SYSTEM SET 'TEMP_SIZE' = 100 SPFILE;

11.2 创建视图VIEW_ADDR

  • 在 TEST 用户下
CREATE VIEW VIEW_ADDR AS
    SELECT STUDENT_NAME, STUDENT_ADDR
    FROM STUDENTS
    WHERE STUDENT_ADDR LIKE '%武汉市洪山区%';

11.3 创建视图VIEW_CNAME

  • 在 TEST 用户下
CREATE VIEW VIEW_CNAME AS
    SELECT STUDENT_NAME, COURSE_NAME
    FROM STUDENTS s, COURSES c
    WHERE s.STUDENT_MAJOR = c.MAJOR_ID AND c.COURSE_NAME = '平面设计';

11.4 创建索引IND_STU_NAME

  • 在 TEST 用户下
CREATE INDEX IND_STU_NAME ON STUDENTS(STUDENT_NAME);

12. 数据库开发配置

12.1 安装ODBC驱动

  • 命令行方式

12.1.1 解压安装包

  • 假设安装包名为 unixODBC-x.x.x.tar.gz ,根据实际情况调整:
tar -zxvf /opt/unixODBC-x.x.x.tar.gz -C /usr/local

12.1.2 进入解压后的目录并安装

cd /usr/local/unixODBC-x.x.x
./configure
make
make install

12.1.3 配置ODBC连接

  • 修改配置文件
# 修改 odbc.ini 文件(位于 /usr/local/etc/ ,如果不存在则创建):
[dm8]
Description = DM ODBC Connection
Driver = DM8 ODBC DRIVER
SERVER = localhost
UID = SYSDBA
PWD = SYSDBA
TCP_PORT = 5236


# 修改 odbcinst.ini 文件(位于 /usr/local/etc/ ,如果不存在则创建):
[DM8 ODBC DRIVER]
Description = ODBC Driver for DM8
Driver = /dm8/bin/libdodbc.so

12.1.4 ODBC连接

isql dm8

最后修改:2024 年 10 月 22 日
分享是对我最大的赞赏