本人在生产中主要接触Oracle数据库,而随着信创及国产化数据库部署,开始接触达梦数据库,有幸参加了DPA和DCP认证培训。结合Oracle数据库的使用和达梦的培训学习,对Oracle数据库和达梦数据库的差异有了初步认识。
体系结构:Oracle数据库为多进程结构,大家比较熟悉的dbwr,lgwr,smon,pmon,ckpt等都是进程。达梦数据库为单进程多线程结构,包含监听线程、工作线程、IO线程、调度线程、日志相关线程等,所有的线程都集成到了dmserver进程中。
状态的切换:Oracle数据库只能从mount状态启动到open状态,但不能从open状态直接切换到mount状态。达梦数据库可以在mount状态和open状态之间自由切换,还增加了一个suspend挂起状态。suspend:只读状态,只能读,不能写。mount和open可以相互转换,suspend和open也可以相互转换。但mount和suspend不能相互转换。
结束符:Oracle数据库的命令、SQL以及程序包都是以";"为结束符。达梦数据库的SQL和命令使用";"结束,但是在执行程序包、创建模式等操作的时候要以"/"为结束符。
关于备份:Oracle数据库可使用RMAN进行热备操作。达梦数据库的dmrman使用与RMAN很相似,但是只能做冷备,做热备的时候需要在数据库中进行备份操作。
监听程序:Oracle数据库有单独的监听程序,使用lsnrctl进程监听操作。达梦数据库没有单独的监听程序,监听变成了线程dm_lsnr_thd集成到了dmserver的进程中。
联机日志文件大小:Oracle数据库需要添加新的日志文件进来,删除原来老的日志进行替换。达梦数据库可以直接对logfile的大小进行扩容。
用户模式上有较大区别:Oracle数据库是用户和模式为一一对应关系,一个用户对应一个模式达梦数据库的用户和模式是一对多的管理,一个用户可以拥有多个模式,一个模式仅能归属于一个用户。当系统建立一个用户时,会自动生成一个对应的模式用户还可以建立其他模式。
关于表:Oracle数据库:默认创建的是堆表。达梦数据库:DM默认创建的是索引组织表。索引组织表有且仅有一个聚簇索引键,表数据按照聚簇索引键排序(数据是有序的,插入有序),rowid是逻辑rowid,占用存储空间,所以索引组织表比堆表占用较多空间。
数据文件的大小:Oracle数据库单个数据文件的大小最大为222-1个块,数据块是大小是8k,那么能创建的最大的数据文件大小是:2228K=32G-1,单个数据文件的最小值在实验中创建的最小数据文件为81k;达梦数据库:最大值为页大小的 2的31次方-1,如果页大小是8K,最大值为2^318K=16T-1,最小值不能低于页大小的 4096倍,如果页大小是8K最小值,将不低于32M。
参数修改的格式:Oracle数据库:alter system set xxx scope=spfile/memory/both;达梦数据库:alter system set xxx spfile/memory/both;
以上为我在学习达梦数据库的过程中总结的一些不同之处,仅为个人见解,有不足之处还请多指正交流。
文章
阅读量
获赞