由于项目需要,公司安排学习并考取国产数据库达梦数据库(DM8)DCA认证,上课总共三天,上课内容主要包括达梦数据库体系结构、安装部署、配置实例、DM数据库各个管理工具及备份恢复还原等,上课内容都很实用,以下是个人学习笔记:
一、下载及版本:
达梦官方有提供试用版本,官方下载链接为:http://eco.dameng.com/docs/zh-cn/start/dm-version-acquisition.html
达梦数据库支持安 装 在 多 种 计 算 机 操 作 系 统 平 台 上 , 典 型 的 操 作 系 统 有 : Windows(Windows2000/2003/XP/Vista/7/8/10/Server 等)、Linux、HP-UNIX、 Solaris、FreeBSD 和 AIX 等。对于不同的系统平台,有不同的安装步骤。具体可以参考官方安装部署文档。官方提供了快速上手指导文档,链接为:http://eco.dameng.com/docs/zh-cn/start/install-dm-linux-prepare.html
达梦数据库目前主要有四个版本:开发版(用于开发测试,功能有限)、标准版(不支持集群,适合中小型企业)、企业版(支持集群,功能更齐全、适应各类企业需要)和安全版(拥有企业版所有功能外,增加了安全功能)
二、达梦数据库体系结构
达梦数据库是一个单进程多线程,如下图:
三、安装部署
本文使用的操作系统版本为国产操作系统中标麒麟7(考试的操作系统),该操作系统与centos7操作系统相似。
1、安装前准备:
安装DM8前,检查安装gcc和glibc包是否已安装:
[root@test Packages]# rpm -qa |grep gcc
gcc-gfortran-4.8.5-36.el7.ns7.01.x86_64
gcc-4.8.5-36.el7.ns7.01.x86_64
gcc-gnat-4.8.5-36.el7.ns7.01.x86_64
libgcc-4.8.5-36.el7.ns7.01.x86_64
gcc-objc-4.8.5-36.el7.ns7.01.x86_64
gcc-objc++-4.8.5-36.el7.ns7.01.x86_64
gcc-c++-4.8.5-36.el7.ns7.01.x86_64
[root@test Packages]#
[root@test Packages]# rpm -qa |grep glibc
glibc-common-2.17-260.el7.ns7.01.x86_64
glibc-headers-2.17-260.el7.ns7.01.x86_64
glibc-devel-2.17-260.el7.ns7.01.x86_64
glibc-2.17-260.el7.ns7.01.x86_64
[root@test Packages]#
设置文件打开数(修改配置文件,永久生效),如果文件打开数太小,安装时可能报错
[root@test /]# vi /etc/security/limits.conf
增加:
dmdba soft nofile 10240
dmdba hard nofile 65536
2、安装DM8
新建用户组和用户
[root@test /]# groupadd dinstall
[root@test /]#
[root@test /]# useradd -g dinstall dmdba
[root@test /]#
[root@test /]# passwd dmdba
更改用户 dmdba 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@test /]#
新建安装目录,并修改目录所属用户组和用户
[root@test /]# mkdir /dm8
[root@test /]#
[root@test /]# chown dmdba:dinstall /dm8
[root@test /]# ll -h
总用量 26K
lrwxrwxrwx. 1 root root 7 4月 11 19:50 bin -> usr/bin
dr-xr-xr-x. 4 root root 4.0K 4月 11 21:16 boot
drwxr-xr-x 20 root root 3.3K 4月 11 21:15 dev
drwxr-xr-x 2 dmdba dinstall 6 4月 22 09:57 dm8
drwxr-xr-x. 144 root root 8.0K 4月 22 09:57 etc
drwxr-xr-x. 4 root root 30 4月 22 09:56 home
a、DM8数据库软件安装
DM8安装镜像挂载到操作系统后,安装文件为: DMInstall.bin
[root@test /]# cd /opt
[root@test opt]# ls
DMInstall.bin
[root@test opt]# chmod 755 ./DMInstall.bin
[root@test opt]#
[root@test opt]# echo $DISPLAY
:0
[root@test opt]# xhost +
access control disabled, clients can connect from any host
[root@test opt]#
[root@test opt]# su - dmdba
上一次登录:四 4月 22 10:04:00 CST 2021pts/0 上
[dmdba@test ~]$ echo $DISPLAY
[dmdba@test ~]$ export DISPLAY=:0
[dmdba@test ~]$ cd /opt
[dmdba@test opt]$ ls
cobra DMInstall.bin rh
[dmdba@test opt]$ ./DMInstall.bin
开始进入安装界面
生产环境需要安装key,本文为测试版本,没有key,跳过即可
默认典型安装
选择上文创建的安装目录:/dm8
确认信息无误后开始安装
最后root用户执行下脚本即可
b、DM8数据库实例创建和
默认数据库软件安装完成后会弹出窗口询问是否初始化数据库
指定数据库实例目录
指定数据库名和实例名,默认端口5236,可以自己修改默认端口
指定数据库簇和页大小,注意簇和页大小在实例创建完成后不能更改。
确认信息无误后,开始创建数据库实例
最后用root命令执行:
使用 systemctl status DmServiceDMTEST.service可以看到数据库实例是已经开启了。
配置dmdba用户环境变量,方便后面调用tools工具
[dmdba@test ~]$ vi .bash_profile
[dmdba@test ~]$ source .bash_profile
[dmdba@test ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"
export DM_HOME="/dm8"
export PATH="$PATH:/dm8/bin:/dm8/tool"
[dmdba@test ~]$
四、配置监听连接DM8数据库
[root@test /]# xhost +
access control disabled, clients can connect from any host
[root@test /]# su - dmdba
上一次登录:四 4月 22 10:29:59 CST 2021pts/0 上
[dmdba@test ~]$ export DISPLAY=:0
[dmdba@test ~]$ nca.sh
以上配置实际是修改dm_svc.conf文件内容,可以直接编辑此文件配置网络连接:
[dmdba@test etc]$ cat dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
DMTEST=(127.0.0.1:5236)
网络连接配置完成后,使用disql命令连接到数据库:
[dmdba@test etc]$ disql sysdba/dm1234567
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 5.520(毫秒)
disql V8
SQL>
SQL> exit
[dmdba@test etc]$
[dmdba@test etc]$ disql sysdba/dm1234567@dmtest
服务器[127.0.0.1:5236]:处于普通打开状态
登录使用时间: 4.842(毫秒)
disql V8
SQL>
SQL> exit;
[dmdba@test etc]$
五、常用工具介绍:
数据库软件安装完成后,在安装目录下的tool目录有很多工具,
[dmdba@test tool]$ ls
analyzer dbca.sh dts.bmp monitor.bmp templates
analyzer.bmp disql dts_cmd_run.sh nca.sh workspace
backup.xml dmagent log4j.xml p2
configuration dmservice.sh manager plugins
console dropins manager.bmp restore.xml
console.bmp dts monitor server_connection.xml
[dmdba@test tool]$ pwd
/dm8/tool
manager 工具:主要是用户、角色、表空间、模式下对象(表、索引、约束、视图、函数、触发器)的管理,联机 备份和还原等
console 工具: 可以修改数据库初始化参数(修改后需重启数据库) 脱机备份和还原
dts 工具:主要用来做数据库迁移
monitor工具:数据库性能监控
六、使用manager工具
[dmdba@test tool]$ manager
七、开启归档
[dmdba@test ~]$ disql sysdba/dm1234567
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 3.207(毫秒)
disql V8
SQL> select name,arch_mode from v$database ;
行号 NAME ARCH_MODE
---------- ------ ---------
1 DMTEST N
已用时间: 2.777(毫秒). 执行号:1803.
数据库启动到mount状态:
SQL> alter database mount;
操作已执行
已用时间: 00:00:01.756. 执行号:0.
SQL> select name,status$ from v$instance;
行号 NAME STATUS$
---------- ------ -------
1 DMTEST MOUNT
已用时间: 0.981(毫秒). 执行号:1804.
开启归档:
SQL> alter database archivelog;
操作已执行
已用时间: 6.424(毫秒). 执行号:0.
配置归档路径及文件大小:
SQL> alter database add archivelog 'dest=/dm8/arch,type=local,file_size=64,space_limit=10240';
操作已执行
已用时间: 1.780(毫秒). 执行号:0.
打开数据库:
SQL> alter database open;
操作已执行
已用时间: 00:00:01.746. 执行号:0.
SQL> select name,status$ from v$instance;
行号 NAME STATUS$
---------- ------ -------
1 DMTEST OPEN
已用时间: 0.470(毫秒). 执行号:1805.
SQL> select name,arch_mode from v$database ;
行号 NAME ARCH_MODE
---------- ------ ---------
1 DMTEST Y
已用时间: 0.630(毫秒). 执行号:1807.
八、联机备份和脱机还原
联机备份:
脱机备份:
1、停库
[root@test ~]# systemctl status DmServiceDMTEST.service
● DmServiceDMTEST.service - DM database instance service
Loaded: loaded (/usr/lib/systemd/system/DmServiceDMTEST.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2021-04-22 10:25:01 CST; 40min ago
Process: 27265 ExecStart=/dm8/bin/DmServiceDMTEST start (code=exited, status=0/SUCCESS)
Main PID: 27289 (dmserver)
Tasks: 54
CGroup: /system.slice/DmServiceDMTEST.service
└─27289 /dm8/bin/dmserver /dm8/data/DMTEST/dm.ini -noconsole
4月 22 10:24:45 test systemd[1]: Starting DM database instance service...
4月 22 10:25:01 test DmServiceDMTEST[27265]: [37B blob data]
4月 22 10:25:01 test systemd[1]: Started DM database instance service.
[root@test ~]#
[root@test ~]# systemctl stop DmServiceDMTEST.service
[root@test ~]#
2、使用console工具脱机还原
[root@test ~]# xhost +
access control disabled, clients can connect from any host
[root@test ~]#
[root@test ~]#
[root@test ~]# su - dmdba
上一次登录:四 4月 22 10:57:39 CST 2021pts/2 上
[dmdba@test ~]$ export DISPLAY=:0
[dmdba@test ~]$ console
还原:
恢复:
更新魔数,达梦数据库进行库级恢复(表空间级)后,还需要更新魔数:
脱机恢复后,数据库实例处于关闭状态,需要手动启动数据库实例:
[root@test ~]# systemctl start DmServiceDMTEST.service
[root@test ~]# systemctl status DmServiceDMTEST.service
● DmServiceDMTEST.service - DM database instance service
Loaded: loaded (/usr/lib/systemd/system/DmServiceDMTEST.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2021-04-22 11:11:57 CST; 11s ago
Process: 79290 ExecStop=/dm8/bin/DmServiceDMTEST stop (code=exited, status=0/SUCCESS)
Process: 79557 ExecStart=/dm8/bin/DmServiceDMTEST start (code=exited, status=0/SUCCESS)
Main PID: 79579 (dmserver)
Tasks: 54
CGroup: /system.slice/DmServiceDMTEST.service
└─79579 /dm8/bin/dmserver /dm8/data/DMTEST/dm.ini -noconsole
4月 22 11:11:42 test systemd[1]: Starting DM database instance service...
4月 22 11:11:57 test DmServiceDMTEST[79557]: [37B blob data]
4月 22 11:11:57 test systemd[1]: Started DM database instance service.
[root@test ~]#
总结:
经过三天的培训,个人收获良多,感觉达梦数据库的图形化工具很齐全,很多操作都可以在图形化界面上执行,这样降低了达梦数据库的学习门槛,方便更多人学习和使用达梦数据库。最后感谢达梦培训老师程老师,讲得很仔细,还给我们演示了很多实际生产可能出现的情景。