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)
安装过程中,下面步骤可直接下一步:
2 新建数据库,使用“DM数据库配置助手”建立数据库
使用语句建表
注意:数据库中的表空间类似SQL Server中的文件组
建表语句最后一个字段的结尾不能有逗号;
语句中不能包含中括号;
max和datetime2关键字不可用;
图形化建表:需在用户同名的模式下找到 表——新建表
3 创建API项目,添加数据库驱动
数据库驱动在安装目录下的“drivers”中,可将这个文件夹下的相应版本文件夹添加到Nuget中,使用Nuget进行管理
测试使用:dotNet——EFCore.Dm6.0
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);
//通过语句添加的数据不知什么原因表名和字段名为全部大写,编程时需保持一致
5 针对大小写敏感进行处理
1.使用语句建表时,需要给字段和表名使用双引号给括起来,否则会自动转为大写字母;
2.使用实体的[Column("数据库字段")]可进行控制;
3.新建数据库实例时,不勾选字符串比较大小写敏感;
6 如何添加账户
资料来源:https://eco.dameng.com/document/dm/zh-cn/start/dm-user-mode-relation.html
可以使用SYSDBA在用户——管理用户中添加
用户名全大写
每个用户有一个默认的同名的模式,访问自己模式下的表、视图等,不需要加模式名,访问其他模式下的对象需要加上模式名。
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) 注意:数据转移时,目的模式需要改为自己建立的模式;
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
第三方资料:
在项目进行过程中,一般是联机进行数据库备份,以下备份过程均是以此进行操作:
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);