当前位置:   article > 正文

银河麒麟V10下达梦8数据库的安装使用与C#连接DM8数据库_银河麒麟安装达梦8

银河麒麟安装达梦8

一、达梦8数据库的安装

1.DM8版本介绍

企业版:支持集群,适用于中大型企业
标准版:不支持集群,适用于中小型企业
开发版:和企业版功能相同,只是使用时间有限制,默认官网发布时间一年。
安全版:支持强制访问控制等安全特性。

2.安装程序下载

官网下载地址:下载中心-武汉达梦数据库有限公司

根据你的CPU和操作系统类型下载DM8开发版

X86平台的银河麒麟V10下载Redhat7版本

3.收集安装环境

操作系统(内核要求2.6以上)

cat /proc/version

GLIBC版本:要求2.3以上。 

ldd --version

网络、防火墙,如需远程连接服务器,需要关闭防火墙或者开放对应端口。

关闭防火墙

systemctl stop firewalld.service

开放端口

 

  1. firewall-cmd --add-port=5236/tcp --zone=public --permanent
  2. firewall-cmd –reload

4.安装规划

DM8不推荐使用root安装

软件安装路径:/dm8
数据库创建目录(用来存放数据文件等):/dm8/data
归档路径:/dm8/arch
备份路径:/dm8/backup
安装用户:dmdba
用户组:dm

①创建安装用户和用户组

  1. groupadd dm
  2. useradd -g dm -m -d /home/dmdba -s /bin/bash dmdba

修改dmdba密码

passwd dmdba

 ②创建安装路径并将路径授权dmdba:

  1. mkdir /dm8
  2. chown dmdba:dm /dm8

4.数据库安装

①挂载达梦安装包ISO文件

mount -o loop /opt/dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso /mnt

其中/opt/dm8_20220720_x86_rh7_64_ent_8.1.2.114_pack11.iso是下载的DM8安装包存放路径

如果挂载mnt提示无权限错误使用下面语句

mount -o remount,rw /

②执行安装

DM8支持图形化界面和命令行安装,也可以使用Xmanager等工具进行远程图形化界面安装,Xmanager调用远程图形化界面的方法请自行查阅相关文章。

调用图形化界面安装的方法:

使用root进入命令行

  1. xhost +
  2. echo $DISPLAY

记住得到的值(:1.0或者:0.0)

切换到dmdba用户,配置图形界面其中:1.0是上一步得到的值

  1. su - dmdba
  2. export DISPLAY=:1.0

开始图形化界面安装

  1. cd /mnt
  2. ./DMInstall.bin

命令行安装的方法: 

切换到dmdba用户,执行安装命令

  1. su - dmdba
  2. cd /mnt
  3. ./DMInstall.bin -i

如果使用虚拟机并且资源分配过少可能会报OpenJDK错误:

OpenJDK 64-Bit Server VM warning: Insufficient space for shared memory file:13413

则修改tmp大小,执行下面语句可以解决

sudo mount -t tmpfs -o size=2048M none /tmp

图形化安装过程 

 点击确定,然后下一步即可,提示需要KEY文件的地方试用版可以不选择KEY文件直接下一步。

此处选择我们之前规划的安装路径dm8,然后下一步,弹出提示选择确定

 到此步骤用root登录命令行,按照提示执行脚本,然后点击确定和完成

 

 完成后DM8数据库程序就安装完毕了,此时我们需要配置数据库实例,一个DM8可以包含多个数据库实例,按照下图勾选初始化数据库,点击初始化

 

选择创建数据库实例点击开始即可,图形化界面创建的实例会自动注册数据库服务,不需要自行再注册

开始创建后,可以根据自己的用途配置相应的参数,到初始化参数界面可以配置一下数据库的参数 

 

页大小、簇大小、字符集、大小写敏感、VARCHAR类型以字符为单位等参数一旦指定,数据库创建完成后将无法更改。
页大小:页是达梦数据库最小存储单元;达梦中varchar类型字段长度受页大小的限制,默认不能超过页大小的一半:

页大小Varchar长度
4K2000
8k4000
16K8000
32K8188


簇大小:簇是达梦数据库最小分配单元;
VARCHAR类型以字符为单位:
默认达梦,VARCHAR类型以字节为单位存储。
Varchar(10), 字符集是utf-8(一个中文占用三个字节),可以保存3个中文字符。
Varchar(10), 字符集是gb18030(一个中文占用两个字节), 保存5个中文字符。
如果勾选VARCHAR类型以字符为单位,Varchar(10)不管字符集是什么都能保存10个中文。
nvarchar新版本以字符为单位存储。

最后点击完成开始创建实例,安装过程中会弹出以下界面,按照提示用root登录命令行,执行脚本,最后点击确定。然后可能会提示需要抽取数据库,根据提示执行命令即可

 

 最后点击完成,数据库安装完毕

 

命令行安装

通图形化安装步骤一致,根据提示选择和修改参数即可,完成后需要根据提示执行脚本

  1. 请以root系统用户执行命令:
  2. /dm8/script/root/root_installer.sh

完成数据库安装后需要,手动创建数据库实例,使用dminit命令行工具,根据位于安装目录的bin下,可以配置参数,如:数据文件路径,数据库名,实例名,端口号,密码等

dminit创建的数据库实例,默认没有注册数据库服务。

  1. cd /dm8/bin
  2. ./dminit path=/dm8/data DB_NAME=DMService instance_name=DMSVR port_num=5238 LENGTH_IN_CHAR=y SYSDBA_PWD=Dameng123

 手动注册数据库服务,执行安装目录/script/root下脚本,其中DMSVR和dm.ini的路径为创建实例时指定的实例名和数据库名

  1. cd /dm8/script/root
  2. ./dm_service_installer.sh -t dmserver -p DMSVR -dm_ini /dm8/data/DMService/dm.ini

二、DM的客户端工具

(1) DM管理工具(manager)
联机工具。可以管理表空间、用户、角色、数据库备份、模式下对象(表、约束、索引、视图、触发器、函数、存储过程等)管理等。

  1. cd /dm8/tool
  2. ./manager

(2) DM控制台工具(console)
脱机工具。数据库的物理冷备、数据库物理还原与恢复,参数配置。

(3) DTS数据迁移工具(dts)
支持Oracle、SQLServer、MySQL、DB2、PG等迁移到达梦数据库。

(4) DM性能监视工具(monitor)

(5) disql数据库连接工具
tool目录下disql调用的就是bin目录下disql,不同的是tool目录下disql需要使用connect命令连接数据库。 

三、DM数据库的几种状态

Shutdown:关闭状态。
MOUNT:配置状态,此状态下不能访问数据库中数据文件的数据,可以访问v$开头来源于控制文件或内存中的表数据。配置状态,数据库不能对外提供正常服务,业务不能正常运行。
设置归档、迁移联机日志、设置主备集群主机、备机需要在配置状态。
OPEN状态:打开状态,此时数据库对外提供正常服务。可以读写数据文件中的数据。
SUSPEND状态:挂起状态,此时数据库只能读不能写。
DM中mount和open可以相互转换,Oracle中mount只能到open,open不能到mount;
DM的suspend和open可以相互转换,但mount和suspend不能相互转换。
DM没有NOMOUNT状态(oracle有NOMOUNT状态)

四、.net连接DM数据库

dm提供了多种开发语言的驱动程序,位于数据库安装目录的drivers目录下。.net驱动位于该目录dotNet文件夹,我们使用DmProvider进行数据库连接,DmProvider实现了ADO.NET的接口

根据项目类型,复制相应的DmProvider.dll到项目中,并在项目中引用

注意不要使用VS中NuGet包管理中的下面包,此包不是官方提供,使用有问题

 DM数据库连接字符串如下

Server=localhost; User Id=SYSDBA; PWD=SYSDBA;

DM支持单用户多模式,使用多模式时SQL语句需要在表名前加上模式名.,如:

SELECT * FROM OA.TABLENAME

 由于DM实现了ADO.NET,使用方法与其他数据库如:SQL SERVER、My SQL相同,将类名改成DM的类名即可

以下为My SQL和DM的代码对比

  1. /// <summary>
  2. /// 查询数据库将结果填充DataSet
  3. /// </summary>
  4. /// <param name="strSQL">Sql查询语句</param>
  5. /// <param name="objDS">要填充的DataSet对象</param>
  6. /// <param name="iStart">开始记录号</param>
  7. /// <param name="iCount">记录数量</param>
  8. /// <param name="strTableName">表名</param>
  9. /// <returns>所填充的记录数</returns>
  10. public override int FillDataSet(string strSQL, System.Data.DataSet objDS, int iStart, int iCount, string strTableName)
  11. {
  12. int iFillCount = 0;
  13. MySqlDataAdapter objAdapter = null;
  14. try
  15. {
  16. objAdapter = (MySqlDataAdapter)this.GetDataAdapter(strSQL);
  17. objAdapter.SelectCommand.CommandTimeout = base.iTimeOut;
  18. iFillCount = objAdapter.Fill(objDS, iStart, iCount, strTableName);
  19. }
  20. finally
  21. {
  22. objAdapter = null;
  23. }
  24. return iFillCount;
  25. }
  1. /// <summary>
  2. /// 查询数据库将结果填充DataSet
  3. /// </summary>
  4. /// <param name="strSQL">Sql查询语句</param>
  5. /// <param name="objDS">要填充的DataSet对象</param>
  6. /// <param name="iStart">开始记录号</param>
  7. /// <param name="iCount">记录数量</param>
  8. /// <param name="strTableName">表名</param>
  9. /// <returns>所填充的记录数</returns>
  10. public override int FillDataSet(string strSQL, System.Data.DataSet objDS, int iStart, int iCount, string strTableName)
  11. {
  12. int iFillCount = 0;
  13. DmDataAdapter objAdapter = null;
  14. try
  15. {
  16. objAdapter = (DmDataAdapter)this.GetDataAdapter(strSQL);
  17. objAdapter.SelectCommand.CommandTimeout = base.iTimeOut;
  18. iFillCount = objAdapter.Fill(objDS, iStart, iCount, strTableName);
  19. }
  20. finally
  21. {
  22. objAdapter = null;
  23. }
  24. return iFillCount;
  25. }

其余更多使用请查阅DM手册,手册位于安装目录的doc文件夹下

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/206212?site
推荐阅读
相关标签
  

闽ICP备14008679号