达梦7的试用 与SQLSERVER的简单技术对比
达梦数据库公司推出了他们的数据库服务管理平台,可以在该平台使用达梦数据库而无须安装达梦7数据库
说实话,第一眼看到还是感到很高大上的,毕竟ORACLE、MYSQL、SQLSERVER都没有推出数据库试用的云平台
其实其他数据库也应该学习一下达梦,做一个平台让大家有机会学习自家的数据库知识,虽然现在这个时代下载安装包比较容易,不过提供一个平台也是有好处的
达梦数据库文档下载:http://files.cnblogs.com/lyhabc/DM%E6%96%87%E6%A1%A3.rar
试用体验
达梦数据库使用的SQL语言是DM_SQL
达梦数据库的存储层次结构
有空的朋友可以看一下主页右下角的三个文档
具体的DM_SQL语法和命令大家可以参考DM_SQL.pdf
试用开始
1、我们先选择一个实例,达梦是这样的,一个实例下面只能挂一个数据库,不像SQLSERVER和MYSQL可以挂多个数据库
我们就选DM1这个实例,Windows的,有一些实例可能有人在用所以你会连接不上,当前会话数那里就显示了哪些实例是有在用的
而且这些实例下面有一些是已经有人建了数据库在上面的了
2、选择完实例之后,我们就可以创建数据库,我们打开新建查询窗口
脚本:
--建库 CREATE TABLESPACE BOOKSHOP DATAFILE 'BOOKSHOP.DBF' SIZE 150 --创建模式和表 CREATE SCHEMA RESOURCES AUTHORIZATION SYSDBA CREATE TABLE RESOURCES.COMPANYHOLIDAYS ( HOLIDAY DATE )STORAGE(ON BOOKSHOP); --插入数据 INSERT INTO RESOURCES.COMPANYHOLIDAYS(HOLIDAY) VALUES('2007-7-21') INSERT INTO RESOURCES.COMPANYHOLIDAYS(HOLIDAY) VALUES('2008-8-26') INSERT INTO RESOURCES.COMPANYHOLIDAYS(HOLIDAY) VALUES('2010-10-2') --查询数据 select "HOLIDAY" from "RESOURCES"."COMPANYHOLIDAYS";
TIPS:如果实在不知道语句怎么写,不用担心,左边的管理器也有生成脚本的功能,只需要选中表然后按右键,弹出右键菜单
不过右下角没有显示您当前连接的是哪个实例哪个库,不是太方便
查看表属性,可以看到表是使用16K的块大小
管理界面
这个管理平台的基本功能
平台编辑器的功能:语法自动补全、自动格式代码、关键字自动高亮、调试、界面管理跟一个完整的数据库管理工具差不多
缺点是右下角没有显示出当前在使用的实例和数据库名
下面是部分功能截图
新建了数据库和模式之后,马上就可以在左边的树型菜单里看到新建的模式
可以看到当前达梦数据库是运行Windows2003系统上的
达梦里有比较多的系统工作线程,每个系统工作线程各司其职
例如rapply_worker_thread线程,他是日志重做线程,他在备机上进行日志重做,跟SQLSERVER是一样的,SQLSERVER里镜像、复制也有一样功能的线程
管理界面就介绍到这里了,继续讲下去好像偏离这篇文章的主体,大家有兴趣可以继续深入研究
技术对比
当你对某一个数据库研究得很深入的时候再学习另一种数据库就会发现,大部分原理都是相通的
例如技术实现原理,还有一些概念,只是换了名词已而
例如:
1、SQLSERVER的用户自定义函数,在MYSQL和达梦数据库里叫存储函数
2、MYSQL里面的事件(EVENT),就是SQLSERVER里面的作业(JOB)
3、达梦数据库里的动态性能视图,SQLSERVER里叫动态管理视图(DMV)
4、达梦数据库里的归档日志文件,SQLSERVER里的事务日志文件
5、MYSQL和达梦数据库里的表空间类似于SQLSERVER里的文件组
当然,上面的概念比较可能不太准确,如果有错误希望大家指正o(∩_∩)o
技术对比一
数据库备份
表空间备份
备份的时候,本人觉得大部分原理跟SQLSERVER都是一样的,备份的时候,SQLSERVER会把活动日志一同放进bak文件里面
目的就是保证事务的一致性,达梦数据库也是一样,联机备份的时候把归档日志写入备份文件
而达梦数据库脱机备份的意思是:因为数据库已经脱机,没有数据变更了,当前数据库里的事务都是一致的,所以这时候就无需把日志写入到备份文件里
表空间备份类似于SQLSERVER的文件/文件组备份,只备份数据库的一部分,备份文件组的时候SQLSERVER也是需要把事务日志写入到BAK文件
保证事务一致性
注意:SQLSERVER没有提供脱机备份功能
技术对比二
数据库还原
SQLERVER在还原的时候也是只支持脱机还原,要求不能有任何连接在连接当前要还原的数据库,保证一致性
在达梦里也有备份链原理,内部的原理应该跟SQLSERVER是一样的,详细参考:《您真的理解了SQLSERVER的日志链了吗?》
在SQLSERVER里也有类似达梦数据库的并行还原技术,在还原数据库的时候企业版的SQLSERVER也是使用了多线程技术进行还原
下面摘抄自《SQLSERVER2012实施与管理实战指南》
企业版的SQLSERVERR会针对上述情况做优化,主要在于下面两点:1、多线程并行处理重做和回滚在企业版上,SQLSERVER会启用多线程做重做和回滚操作。这样做的一个好处,是缩短恢复总体时间,让数据库能够尽早上线如果在SQLSERVER的errorlog里看到类似下面的信息,就说明SQL正在做一个比较大的恢复
技术对比三
数据守护
数据库的数据保护,不论Oracle还是SQLSERVER还是MySQL,都有三重含义
第一重是Crash后重新起来,要确保数据不丢失
第二重是数据库告诉应用事务写入成功了,这个事务就得持久化,如果没有告诉应用结果,则还可以丢失;
第三重是主机失败切换时(主从切换),如何表现得和没有切换时的情况一样。
每种数据库都有不同的数据守护技术(数据保护技术)
而每种数据库的数据保护技术都是大同小异的
达梦数据库的数据守护技术
连接服务名里的双IP配置类似于SQLSERVER的连接字符串里指定镜像伙伴,当发生故障转移的时候,自动将程