专栏/培训园地/ 文章详情 /

DM8单机库安装及简单使用

得闲饮茶 2024/02/02 1272 0 0
摘要

本人使用达梦数据库有一段时间了,下面将从使用命令行和图形化界面来说明Linux安装DM8单机库的详细步骤,其实安装DM8非常简单,不过需要注意一些细节。同时也将介绍DM8的一些简单使用以及达梦工具manager的用法。

一、安装DM8(命令行方式)

1.1安装前准备

1.1.1关闭防火墙和SELinux

关闭防火墙

systemctl stop firewalld 

复制

关闭防火墙开机自启

systemctl disable firewalld

复制

关闭SELinux

SELinux 组件可用来加强系统安全性。在 Linux 中,SELinux 凌驾于 root 权限之上,设置了很多额外的配置项。如果了解这些配置项,可以进行相应设置,但如果不了解,那么 SELinux 可能不仅没有一些实际性的帮助,反而会带来很多不确定因素。

查看SELinux当前状态:getenforce

永久关闭 SELinux 需修改配置文件:/etc/selinux/config,修改 SELINUX=disabled

cat /etc/selinux/config

#SELINUX= can take one of these three values:
#enforcing - SELinux security policy is enforced.
#permissive - SELinux prints warnings instead of enforcing.
#disabled - No SELinux policy is loaded.
SELINUX=disabled              修改为disa### bled
#SELINUXTYPE= can take one of three two values:
#targeted - Targeted processes are protected,
#minimum - Modification of targeted policy. Only selected processes are protected. 
#mls - Multi Level Security protection.
SELINUXTYPE=targeted 

复制

1.1.2创建用户和组

groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba

复制

1.1.3修改文件打开最大数

使用vim编辑器打开/etc/security/limits.conf 文件并在文件最后添加四条语句:

dmdba hard nofile 65536
dmdba soft nofile 65536
dmdba hard stack 32768
dmdba soft stack 16384

复制

切换到dmdba用户查看是否生效

su - dmdba
ulimit -a

复制

image.png

1.2安装数据库

1.2.1挂载镜像

切换到root用户,将DM数据库的iso安装包挂载到/mnt目录下

mount -o loop /opt/dm8_20230418_x86_rh6_64.iso /mnt

复制

新建安装目录并修改权限

mkdir /dm
chown dmdba:dinstall -R /dm/
chmod -R 755 /dm

复制

1.2.2安装数据库

切换至dmdba用户,在/mnt目录下执行命令

su - dmdba
cd /mnt/
./DMInstall.bin -i

复制

按需求选择安装语言,默认为中文。本地安装选择【不输入 Key 文件】,选择【默认时区 21】
image.png
选择【1-典型安装】,按已规划的安装目录 /dm8 完成数据库软件安装,不建议使用默认安装目录
image.png
数据库安装完成后,需要切换至 root 用户执行命令创建 DmAPService,否则会影响数据库备份

/dm/script/root/root_installer.sh

复制

进入 dmdba 用户的根目录下,配置对应的环境变量。DM_HOME 变量和动态链接库文件的加载路径在程序安装成功后会自动导入。

cd /home/dmdba/
vim .bash_profile

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm/bin"
export DM_HOME="/dm"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

复制

切换至dmdba用户下,让环境变量生效

su - dmdba
source .bash_profile

复制

1.3初始化实例和注册服务

1.3.1初始化实例

使用 dmdba 用户配置实例,进入到 DM 数据库安装目录下的 bin 目录中,使用 dminit 命令初始化实例。
dminit 命令可设置多种参数,可执行如下命令查看可配置参数。

./dminit help

关键字                     说明(默认值)
--------------------------------------------------------------------------------
INI_FILE                   初始化文件dm.ini存放的路径
PATH                       初始数据库存放的路径
CTL_PATH                   控制文件路径
LOG_PATH                   日志文件路径
EXTENT_SIZE                数据文件使用的簇大小(16),可选值:16, 32, 64,单位:页
PAGE_SIZE                  数据页大小(8),可选值:4, 8, 16, 32,单位:K
LOG_SIZE                   日志文件大小(256),单位为:M,范围为:256M ~ 8G
CASE_SENSITIVE             大小敏感(Y),可选值:Y/N,1/0
CHARSET/UNICODE_FLAG       字符集(0),可选值:0[GB18030],1[UTF-8],2[EUC-KR]
SEC_PRIV_MODE              权限管理模式(0),可选值:0[TRADITION],1[BMJ],2[EVAL],3[ZB]
LENGTH_IN_CHAR             VARCHAR类型长度是否以字符为单位(N),可选值:Y/N,1/0
SYSDBA_PWD                 设置SYSDBA密码(SYSDBA)
SYSAUDITOR_PWD             设置SYSAUDITOR密码(SYSAUDITOR)
DB_NAME                    数据库名(DAMENG)
INSTANCE_NAME              实例名(DMSERVER)
PORT_NUM                   监听端口号(5236)
BUFFER                     系统缓存大小(100),单位M
TIME_ZONE                  设置时区(+08:00)
PAGE_CHECK                 页检查模式(3),可选值:0/1/2/3
PAGE_HASH_NAME             设置页检查HASH算法
EXTERNAL_CIPHER_NAME       设置默认加密算法
EXTERNAL_HASH_NAME         设置默认HASH算法
EXTERNAL_CRYPTO_NAME       设置根密钥加密引擎
RLOG_ENCRYPT_NAME          设置日志文件加密算法,若未设置,则不加密
RLOG_POSTFIX_NAME          设置日志文件后缀名,长度不超过10。默认为log,例如DAMENG01.log
USBKEY_PIN                 设置USBKEY PIN
PAGE_ENC_SLICE_SIZE        设置页加密分片大小,可选值:05124096,单位:Byte
ENCRYPT_NAME               设置全库加密算法
BLANK_PAD_MODE             设置空格填充模式(0),可选值:0/1
SYSTEM_MIRROR_PATH         SYSTEM数据文件镜像路径
MAIN_MIRROR_PATH           MAIN数据文件镜像
ROLL_MIRROR_PATH           回滚文件镜像路径
MAL_FLAG                   初始化时设置dm.ini中的MAL_INI(0)
ARCH_FLAG                  初始化时设置dm.ini中的ARCH_INI(0)
MPP_FLAG                   Mpp系统内的库初始化时设置dm.ini中的mpp_ini(0)
CONTROL                    初始化配置文件(配置文件格式见系统管理员手册)
AUTO_OVERWRITE             是否覆盖所有同名文件(0) 0:不覆盖 1:部分覆盖 2:完全覆盖
USE_NEW_HASH               是否使用改进的字符类型HASH算法(1)
ELOG_PATH                  指定初始化过程中生成的日志文件所在路径
AP_PORT_NUM                分布式环境下协同工作的监听端口
DFS_FLAG                   初始化时设置dm.ini中的DFS_INI(0)
DFS_PATH                   启用dfs时指定数据文件的缺省路径
DFS_HOST                   指定连接分布式系统DFS的服务地址(localhost)
DFS_PORT                   指定连接分布式系统DFS的服务端口号(3332)
DFS_COPY_NUM               指定分布式系统的副本数(3)
DFS_DB_NAME                指定分布式系统的中数据库名(默认与DB_NAME一致)
SHARE_FLAG                 指定分布式系统中该数据库的共享属性(0)
REGION_MODE                指定分布式系统中该数据库的系统表空间数据文件的区块策略(0) 0:微区策略 1:宏区策略
HUGE_WITH_DELTA            是否仅支持创建事务型HUGE表(1) 1:是 0:否
RLOG_GEN_FOR_HUGE          是否生成HUGE表REDO日志(1) 1:是 0:否
PSEG_MGR_FLAG              是否仅使用管理段记录事务信息(0) 1:是 0:否
CHAR_FIX_STORAGE           CHAR是否按定长存储(N),可选值:Y/N,1/0
SQL_LOG_FORBID             是否禁止打开SQL日志(N),可选值:Y/N,1/0
DPC_MODE                   指定DPC集群中的实例角色(0) 0:无 1:MP 2:BP 3:SP,取值1/2/3时也可以用MP/BP/SP代替
HELP                       打印帮助信息

复制

现在使用默认参数初始化一个实例,需要指定实例创建的路径。

./dminit path=/dm/data

复制

1.3.2注册服务

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

cd /dm/script/root
./dm_service_installer.sh -t dmserver -dm_ini /dm/data/DAMENG/dm.ini -p DMSERVER
其中-t为服务类型,-dm_ini为dm.ini的路径,-p为服务名

复制

启动、停止服务
进入 DM 安装目录下的 bin 目录下,启动/停止/重启数据库

cd /dm/bin
./DmServiceDMSERVER start/stop/restart

复制

查看数据库状态

./DmServiceDMSERVER status

复制

二、安装DM8(图形化安装)

2.1安装数据库

2.1.1调用图形化界面

#在root用户下
echo $DISPLAY
xhost +
#切换为dmdba用户
su - dmdba
export DISPLAY=(上面DISPLAY输出的数字)

复制

2.1.2创建用户和组

groupadd dinstall
useradd -g dintall dmdba
passwd dmdba

复制

2.1.3创建安装路径

mkdir -p /dm8
chown dmdba:dinstall -R /dm8

复制

2.1.4安装数据库

./DMInstall.bin
根据自己的需求安装数据库,并在安装完之后在root用户下执行脚本创建dmap服务。
/dm8/script/root/root_installer.sh

复制

2.2创建数据库实例

使用达梦数据库配置助手来创建实例。

cd /dm8/tool
./dbca.sh

复制

根据自己的需求(目录,端口号,初始化参数等)来创建实例,并设置数据库密码。
image.png
创建完实例后需要使用root用户执行以下脚本。

mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
systemctl enable DmServiceDMSERVER.service
systemctl start DmServiceDMSERVER.service

复制

三、数据库的简单使用

3.1表空间管理

3.1.1查看表空间

查看表空间视图可以看到数据库所有的表空间。

select * from v$tablespace;

复制

3.1.2创建表空间

可以选择打开自动扩充,根据需求选择每次自动扩充的大小和扩充上限。创建好后需要扩大数据文件和迁移表空间数据文件可以在此界面修改文件大小或者添加一个表空间数据文件,以及修改文件路径来实现迁移表空间数据文件。
image.png
SQL语句如下:

create tablespace "AAA" datafile '/dm/data/DAMENG/AAA.DBF' size 32 autoextend on next 1 maxsize 1024 CACHE = NORMAL;

复制

3.1.3TEMP表空间

TEMP表空间存放的是临时表,数据库在每次启动之前都会重建TEMP表空间,要修改TEMP表空间大小只能使用SQL语句来修改,且此为静态参数需要重启数据库才能生效。

SP_SET_PARA_VALUE(2,‘TEMP_SIZE’,256);

复制

3.2用户管理

3.2.1用户类型

用户分为数据库管理员(SYSDBA)、系统用户(SYS)、数据库安全员(SYSSO)、数据库审计员(SYSAUDITOR)。普通的用户就是数据库管理员;系统用户可以存放数据字典和动态性能视图;数据库安全员可以创建安全规则;数据库审计员是创建审计账号、创建审计规则、查看审计记录。

3.2.2创建用户

创建用户名(大写)和密码,可以根据要求设置默认的表空间、索引表空间。
image.png
授予给该用户权限
image.png
image.png
设置资源限制
image.png

3.2.3创建角色

创建角色名,并给予角色权限
image.png
角色是一组权限的集合,使用角色方便做权限管理。角色可以被授予给角色,也可以被授予给用户。

3.3模式对象管理

3.3.1模式

模式就是一组数据库对象的集合,一个用户可以拥有多个模式,一个模式只能属于一个用户,创建用户时会自动创建一个同名的模式。

3.3.2建表

使用图形化来建表会比较繁琐,建议用SQL语句来建表,语法如下:

create table 表名 (列名,类型,约束);

复制

约束主要有非空约束(not null)、唯一约束(unique)、主键约束(primary key)、外键约束(foreign key references 表名(‘列名’))、检查约束(check(限制项))。

3.3.3视图

视图就是一个查询语句,是一张虚拟表,不会占用数据库的存储空间。因此属兔使用SQL语句来创建较为方便,语法如下:

create view 视图名 as select 查询语句;

复制

3.3.4索引

索引要在模式下的表里面的索引进行创建。
image.png

四、备份还原

备份可以分为物理备份和逻辑备份,物理备份是备份数据库的文件,逻辑备份是备份数据库对象。
备份还可以分为完全备份和增量备份,完全备份就是一次备份整个库的所有数据或者是一次备份一个表空间的所有数据;增量备份就是在一次完全备份或者上一次增量备份后,以后每次只备份修改过的文件。
备份还有冷备和热备两种方式,冷备也叫脱机备份,是在数据库关闭的状态下备份;热备也叫联机备份,是在数据库运行状态下备份。

4.1备份

4.1.1冷备

需要关闭数据库服务并创建备份路径

mkdir -p /dm8/backup

复制

使用dmrman工具备份

cd /dm8/bin
./dmrman
backup database ‘/dm8/data/DAMENG/dm.ini’ backupset ‘/dm8/backup’;

复制

4.1.2热备

需要先将数据库的归档模式打开
进入管理服务器的系统管理,将状态切为配置并转换。
image.png
进入到归档配置,将归档模式且为归档并添加归档的文件路径。
image.png
最后再将数据库模式切换为打开。
备份可以对库、表空间、表进行备份,在备份里选择对应的新建备份。
image.png

4.2还原恢复

还原恢复需要关闭数据库,可以使用console工具或者是dmrman工具。

4.2.1console

依次进行还原、恢复、更新magic。
image.png

4.2.2dmrman

cd /dm8/bin
./dmrman
restore database ‘/dm8/data/DAMENG/dm.ini’ database from backupset ‘/dm8/backup’;
recover database ‘/dm8/data/DAMENG/dm.ini’ database from backupset ‘/dm8/backup’;
recover database ‘/dm8/data/DAMENG/dm.ini’ update db_magic;

复制

4.3逻辑备份

4.3.1导出

可以选择数据库、用户、模式、表进行导出。
image.png

4.3.2导入

image.png

4.3.3使用命令行导出导入

在数据库软件的bin目录下,利用dexp和dimp工具逻辑导出导入。
导出导入整个schema

#导出
dexp USERID=<用户>/<密码>@<IP>:<port> FILE=<文件名> LOG=<执行日志文件名> SCHEMAS=<schema> DIRECTORY=<备份文件所在路径>

#导入
dimp USERID=<用户>/<密码>@<IP>:<port> FILE=<备份文件绝对路径> LOG=<执行日志文件名> SCHEMAS=<schema>  DIRECTORY=<执行日志存放的路径> IGNORE=<是否忽略创建错误>

复制

导出导入指定表

#导出
dexp USERID=<用户>/<密码>@<IP>:<port> FILE=<文件名> LOG=<执行日志文件名> TABLES=<table1,table2> DIRECTORY=<备份文件所在路径>

#导入
dimp USERID=<用户>/<密码>@<IP>:<port> FILE=<备份文件绝对路径> LOG=<执行日志文件名> TABLES=<table1,table2>  DIRECTORY=<执行日志存放的路径> IGNORE=<是否忽略创建错误>

复制

五、作业管理

5.1使用图形化创建作业

作业相当于服务器的计划任务,需要先在代理这创建代理环境。
创建作业。
image.png
根据需求创建作业步骤。
image.png
根据需求创建作业调度。
image.png

5.2使用SQL语句创建作业

#创建代理环境
SP_INIT_JOB_SYS(1);

#创建全量备份作业
call SP_CREATE_JOB('bakfull',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakfull');
call SP_ADD_JOB_STEP('bakfull', 'bak1', 6, '04040000/dm/dmbak', 3, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakfull', 'std1', 1, 2, 1, 64, 0, '00:30:00', NULL, '2023-11-01 21:17:22', NULL, '');
call SP_ADD_JOB_SCHEDULE('bakfull', 'once_test', 1, 0, 0, 0, 0, NULL, NULL, sysdate+1/1440, NULL, '');
call SP_JOB_CONFIG_COMMIT('bakfull');

#创建增量备份作业
call SP_CREATE_JOB('bakincr',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('bakincr');
call SP_ADD_JOB_STEP('bakincr', 'bak2', 6, '44040000/dm/dmbak|/dm/dmbak', 3, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('bakincr', 'std2', 1, 2, 1, 63, 0, '00:30:00', NULL, '2023-11-01 21:19:30', NULL, '');
call SP_JOB_CONFIG_COMMIT('bakincr');

#创建删除备份作业
call SP_CREATE_JOB('delbak',1,0,'',0,0,'',0,'');
call SP_JOB_CONFIG_START('delbak');
call SP_ADD_JOB_STEP('delbak','bak1',0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dm/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-7);', 3, 1, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('delbak', 'del01', 1, 1, 1, 0, 0, '00:30:00', NULL, '2023-11-02 14:48:41', NULL, '');
call SP_JOB_CONFIG_COMMIT('delbak');

复制

六、总结

安装数据库软件的操作较为简单,需要注意的地方为安装的路径不要写错,涉及到的有初始化实例PATH的路径以及服务脚本DmServer里面的路径。在初始化实例时尤其需要注意几个参数:EXTENT_SIZE(簇大小)、PAGE_SIZE(页大小)、CASE_SENSITIVE(大小写敏感)、CHARSET(字符集),这些参数在创建实例后将不能修改(需要修改只能重初始化);还有端口是否被占用也需要排查,否则会导致启动数据库失败。
在其他复杂一些的环境,在安装前需要先检查好环境,例如防火墙、SELinux、透明大页、swap、numa等一些设置的关闭,其中一些设置会影响数据库的性能。
关于启动数据库失败的问题,可以尝试使用前台启动的方式查看启动失败的错误,本人遇到的绝大多数都是dm.ini文件配置错误导致数据库启动失败。还有一个情况是虚拟机内存太小,出现can not create buffer pools,out of memory,需要将dm.ini的BUFFER设置小一点才解决启动失败的问题。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服