【IT168 独家】
编者言:在4月份举办的2010中国数据库与商业智能技术大会上,国产数据库的代表厂商达梦高调亮相,给一向由国外厂商把持的企业商业数据库市场带来不小的波澜。人们开始纷纷将目光投向国产数据库软件市场,开始关注由中国人自己开发的数据库产品。
国产数据库产品究竟能不能用?在功能和特性上够不够用?为了解开这些疑问,我们特邀请在数据库业界众多知名的技术专家亲身试用相关产品,并真实地写出自己的试用感受。这些专家大都是Oracle数据库的ACE,或者是对其它主流的商业数据库十分精通和了解,让他们站在这样的角度来客观写出自己对国产数据库的技术评测,是非常有说服力的。
尽管各位专家的工作都十分繁忙,但他们还是都认为,将国产数据库软件在技术上的真实情况书写出來,给出自己中肯的评价,这是一件非常有意义的工作。 更令人欣慰的是,相比过去,今天像达梦这样的国产数据库产品已经显得非常自信,它们希望听到业界技术专家的建议甚至是批评,不断完善自己的产品和功能,这将是一个非常良性的循环,长此下去,我们相信,摆在国产数据库脚下的将是更为宽广的道路!
作者简介:杨廷琨(网名Yangtingkun),现任海虹医药电子商务有限公司首席DBA, ITPUB论坛Oracle数据库管理版版主,知名社区技术专家。2004年曾参与编写《Oracle数据库性能优化》一书,2010年1月联合出版 《Oracle DBA手记》一书,2007年被Oracle公司授予Oracle ACE称号,喜欢研究Oracle相关的技术问题,他的技术博客上积累了1500多篇Oracle相关的原创技术文章。
前几天ITPUB的熊主编和我联系,希望我能参加国产数据库达梦的试用活动,并写几篇使用感受。本来最近手头的事情比较多,本打算推辞的,不过熊主编再三邀请,而且强调并非是枪手文,只要写出真实使用感受即可。既然如此,我就本着支持国产数据库的原则,写几篇试用感受。
由于本人唯一熟悉的数据库就是Oracle,因此所有的对比都是与Oracle数据库进行对比,在这个过程中,将尽可能避免将对Oracle数据库的喜爱之情带进来,争取站在一个比较公正的位置上来进行评价。
这一篇简单介绍连接登陆达梦数据库并创建测试环境的步骤。
在安装完成之后,数据库自动启动,因此启动数据库的环境暂时用不到了。安装过程中建立了两个数据库(这里数据库的概念类型SYBASE或SQLSERVER中的概念,而不是Oracle中数据库的概念),不过一个是系统数据库,另一个是示例数据库,都不适合我进行自己的测试,在简单看了几眼文档后,准备登陆达梦,建立测试数据库环境,同时也是第一次体验达梦数据库:
C:\dmdbms\bin>isql
isql V6.0.2.51-Build(2009.12.23)
SQL>login
server name:localhost
user name:sysdba
password:
port:12345
dm_login time used:48.136(ms)
SQL>create database test datafile 'e:\dmdbms\data\test.dbf' size 100;
create database test datafile 'e:\dmdbms\data\test.dbf' size 100;
time used: 29780.352(ms) clock tick:1476710890.
SQL>set current database test;
set current database test
设置当前数据库为 'test'
time used: 0.321(ms) clock tick:528560.
由于使用Oracle的时候就习惯命令行方式,因此登陆达梦数据库,也选择了对应的命令行工具isql。
登陆的时候碰到了一点障碍,不知道server name是什么,无奈通过启动图形界面后,根据里面的显示的信息进行尝试,才发现居然是localhost,而且这个server name并不记得在安装过程中进行过设置啊。
同样的问题也发生在端口号上,不过图形界面中明确的显示了12345这个端口号,这个端口号倒是比较好记。
虽然根据文档中记载的语法,建立了一个测试数据库,并设置当前数据库为TEST。
2 default database test
3 role sys_admin;
create login test identified by "testtest"
default database test
role sys_admin;
time used: 1251.775(ms) clock tick:1025410930.
SQL>create user test related by test;
create user test related by test;
time used: 23.721(ms) clock tick:39385280.
下面建立了登陆和用户,并将二者关联起来。在Oracle中,没有登陆这个对象,都是通过USER进行登陆,不知道达梦数据库为什么要将这二者分开,不知道SYBASE或SQLSERVER数据库中是否也是这样实现的。
create schema test authorization test;
time used: 0.373(ms) clock tick:611290.
在达梦数据库中,也有SCHEMA的概念,这倒是和Oracle有一点类似之处,不过对于Oracle而言,只建立用户而没有什么用户的对象存在的话,SCHEMA也是不存在的。而达梦数据库中SCHEMA是可以明确创建的,而且用户还可以创建多个SCHEMA,用户和SCHEMA是一对多的关系。
server name:localhost
user name:test
password:
port:12345
dm_login time used:76.352(ms)
检查利用刚才建立的LOGIN能否正常登陆。
最后建立一个测试表:
2 (id number,
3 name varchar(30),
4 create_date date);
create table t
(id number,
name varchar(30),
create_date date);
没有创建表权限.error code = -1915
SQL>login
server name:localhost
user name:sysdba
password:
port:12345
dm_login time used:52.751(ms)
SQL>set current database test;
set current database test
设置当前数据库为 'test'
time used: 0.245(ms) clock tick:400320.
SQL>grant dba to test;
grant dba to test;
time used: 14.712(ms) clock tick:24312810.
建表失败后发现没有权限,利用SYSDBA给TEST用户授予DBA权限。
server name:localhost
user name:test
password:
port:12345
dm_login time used:58.316(ms)
SQL>create table t
2 (id number,
3 name varchar(30),
4 create_date date);
create table t
(id number,
name varchar(30),
create_date date);
time used: 1.242(ms) clock tick:1814140.
利用TEST用户重新登陆后,成功的创建了测试用表。
虽然我对于SQLSERVER、SYBASE这种多数据库架构的数据库系统不是很熟悉,不过在随机文档的帮助下,还是可以很快的建立起测试环境,总的来说,在易用性方面做的还不错,包括一些错误信息都比较明确。