前言
因公司业务上需求需要接触达梦数据库,同时也不断开阔视野扩展知识层面,记录下学习过程,以便日后复盘加深印象。
简介
武汉达梦数据库有限公司成立于2000年,为国有控股的基础软件企业,专业从事数据库管理系统研发、销售和服务。其前身是华中科技大学数据库与多媒体研究所,是国内最早从事数据库管理系统研发的科研机构。达梦数据库为中国数据库标准委员会组长单位,得到了国家各级政府的强力支持。
环境需求
达梦数据库:DM8
虚拟机环境:RedHat7-64位(CentOS7或中标麒麟同样适用)
开始前准备
软件信息
1.操作系统
[root@localhost ~]# uname -ra
Linux localhost.localdomain 3.10.0-693.el7.x86_64
#1 SMP Thu Jul 6 19:56:57 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
根据不同的操作系统选择相对应的CPU和安装包
2.环境依赖包
[root@localhost ~]# rpm -aq | grep glibc
glibc-common-2.17-307.el7.1.x86_64
glibc-2.17-307.el7.1.x86_64
glibc-devel-2.17-307.el7.1.x86_64
glibc-headers-2.17-307.el7.1.x86_64
compat-glibc-headers-2.12-4.el7.x86_64
compat-glibc-2.12-4.el7.x86_64
如果系统没有,则可运行下列语句进行安装依赖包
[root@localhost ~]# yum install glibc -y
硬件信息
1.查看CPU
[root@localhost ~]# cat /proc/cpuinfo
注意进行区分芯片,达梦数据库根据芯片版本有着与之对应安装包,不匹配则安装不成功。
国产芯片:华为、龙芯、兆芯、安腾、飞腾(自行了解相关知识,开阔视野)
2.内存信息
[root@localhost ~]# free -m
安装数据库建议最小内存为1G
Linux服务器Swap分区为物理内存1.5倍以上
3.磁盘信息
[root@localhost ~]# fdisk -l
[root@localhost ~]# df -h
4.其他信息
安装达梦程序,如需要记录大量数据库SQL日志,需要扩大分区/tmp,临时目录至少600m
网络要求
100m以上TCP/IP协议的网卡
注意:远程访问数据库的要求,需要进行设置防火墙和selinux策略
系统要求
Linux(glibc2.3以上,内核2.6,预安装KDE/GNOME桌面环境,建议预先安装UnixODBC组件 gcc包)
[root@localhost ~]# rpm -aq | grep ODBC
环境配置
下面开始进入正题,直接进入实操,手撸方能熟能生巧
-
规划安装路径与用户(不建议使用root账号)
安装路径[root@localhost /]# mkdir /dm8
规划用户
新建用户组[root@localhost /]# groupadd dinstall
新建用户[root@localhost /]# useradd -g dinstall dmdba
查看用户是否创建成功[root@localhost /]# id dmdba
为所创建用户设置密码[root@localhost /]# passwd dmdba
(这里密码默认用dameng123,以防后续出错)
为所创建用户分配所属组权限[root@localhost /]# chown -R dmdba:dinstall /dm8
-
配置环境变量
切换dmdba账号进行配置[root@localhost /]# su - dmdba
进行配置环境变量[dmdba@localhost ~]$ vim ~/.bash_profile
底部进行增加两行信息
export DM_HOME=/dm8
export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$DM_HOME/bin:$DM_HOME/tool
然后进行配置更新[dmdba@localhost ~]$ source ~/.bash_profile
最后进行查看配置是否更改[dmdba@localhost ~]$ echo $DM_HOME
显示/dm8 完成配置更新
- 设置文件最大打开数目
方式一:使用root账号进行设置,临时设置,关闭失效[root@localhost dmdba]# ulimit -n 65536
方式二:使用root账号进行设置,重启生效[root@localhost dmdba]# vim /etc/security/limits.conf
底部进行增加两行信息dmdba soft nofile 65536
dmdba hard nofile 65536
- 上传达梦iso镜像
达梦iso镜像存放于/opt目录下面 - 挂载达梦iso镜像
[root@localhost opt]# mount -o loop /opt/dm8_setup.iso /mnt
创建达梦数据库
切换dmdba账号进行安装[root@localhost dmdba]# su - dmdba
dmdba账号进行配置图形界面
[dmdba@localhost ~]$ export DISPLAY=192.168.48.1:0.0
(window本机IP地址)
[dmdba@localhost ~]$ xhost +
进入iso挂载目录[dmdba@localhost ~]$ cd /mnt
进入图形界面安装[dmdba@localhost mnt]$ ./DMInstall.bin
[root@localhost ~]# /dm8/script/root/root_installer.sh
执行成功,启动DmAPService服务成功
移动 /dm8/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
至此达梦数据库安装完成
管理工具查看达梦数据库服务,进入/dm8/tool 目录下执行./dmserver.sh命令
[dmdba@localhost tool]$ ./dmservice.sh
命令行方式进行查看达梦数据库服务,进入/dm8/bin目录下执行./DmAPService status命令
[dmdba@localhost bin]$ ./DmAPService status
DmAPService (pid 59460) is running.
达梦安装目录介绍:
Bin:数据库命令和lib库
Bin2:UTF-8
Doc:用户手册和操作手册
Driver:驱动
Include:C语言的头文件
Jar:Jar包(导入导出,快速加载,日志挖掘)
Log:所有的日志文件
Jdk:Java包
Tool:所有的客户端
Script:所有的脚本文件
Web:dem 类似Oracle Oem
创建数据库实例
1. 图形化界面方式安装数据库实例
/dm8/tool目录下,执行dbca.sh命令
[dmdba@localhost tool]$ dbca.sh
[root@localhost tool]# mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
[root@localhost tool]# systemctl enable DmServiceDMSERVER.service
[root@localhost tool]# systemctl start DmServiceDMSERVER.service
至此达梦数据库实例创建完成
通过disql连接刚才创建的数据库,类似Oracle SqlPlus
[dmdba@localhost bin]$ disql sysdba/dameng123
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 3.277(毫秒)
disql V8
SQL>
通过达梦管理工具manager进行登录
[dmdba@localhost tool]$ manager
2. 命令行方式创建数据库实例
- 创建实例
[dmdba@localhost ~]$ dminit path=/dm8/data DB_NAME=LEESERVER INSTANCE_NAME=LEESERVER PORT_NUM=5237
initdb V8
db version: 0x7000a
file dm.key not found, use default license!
License will expire on 2021-04-28
log file path: /dm8/data/LEESERVER/LEESERVER01.log
log file path: /dm8/data/LEESERVER/LEESERVER02.log
write to dir [/dm8/data/LEESERVER].
create dm database success. 2020-06-30 15:24:46
- 注册实例
进行切换root账号 进入/dm8/script/root路径
[root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/data/LEESERVER/dm.ini -p LEESERVER
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceLEESERVER.service to /usr/lib/systemd/system/DmServiceLEESERVER.service.
创建服务(DmServiceLEESERVER)完成
- 实例启动和查看状态
[root@localhost root]# systemctl start DmServiceLEESERVER.service
[root@localhost root]# systemctl status DmServiceLEESERVER.service
通过./dmserver.sh 查看实例状态
通过disql进行连接
[dmdba@localhost bin]$ ./disql sysdba/SYSDBA@localhost:5237
服务器[localhost:5237]:处于普通打开状态
登录使用时间: 4.708(毫秒)
disql V8
SQL>
通过manager工具连接
数据库实例管理
1. 达梦数据库模式
1、普通模式(normal):用户可以正常访问数据库,操作没有限制
2、主库模式(primary):用户可以正常访问数据库,对数据库对象修改强制生成redo日志,再归档有效的时候,发送redo日志到备库
3、备库模式(standby):接收主库发送过来的redo日志,并重做日志,数据库对用户只读
2.达梦数据库状态
1、配置状态(mount)
2、打开状态(open)
3、挂起状态(suspend)
4、关闭状态(shutdown)
3.状态切换
Shutdown----Mount
Shutdown----Opne
Open----Mount
Mount----Open
4.达梦数据库启动过程
- Shutdown----Mount
分配共享内存 ,启动后台的进程或是线程,打开控制文件 - Mount----Open
根据控制文件,打开所有的数据文件和重做日志文件
1.管理工具启动服务
需要注意的是:图形界面启动和关闭实例只能用root账号进行启动和关闭,其他账号可以进行查看,但是无法启动与关闭
2.命令行启动:dmserver
当前session有效,关闭会话后,连接断了
[dmdba@localhost bin]$ ./dmserver /dm8/data/LEESERVER/dm.ini
[dmdba@localhost bin]$ ./DmServiceLEESERVER start
[root@localhost ~]# systemctl start DmServiceLEESERVER
判断达梦数据库是不是启动的
端口
[dmdba@localhost bin]$ netstat -ntl | grep 523*
DmServer
[dmdba@localhost bin]$ ps -ef | grep dmserver
达梦是单进程多线程的数据库
DM8数据库工具的使用
1.DiSQL
[dmdba@localhost bin]$ ./disql sysdba/dameng123
【干货分享】达梦DISQL工具使用解析之- DISQL环境变量设置
【干货分享】DISQL使用解析2
【干货分享】DISQL使用解析3
2.数据库管理工具
[dmdba@localhost tool]$ manager
3.控制台工具
[dmdba@localhost tool]$ ./console