• 使用C# Net6连接国产达梦数据库记录


    达梦官网:http://www.dameng.com/

    1 下载达梦并进行安装

    下载地址:官网首页——服务与合作——下载中心(https://www.dameng.com/list_103.html)
    根据需要自行下载需要的版本,测试版本为:x86  win64 DM8版本
    注意:安装时请通读用户手册第一章:DM8 安装手册(https://eco.dameng.com/document/dm/zh-cn/pm/net-rogramming-guide.html)
    安装过程中,下面步骤可直接下一步:
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2 新建数据库,使用“DM数据库配置助手”建立数据库

    使用语句建表
    注意:数据库中的表空间类似SQL Server中的文件组
         建表语句最后一个字段的结尾不能有逗号;
         语句中不能包含中括号;
         max和datetime2关键字不可用;
     图形化建表:需在用户同名的模式下找到 表——新建表
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3 创建API项目,添加数据库驱动

    数据库驱动在安装目录下的“drivers”中,可将这个文件夹下的相应版本文件夹添加到Nuget中,使用Nuget进行管理
    测试使用:dotNet——EFCore.Dm6.0
    
    • 1
    • 2

    4 进行开发,连接数据库

    参考文档:产品手册第三章:DM8 程序员手册——.NET Data Provider 编程指南

    var options = new DbContextOptionsBuilder()
    //手册中未指明数据库,考虑到一个实例下面会有多个数据库,自行添加了数据库名
    //有资料说不同的达梦数据库是以端口进行区分的,所以可以不使用数据库名
    									.UseDm("SERVER=192.168.19.129;PORT=5236;DATABASE=TestData;USER=SYSDBA;PASSWORD=2024@1018")
    									.UseInternalServiceProvider(
    									new ServiceCollection()
    													.AddEntityFrameworkDm()
    													.BuildServiceProvider())
    									.Options;
    var context = new TestContext(options)//通过语句添加的数据不知什么原因表名和字段名为全部大写,编程时需保持一致
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    5 针对大小写敏感进行处理

    1.使用语句建表时,需要给字段和表名使用双引号给括起来,否则会自动转为大写字母;
    2.使用实体的[Column("数据库字段")]可进行控制;
    3.新建数据库实例时,不勾选字符串比较大小写敏感;
    
    • 1
    • 2
    • 3

    6 如何添加账户

    资料来源:https://eco.dameng.com/document/dm/zh-cn/start/dm-user-mode-relation.html
    可以使用SYSDBA在用户——管理用户中添加
    用户名全大写
    每个用户有一个默认的同名的模式,访问自己模式下的表、视图等,不需要加模式名,访问其他模式下的对象需要加上模式名。
    
    • 1
    • 2
    • 3
    • 4

    7 SQL Server数据库迁移到DM8

    https://eco.dameng.com/document/dm/zh-cn/start/SqlServer_dm.html
    1.新建数据库实例用于数据库迁移;
    	a)	字符集设置:gb18030,避免中文保存异常;
    	b)	勾选varchar类型以字符为单位,避免中文保存异常;
    	c)	不勾选字符比较大小写敏感;
    	d)	页大小设置:32K,避免字段存储内容过多,导致数据截断;
    2.建立数据库需要的用户;
    3.使用DM数据迁移工具DTS先进行评估:https://eco.dameng.com/document/dm/zh-cn/start/SqlServer_dm.html;
    	a)	存储过程不兼容,需进行手动处理,可强制进行数据库迁移,存储过程编译错误,刷新之后异常消失;
    	b)	双击“评估”,可再次进行评估;
    4.	进行数据库迁移:https://eco.dameng.com/document/dm/zh-cn/start/tool-dm-migrate.html#%E8%BF%81%E7%A7%BB%E8%BF%87%E7%A8%8B;
    	a)	注意:数据转移时,目的模式需要改为自己建立的模式;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    8 数据库定时备份与删除

    参考资料:https://eco.dameng.com/document/dm/zh-cn/pm/backup-restore-combat.html#3.3.3.1.2%20%E5%A4%87%E4%BB%BD%E6%95%B0%E6%8D%AE%E5%BA%93
    第三方资料:https://blog.csdn.net/ManCxyster/article/details/118210365#:~:text=%E6%8C%89%E7%85%A7%E4%BB%A5%E4%B8%8B%E6%AD%A5%E9%AA%A4%E7%9B%B4%E6%8E%A5,%E6%A1%A3%E6%A8%A1%E5%BC%8F%E9%85%8D%E7%BD%AE%E7%94%9F%E6%95%88%E3%80%82
    在项目进行过程中,一般是联机进行数据库备份,以下备份过程均是以此进行操作:
    
    • 1
    • 2
    • 3

    1.数据库若要进行联机备份,首先要对数据库设置归档:
    windows:
    选择数据库,右键——管理服务器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    至此,归档配置完成。
    2.设置定时备份
    首先创建代理环境,在数据库下找到“代理”,右键——创建代理环境
    在这里插入图片描述
    代理环境创建完成后,开始创建代理作业
    在这里插入图片描述
    设置代理作业名称:
    在这里插入图片描述
    设置作业步骤,可添加多个作业步骤:
    在这里插入图片描述
    删除备份作业步骤,使用SQL脚本(https://eco.dameng.com/document/dm/zh-cn/pm/backup-restore-combat.html#3.2%20%E4%BD%BF%E7%94%A8%E8%81%94%E6%9C%BA%E6%89%A7%E8%A1%8C%20SQL%20%E8%AF%AD%E5%8F%A5%E8%BF%9B%E8%A1%8C%E5%A4%87%E4%BB%BD%E8%BF%98%E5%8E%9F),文档中可直接搜索命令:
    在这里插入图片描述
    设置作业执行时间:
    在这里插入图片描述
    最后点击“确定”按钮,作业创建完成:
    在这里插入图片描述
    3.备份数据还原
    备份数据只能脱机还原,需将正在运行的数据库停止
    打开“DM服务查看器”,找到需要还原的数据库实例,点击“停止”:
    在这里插入图片描述
    打开“DM控制台工具”:
    在这里插入图片描述
    点击“还原”按钮后:
    在这里插入图片描述
    还原后,点击“恢复”按钮,我这边的虚拟机点击这个按钮会卡死退出软件,重新打开“DM控制台工具”:
    在这里插入图片描述
    若是DM7数据库,有材料说到这里就还原完成了,我使用的是DM8,继续进行“更新Magic”:
    在这里插入图片描述
    到这里,数据库还原就完成了,重新启动数据库实例就可以了。

    Linux:

    这个系统尚未进行测试,请参见第三方参考资料。

    9 语句

    --字段类型修改语句
    alter table "表名" modify "字段名" varchar(10);
    --数据库备份删除命令:删除8天前的备份
    --建立代理作业时使用
    CALL SP_DB_BAKSET_REMOVE_BATCH('DISK', NOW()-8);  
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • 相关阅读:
    2022最新版-李宏毅机器学习深度学习课程-P51 BERT的各种变体
    2023年,在CSDN拥有10000粉丝有多难?
    DIYGW-UI-PHP是一款基于thinkphp framework和 element admin开发而成的前后端分离系统
    记录:Unity脚本的编写3.0
    01-01HTML
    我们怎样制作照片拼图?简单实用的拼图方法来了
    numpy学习笔记
    WebApi记录
    【Lilishop商城】No2-4.确定软件架构搭建三(本篇包括ES检索)
    【图形学】19 光照模型(四、Blinn-Phong光照模型)
  • 原文地址:https://blog.csdn.net/mingjing941018/article/details/136189904