Linux 达梦数据库的部署及操作
一、挂载并创建用户
# 上传达梦iso镜像和key到/opt/dmsetup/下
mkdir /opt/dmsetup/
# 创建dm目录
mkdir /dm
# 挂载达梦iso镜像
mount -o loop /opt/dmsetup/dm8_20200907_FTarm_kylin4_64_ent_8.1.1.126.iso /dm
# 创建用户组
groupadd -g 12349 dinstall
# 创建dmdba用户
useradd -u 12345 -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
# 初始化用户密码
passwd dmdba
# 提前创建安装目录
mkdir -p /opt/dmdbms
# 给目录用户权限
chown -R dmdba:dinstall /opt/dmdbms/二、安装达梦数据库(命令行)(安装不能使用root用户)
1)执行安装命令
在终端进入到安装程序所在文件夹,执行以下命令进行命令行安装
# 切换dmdba用户
su dmdba
# 进入dm目录安装
cd /dm
./DMInstall.bin -i2)选择安装语言
根据系统配置选择相应语言,输入选项,回车进行下一步。
请选择安装语言(C/c:中文 E/e:英文) [C/c]:C
解压安装程序..........
欢迎使用达梦数据库安装程序3)验证 key 文件()
可以选择是否输入 Key 文件路径。不输入则进入下一步安装,输入 Key 文件路径,安装程序将显示 Key 文件的详细信息,如果是合法的 Key, 文件且在有效期内,可以继续安装。如下所示:
是否输入 Key 文件路径? (Y/y:是 N/n:否) [Y/y]:Y
请输入 Key 文件的路径地址 [dm.key]:/opt/dmsetup/dm.key
有效日期: 2020-12-25
服务器颁布类型: 企业版
发布类型: 试用版
用户名称: 测试授权临时版
授权用户数: 无限制
并发连接数: 无限制4)输入时区
可以选择的时区信息。
是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:215)选择安装类型
数据库软件安装程序提供四种安装方式:“典型安装”、“服务器安装”、“客户端安装”和“自定义安装”,用户可根据实际情况灵活地选择。如下图所示:
典型安装包括:服务器、客户端、驱动、用户手册、数据库服务。
服务器安装包括:服务器、驱动、用户手册、数据库服务。
客户端安装包括:客户端、驱动、用户手册。
自定义安装包括:用户根据需求勾选组件,可以是服务器、客户端、驱动、用户手册、数据库服务中的任意组合。
生产环境可以根据实际需求选择,一般情况下选择"典型安装"即可。
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1010M6)选择安装路径
输入数据库软件的安装路径 ,不输入则使用默认路径,默认值为$HOME/dmdbms(如果安装用户为 root,则默认安装目录为/opt/dmdbms,但不建议使用 root 系统用户来安装)。没有这个目录需要提前创建一个mkdir -p /opt/dmdbms;
请选择安装目录 [/home/dmdba/dmdbms]:/opt/dmdbms
可用空间: 11G注意:安装路径里的目录名由英文字母、数字和下划线等组成,不建议使用包含空格和中文字符的路径等。
7)安装小结
安装程序将打印用户之前输入的部分安装信息。如下所示:
是否确认安装路径(/opt/dmdbms)? (Y/y:是 N/n:否) [Y/y]:Y
安装前小结
安装位置: /opt/dmdbms
所需空间: 1010M
可用空间: 11G
版本信息: 企业版
有效日期: 2020-12-25
安装类型: 典型安装8)安装
是否确认安装? (Y/y:是 N/n:否):Y
2020-12-24 21:52:38
[INFO] 安装达梦数据库...
2020-12-24 21:52:39
[INFO] 安装 基础 模块...
2020-12-24 21:52:48
[INFO] 安装 服务器 模块...
2020-12-24 21:52:48
[INFO] 安装 客户端 模块...
2020-12-24 21:52:56
[INFO] 安装 驱动 模块...
2020-12-24 21:52:58
[INFO] 安装 手册 模块...
2020-12-24 21:53:00
[INFO] 安装 服务 模块...
2020-12-24 21:53:02
[INFO] 移动 ant 日志文件。
2020-12-24 21:53:03
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/opt/dmdbms/script/root/root_installer.sh
安装结束/opt/dmdbms/script/root/root_installer.sh执行等待,安装完成
9)注册数据库服务
当安装进度完成时将会弹出对话框,提示使用 root 系统用户执行相关命令。用户可根据对话框的说明完成相关操作,之后可关闭此对话框,点击“完成”按钮结束安装。如下所示:
[dmdba@~]# su - root
密码:<输入密码>
[root@~]# /opt/dmdbms/script/root/root_installer.sh
移动 /opt/dmdbms/bin/dm_svc.conf 到/etc 目录
修改服务器权限
创建 DmAPService 服务
Created symlink from
/etc/systemd/system/multiuser.target.wants/DmAPService.service to
/usr/lib/systemd/system/DmAPService.service
创建服务(DmAPService)完成
启动 DmAPService 服务三、初始化数据库实例
3.1 初始化过程
初始化实例的示例如下:设置页大小(PAGE_SIZE)为 32,日志大小(LOG_SIZE)为 2048,大小写(CASE_SENSITIVE)为敏感,字符集(CHARSET)为 GB18030。
其它参数默认,如需更改其它参数,请参考《dminit 使用手册》
# 先切换到普通用户
su dmdba
[dmdba@~]# /opt/dmdbms/bin/dminit PATH=/opt/dmdbms/data PAGE_SIZE=32
LOG_SIZE=2048 CHARSET=0 CASE_SENSITIVE=Y
initdb V8
db version: 0x7000a
License will expire in 1 day(s) on 2020-12-25
log file path: /opt/dmdbms/data/DAMENG/DAMENG01.log
log file path: /opt/dmdbms/data/DAMENG/DAMENG02.log
write to dir [/opt/dmdbms/data/DAMENG].
create dm database success. 2020-12-24 22:05:38
注意:实际环境中,簇大小建议选择 32,页大小选择 32K,日志大小选择 2048,字符集和大小写敏感需要和应用厂商对接后,再进行选择。
遇到报错:
/opt/dmdbms/bin/dminit PATH=/opt/dmdbms/data PAGE_SIZE=32
/opt/dmdbms/bin/dminit: error while loading shared libraries: libdmnsort.so: cannot open shared object file: No such file or directory解决方法(配置环境变量):
vim /etc/profile
# 达梦数据库
export DM_HOME=/opt/dmdbms
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
# 使其生效
source /etc/profile切换dmdba用户重新初始化
3.2 创建实例服务
[dmdba@~]# su - root
密码:<输入密码>
[root@~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dmdbms/data/DAMENG/dm.ini -p DMSERVER
Created symlink from
/etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to
/usr/lib/systemd/system/DmServiceDMSERVER.service. 创建服务(DmServiceDMSERVER)完成
3.3 启动实例服务
# 使用普通用户启动实例
su dmdba
[dmdba@~]# /opt/dmdbms/bin/DmServiceDMSERVER start
Starting DmServiceDMSERVER:[ OK ]四、进入数据库
# 进入数据库(SYSDBA是默认的管理员)
cd /opt/dmdbms/bin && ./disql SYSDBA/SYSDBA@localhost:5236五、查看数据库授权时间
# 查看授权时间
select * from v$license;
select EXPIRED_DATE as "到期时间" from v$license;六、创建用户并授权权限
# 创建用户
create user 用户名 IDENTIFIED BY "密码(9位)";
# 授权给某个用户
grant resource,PUBLIC,vti,soi to 用户名;| 角色 | 主要用途/包含的核心权限 | 实际效果 |
|---|---|---|
| RESOURCE | 提供“建对象”能力:CREATE TABLE、CREATE INDEX、CREATE PROCEDURE、CREATE TRIGGER、CREATE SEQUENCE、CREATE TYPE、CREATE OPERATOR 等(不含建库、建用户、建视图权限)。 | 让普通开发者能在自己的 schema 下正常开发存储过程、表、索引。 |
| PUBLIC | 系统伪角色,每个用户自动拥有,显式写不写都一样。它本身只含少量“人人都该有”的权限(如查询系统字典)。 | 写在这里仅为兼容 Oracle 习惯,实际不增加任何新权限。 |
| VTI | 达梦内部保留角色,官方文档未公开其权限列表。实测为空角色或仅用于虚拟隧道接口(Virtual Tunnel Interface)相关功能,在通用 OLTP/OLAP 场景下不授予任何可感知权限。 | 可视为“无实际权限”的角色,一般直接忽略。 |
| SOI | “SELECT ON DICTIONARY” 的缩写,即 查询任何数据字典视图 的权限(SELECT ANY DICTIONARY)。 | 允许用户读取 DBA_*、ALL_*、USER_* 等系统视图,做监控、排查、性能分析时必需。 |
七、登录创建的用户
cd /opt/dmdbms/bin && ./disql 名字/密码@localhost:5236八、创建表
CREATE TABLE "MOULD"."AUTHUSER"
(
"USERKEY" VARCHAR(255) NOT NULL,
"USERNAME" VARCHAR(255) NOT NULL,
"USERTIME" DATE NOT NULL,
"USERID" INT IDENTITY(10, 1) NOT NULL,
NOT CLUSTER PRIMARY KEY("USERID")) STORAGE(ON "MAIN", CLUSTERBTR) ;九、删除表
DROP TABLE "MOULD"."TEMPLATES";十、查看当前用户所有的表
SELECT table_name as "表名" FROM user_tables;
十一、查看表结构
desc TEMPLATES;
十二、查看数据库版本
select * from v$version;
select banner as "版本信息" from v$version;
十三、查询所有用户
select username as "用户名" from DBA_USERS;十四、查看某个用户的信息
select * from dba_users where username='MOULD';| 字段 | 含义 |
|---|---|
| USERNAME | 用户登录名。 |
| USER_ID | 系统内部用户编号,唯一。 |
| PASSWORD | 哈希后的口令串。 |
| ACCOUNT_STATUS | 账户状态:OPEN、LOCKED、EXPIRED 等。 |
| LOCK_DATE | 账户被锁时间;未锁为空。 |
| EXPIRY_DATE | 口令过期时间;空表示永不过期。 |
| DEFAULT_TABLESPACE | 用户对象的默认表空间。 |
| DEFAULT_INDEX_TABLESPACE | 用户索引的默认表空间(达梦保留,通常空)。 |
| TEMPORARY_TABLESPACE | 临时段使用的表空间。 |
| CREATED | 用户创建时间。 |
| PROFILE | 所用的口令资源限制策略名。 |
| INITIAL_RSRC_CONSUMER_GROUP | 资源消费组(保留字段,通常空)。 |
| EXTERNAL_NAME | 外部认证标识(保留字段,通常空)。 |
| PASSWORD_VERSIONS | 口令算法版本号。 |
| EDITIONS_ENABLED | 是否启用 Edition(保留,N)。 |
| AUTHENTICATION_TYPE | 认证方式:PASSWORD、EXTERNAL 等。 |
| NOWDATE | 查询时的系统时间(达梦附加字段)。 |
十五、切换用户
conn DM/dameng123;
十六、查看当前登录的用户
SELECT user FROM DUAL;十七、修改用户名密码
需要登录管理员(SYSDBA)进行修改;
ALTER USER 要修改的用户名 IDENTIFIED BY "要修改的密码";
# 示例:
ALTER USER MOULD IDENTIFIED BY "MOULD123456";十八、查看某个用户的所有表
SELECT owner as "用户名",table_name as "表名" FROM all_tables WHERE owner = 'SYSDBA';
SELECT * FROM all_tables WHERE owner = 'SYSDBA';十九、删除一个用户
DROP USER 用户名 CASCADE;