系统设置
关闭防火墙
#查看防火墙状态
[root@neokylin7 ~]# firewall-cmd --state
running
#临时停止
[root@neokylin7 ~]# systemctl stop firewalld.service
[root@neokylin7 ~]# firewall-cmd --state
not running
#彻底停止
[root@neokylin7 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
关闭SELinux
#查看selinux状态
[root@neokylin7 ~]# sestatus
SELinux status: disabled
#本机为永久关闭状态,SELINUX=disabled
[root@neokylin7 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# 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
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
如果没有停止
#临时关闭
[root@neokylin7 ~]# setenforce 0
创建用户及用户组
#创建用户组
[root@neokylin7 ~]# groupadd dinstall
#创建用户
[root@neokylin7 ~]# useradd -g dinstall dmdba
#设置dmdba密码
[root@neokylin7 ~]# passwd dmdba
#查看用户
[root@neokylin7 ~]# id dmdba
#修改安装盘所在目录权限
[root@neokylin7 ~]# chown dmdba.dinstall -R /dm8
#查看修改后的目录权限
[root@neokylin7 ~]# ls -dl /dm8
drwxr-xr-x 2 dmdba dinstall 27 7月 6 21:08 /dm8
修改环境变量
#修改最大文件打开数
#这种方式需要重启才生效
#先查看系统允许的最大值
[root@neokylin7 ~]# sysctl -n -e fs.file-max
381761
[root@neokylin7 ~]# vim /etc/security/limits.conf
#添加以下两行,*代表所有用户生效,
* soft nofile 381761
* hard nofile 381761
#立即生效方式,但是重启会失效
[root@neokylin7 ~]# ulimit -n 65536
#dmdba的profile
[root@neokylin7 ~]# vim /home/dmdba/.bash_profile
#在最后增加
export DM_HOME=/dm8app
export PATH=$DM_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
挂载安装盘
#查看安装盘类型
[root@kylin7 dm8]# file ./dm8_setup.iso
./dm8_setup.iso: # ISO 9660 CD-ROM filesystem data '__'
#用root用户挂载安装盘
[root@kylin7 dm8]# mount -o loop dm8_setup.iso /mnt/
mount: /dev/loop0 写保护,将以只读方式挂载
图形化安装过程
[dmdba@neokylin7 dm8app]$ cd /mnt/
[dmdba@neokylin7 mnt]$ ll
总用量 633569
-r-xr-xr-x 1 root root 645819977 4月 29 16:51 DMInstall.bin
-r-xr-xr-x 1 root root 2951496 4月 29 16:04 DM_Install.pdf
-r-xr-xr-x 1 root root 848 4月 29 16:07 release_en.txt
-r-xr-xr-x 1 root root 953 4月 29 16:07 release_zh.txt
[dmdba@neokylin7 mnt]$ ./DMInstall.bin
#过程非常简单,除了修改安装目标路径,其它都是默认的
注意:图形界面安装,要么直接在服务器上装,要么配置好DISPLAY变量,把GUI打到本地
交互式命令安装
[dmdba@neokylin7 dm8app]$ cd /mnt/
[dmdba@neokylin7 mnt]$ ll
总用量 633569
-r-xr-xr-x 1 root root 645819977 4月 29 16:51 DMInstall.bin
-r-xr-xr-x 1 root root 2951496 4月 29 16:04 DM_Install.pdf
-r-xr-xr-x 1 root root 848 4月 29 16:07 release_en.txt
-r-xr-xr-x 1 root root 953 4月 29 16:07 release_zh.txt
[dmdba@neokylin7 mnt]$ ./DMInstall.bin -i
#过程非常简单,除了修改安装目标路径,其它都是默认的
#要用dmdba用户安装,不建议用root用户,需要提前创建安装路径,并授权给dmdba
安装后,需要确认.bash_profile文件是否正确,正确如下:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/data/dm8app/bin"
export DM_HOME="/data/dm8app"
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/.local/bin:$HOME/bin
安装目录结构
[dmdba@neokylin7 dm8app]$ ll
总用量 40
drwxr-xr-x 6 dmdba dinstall 8192 7月 7 00:49 bin #库文件和常用的命令(达梦)
drwxr-xr-x 2 dmdba dinstall 30 7月 7 00:48 bin2 #UTF8
drwxr-xr-x 3 dmdba dinstall 19 7月 7 00:48 desktop #桌面
drwxr-xr-x 3 dmdba dinstall 151 7月 7 00:49 doc #帮助文档
drwxr-xr-x 10 dmdba dinstall 103 7月 7 00:49 drivers #驱动(JDBC等)
drwxr-xr-x 2 dmdba dinstall 4096 7月 7 00:48 include #头文件(.h)
drwxr-xr-x 2 dmdba dinstall 94 7月 7 00:48 jar #jar包(逻辑备份、数据挖掘、数据快速加载)
drwxr-xr-x 6 dmdba dinstall 54 7月 7 00:48 jdk #java
-rwxr-xr-x 1 dmdba dinstall 1066 7月 7 00:48 license_en.txt #许可信息-英文
-rwxr-xr-x 1 dmdba dinstall 1128 7月 7 00:48 license_zh.txt #许可信息-中文
drwxr-xr-x 2 dmdba dinstall 117 7月 7 00:49 log #日志
-rwxr-xr-x 1 dmdba dinstall 848 7月 7 00:48 release_en.txt #版本信息-英文
-rwxr-xr-x 1 dmdba dinstall 953 7月 7 00:48 release_zh.txt #版本信息-中文
drwxr-xr-x 6 dmdba dinstall 92 7月 7 00:48 samples #示例
drwxr-xr-x 3 dmdba dinstall 37 7月 7 00:48 script #脚本
drwxr-xr-x 9 dmdba dinstall 4096 7月 7 00:49 tool #客户端工具
drwxr-xr-x 3 dmdba dinstall 97 7月 7 00:49 uninstall #卸载
-rwxr-xr-x 1 dmdba dinstall 2433 7月 7 00:49 uninstall.sh #卸载
drwxr-xr-x 2 dmdba dinstall 92 7月 7 00:49 web #DEM(达梦Enterprise Manager)
创建数据库和管理实例
GUI创建数据库
[dmdba@neokylin7 tool]$ pwd
/data/dm8app/tool
[dmdba@neokylin7 tool]$ ./dbca.sh
联机分析处理=OLAP、联机事务处理=OLTP
日志文件至少要两组
簇:数据库申请空间最小的逻辑单位,对应Oracle的区
页:存放数据的最小逻辑单位,对应Oracle的块
字符集:只有GB18030、UTF8
密码不改的话,默认是:SYSDBA/SYSDBA,这里使用默认密码
以root身份执行这三条命令
达梦识别数据库用的是端口号
Oracle识别数据库用的是SID
MySQL识别数据库用的是端口号
CLI创建数据库
dminit(相当于create database)
[dmdba@neokylin7 ~]$ dminit path=/data/dm8data/dm/data db_name=DM instance_name=TEST 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: /data/dm8data/dm/data/DM/DM01.log
log file path: /data/dm8data/dm/data/DM/DM02.log
write to dir [/data/dm8data/dm/data/DM].
create dm database success. 2020-07-07 02:00:02
查看已注册的服务
[root@neokylin7 root]# systemctl list-unit-files | grep D
DmAPService.service enabled
DmServiceDMSERVER.service enabled
注册服务
[root@neokylin7 root]# pwd
/data/dm8app/script/root
[root@neokylin7 root]# ll
总用量 44
-rwxr-xr-x 1 dmdba dinstall 26872 7月 7 00:49 dm_service_installer.sh
-rwxr-xr-x 1 dmdba dinstall 8571 7月 7 00:49 dm_service_uninstaller.sh
-rwxr-xr-x 1 dmdba dinstall 643 7月 7 00:49 root_installer.sh
#执行注册
[root@neokylin7 root]# ./dm_service_installer.sh -t dmserver -p TEST -dm_ini /data/dm8data/dm/data/DM/dm.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceTEST.service to /usr/lib/systemd/system/DmServiceTEST.service.
创建服务(DmServiceTEST)完成
[root@neokylin7 root]# systemctl list-unit-files | grep D
DmAPService.service enabled
DmServiceDMSERVER.service enabled
DmServiceTEST.service enabled
#查看服务状态
[root@neokylin7 root]# systemctl status DmServiceTEST.service
● DmServiceTEST.service - Dameng Database Service(DmServiceTEST).
Loaded: loaded (/usr/lib/systemd/system/DmServiceTEST.service; enabled; vendor preset: disabled)
Active: inactive (dead)
#启用服务
[root@neokylin7 root]# systemctl enable DmServiceTEST.service
[root@neokylin7 root]# systemctl status DmServiceTEST.service
● DmServiceTEST.service - Dameng Database Service(DmServiceTEST).
Loaded: loaded (/usr/lib/systemd/system/DmServiceTEST.service; enabled; vendor preset: disabled)
Active: inactive (dead)
#启动服务
[root@neokylin7 root]# systemctl start DmServiceTEST.service
[root@neokylin7 root]# netstat -nltp | grep 523
tcp6 0 0 :::5236 :::* LISTEN 98135/dmserver
tcp6 0 0 :::5237 :::* LISTEN 99149/dmserver
连接数据库
DM管理工具
[dmdba@neokylin7 tool]$ pwd
/data/dm8app/tool
[dmdba@neokylin7 tool]$ ./manager
如果提示错误,错误号为6001,消息提示:网络通信异常
原因可能是:
- 数据库没打开
- 网络异常
- 达到最大会话连接数
disql
存在于两个位置(bin、tool)
bin目录下的disql用法
默认端口
[dmdba@neokylin7 bin]$ ./disql
disql V8
用户名:SYSDBA
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 2.949(毫秒)
SQL>
非默认端口
[dmdba@neokylin7 bin]$ ./disql sysdba/SYSDBA@127.0.0.1:5237
服务器[127.0.0.1:5237]:处于普通打开状态
登录使用时间: 3.314(毫秒)
disql V8
SQL>
tool目录下的disql用法
默认端口号
[dmdba@neokylin7 tool]$ ./disql
disql V8
SQL> conn sysdba/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 2.931(毫秒)
SQL>
非默认端口号
[dmdba@neokylin7 tool]$ ./disql
disql V8
SQL> conn sysdba/SYSDBA@127.0.0.1:5237
服务器[127.0.0.1:5237]:处于普通打开状态
登录使用时间: 2.492(毫秒)
SQL>
disql支持ipv6连接,@后面跟ipv6地址
管理实例
实例启停
启停服务身份:
root、数据库用户都可以,但是数据库管理员用户不能停止root用户启动的服务
启动和关闭实例的三种方式:
- 达梦服务查看器
- dmserver
- 脚本
服务状态:
-
OS命令判断:
ps -ef | grep dmserver
netstat -nltp | grep 5236
systemctl status DmServiceDMSERVER
[root@neokylin7 ~]# systemctl status DmServiceTEST.service
● DmServiceTEST.service - Dameng Database Service(DmServiceTEST).
Loaded: loaded (/usr/lib/systemd/system/DmServiceTEST.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2020-07-07 02:12:20 CST; 28min ago
Process: 99122 ExecStart=/data/dm8app/bin/DmServiceTEST start (code=exited, status=0/SUCCESS)
Main PID: 99149 (dmserver)
Tasks: 52
CGroup: /system.slice/DmServiceTEST.service
└─99149 /data/dm8app/bin/dmserver /data/dm8data/dm/data/DM/dm.ini -noconsole
7月 07 02:12:05 neokylin7 systemd[1]: Starting Dameng Database Service(DmServiceTEST)....
7月 07 02:12:20 neokylin7 DmServiceTEST[99122]: [35B blob data]
7月 07 02:12:20 neokylin7 systemd[1]: Started Dameng Database Service(DmServiceTEST)..
- 服务查看器
用这种方式启停服务,必须用root帐户(RHEL7开始)
-
达梦脚本(推荐方式)
如果拿不到root密码,用这种方式
名称格式:DmService+实例名
生产环境不能使用kill与killall命令去结束数据库进程
[root @neokylin7 ~]# su - dmdba 上一次登录:二 7月 7 02:19:45 CST 2020pts/3 上 [dmdba @neokylin7 ~]$ cd /data/dm8app/bin [dmdba @neokylin7 bin]$ pwd /data/dm8app/bin [dmdba @neokylin7 bin]$ ./DmService DmServiceDMSERVER DmServiceTEST [dmdba @neokylin7 bin]$ ./DmServiceTEST stop Stopping DmServiceTEST: [ OK ] [dmdba @neokylin7 bin]$ ./DmServiceTEST start Starting DmServiceTEST: [ OK ]另一个地方,/usr/lib/systemd/system,需要用root运行此脚本
[dmdba @neokylin7 system]$ pwd /usr/lib/systemd/system [dmdba @neokylin7 system]$ ll | grep DM -rw-r--r-- 1 dmdba dinstall 289 7月 7 01:41 DmServiceDMSERVER.service -
dmserver(调试)
如果数据库起不来了,可以用这种方式定位问题,与oracle不一样,dm不能分步启动
[dmdba @neokylin7 bin]$ ./DmServiceTEST stop Stopping DmServiceTEST: [ OK ] [dmdba @neokylin7 bin]$ ./dmserver /data/dm8data/dm/data/DM/dm.ini file dm.key not found, use default license! version info: develop Use normal os_malloc instead of HugeTLB Use normal os_malloc instead of HugeTLB DM Database Server x64 V8 1-1-78-20.04.28-121039-ENT startup... Database mode = 0, oguid = 0 License will expire on 2021-04-28 file lsn: 36297 ndct db load finished ndct fill fast pool finished iid page's trxid[4008] NEXT TRX ID = 4009 pseg_collect_items, collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages pseg_process_collect_items end, 0 active trx, 0 active pages, 0 committed trx, 0 committed pages total 0 active crash trx, pseg_crash_trx_rollback begin ... pseg_crash_trx_rollback end purg2_crash_cmt_trx end, total 0 page purged set EP[0]'s pseg state to inactive pseg recv finished nsvr_startup end. aud sys init success. aud rt sys init success. systables desc init success. ndct_db_load_info success. nsvr_process_before_open begin. nsvr_process_before_open success. total 0 active crash trx, pseg_crash_trx_rollback begin ... pseg_crash_trx_rollback end SYSTEM IS READY. #这里按了ctrl+c ^CServer is stopping... listener closed and all sessions disconnected purge undo records in usegs...OK full check point starting... generate force checkpoint, rlog free space[536764928], used space[97792] ckpt_lsn, ckpt_fil, ckpt_off are set as (37555, 0, 8007680) checkpoint: 0 pages flushed. checkpoint finished, rlog free space, used space is (536859136, 3584) full check point end. shutdown audit subsystem...OK shutdown schedule subsystem...OK shutdown timer successfully. pre-shutdown MAL subsystem...OK shutdown worker threads subsystem...OK shutdown local parallel threads pool successfully. shutdown replication subsystem...OK shutdown sequence cache subsystem...OK wait for mtsk link worker to exit..OK shutdown mpp session subsystem...OK wait for rapply is all over... OK rapply worker threads exit successfully. pre ending task & worker threads...OK shutdown dblink subsystem...OK shutdown session subsystem...OK shutdown rollback segments purging subsystem...OK shutdown rps subsystem...OK shutdown transaction subsystem...OK shutdown locking subsystem...OK shutdown dbms_lock subsystem...OK ending tsk and worker threads...OK ckpt2_exec_immediately begin. ckpt_lsn, ckpt_fil, ckpt_off are set as (37555, 0, 8011264) checkpoint: 0 pages flushed. checkpoint finished, rlog free space, used space is (536847360, 15360) ckpt_lsn, ckpt_fil, ckpt_off are set as (37689, 0, 8026624) checkpoint: 0 pages flushed. checkpoint finished, rlog free space, used space is (536862720, 0) ckpt_lsn, ckpt_fil, ckpt_off are set as (37689, 0, 8026624) checkpoint: 0 pages flushed. checkpoint finished, rlog free space, used space is (536862720, 0) shutdown archive subsystem...OK shutdown redo log subsystem...OK shutdown MAL subsystem...OK shutdown message compress subsystem successfully. shutdown task subsystem...OK shutdown trace subsystem...OK shutdown svr_log subsystem...OK shutdown plan cache subsystem...OK shutdown file subsystem...OK shutdown database dictionary subsystem...OK shutdown mac cache subsystem...OK shutdown dynamic login cache subsystem...OK shutdown ifun/bifun/sfun/afun cache subsystem...OK shutdown crypt subsystem...OK shutdown pipe subsystem...OK shutdown compress component...OK shutdown slave redo subsystem...OK shutdown kernel buffer subsystem...OK shutdown SQL capture subsystem...OK shutdown control file system...OK shutdown dtype subsystem...OK shutdown huge buffer and memory pools...OK close lsnr socket DM Database Server shutdown successfully.这种方式,终端窗口不嫩关闭
实例启动过程
第一阶段:shutdown->mount
启动后台进程或者线程,根据dm.ini分配共享内存,根据dm.ini找到控制文件,并且打开控制文件。
第二阶段:mount->open
根据控制文件,打开所有的数据文件和重做日志文件
实例关闭过程
第一阶段:open->suspend
不允许向数据库写入数据
第二阶段:suspend->shutdown
释放(共享内存、进程、关闭文件)
看日志熟悉启动和关闭的过程($DM_HOME/log)
[dmdba@neokylin7 log]$ pwd
/data/dm8app/log
[dmdba@neokylin7 log]$ ll
总用量 604
-rw-rw-rw- 1 dmdba dinstall 0 7月 7 00:49 DmAPService.log
-rw-r--r-- 1 dmdba dinstall 429 7月 7 00:49 dm_dmap_202007.log
-rw-r--r-- 1 dmdba dinstall 40449 7月 7 09:49 dm_DMSERVER_202007.log
-rw-rw-rw- 1 dmdba dinstall 24505 7月 7 09:49 DmServiceDMSERVER.log
-rw-rw-rw- 1 dmdba dinstall 1742 7月 7 09:50 DmServiceTEST.log
-rw-rw-rw- 1 dmdba dinstall 1339 7月 7 09:35 dmsvc_sh.log
-rw-r--r-- 1 dmdba dinstall 85020 7月 7 09:50 dm_TEST_202007.log
-rw-r--r-- 1 dmdba dinstall 726 7月 7 09:35 dm_unknown_202007.log
-rw-r--r-- 1 dmdba dinstall 438917 7月 7 00:49 install_ant.log
-rwxr-xr-x 1 dmdba dinstall 545 7月 7 00:50 install.log
-rw-r--r-- 1 dmdba dinstall 1786 7月 7 01:46 tool.log
[dmdba@neokylin7 log]$ vim ./DmServiceTEST.log
数据库状态:open mount suspend
查看实例状态
[dmdba@neokylin7 ~]$ disql
disql V8
用户名:
密码:
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 5.503(毫秒)
SQL> select instance_name,status$ from v$instance;
行号 INSTANCE_NAME STATUS$
---------- ------------- -------
1 DMSERVER OPEN
已用时间: 3.049(毫秒). 执行号:1551.
SQL> exit
[dmdba@neokylin7 ~]$ disql sysdba/SYSDBA@127.0.0.1:5237
服务器[127.0.0.1:5237]:处于普通打开状态
登录使用时间: 2.981(毫秒)
disql V8
SQL> select instance_name,status$ from v$instance;
行号 INSTANCE_NAME STATUS$
---------- ------------- -------
1 TEST OPEN
已用时间: 1.867(毫秒). 执行号:4.
SQL>
状态切换
open—-mount
Oralce不能直接从open到mount
[dmdba@neokylin7 ~]$ disql sysdba/SYSDBA@127.0.0.1:5237
服务器[127.0.0.1:5237]:处于普通配置状态
登录使用时间: 2.419(毫秒)
disql V8
SQL> alter database mount;
操作已执行
已用时间: 00:00:01.723. 执行号:0.
SQL> select instance_name,status$ from v$instance;
行号 INSTANCE_NAME STATUS$
---------- ------------- -------
1 TEST MOUNT
已用时间: 1.657(毫秒). 执行号:5.
SQL> alter database open;
操作已执行
已用时间: 00:00:01.723. 执行号:0.
mount状态可连接,但是不能写入,写入hang住
mount—-open
open—-suspend(挂起)
suspend—-open