先简单罗列下两种数据库存储的逻辑结构
Oracle数据库:
表空间=>段=>区=>块
达梦数据库
表空间=>段=>簇=>块
由上可以了看出两者的逻辑结构是非常相似的。两者不同在簇和区的部分。先来了解下两者间的定义。
Oracle区的概念(取自Oracle官方文档concept):
An extent is a unit of database storage made up of logically contiguous data blocks. Data blocks can be physically spread out on disk because of RAID striping and file system implementations.
这里就是一个数据库存储数据块的存储单元。我理解目的是为了更好的配合RAID的条带化和文件系统。
达梦簇的概念(取自DM8系统管理员手册):
簇是数据页的上级逻辑单元,由同一个数据文件中 16 个或 32 个或 64 个连续的数据页 组成。
这么看两者作用实际是一致的。那么平时操作中有什么区别呢?
Oracle数据库的表空间中的数据文件相对较小。拿默认8k的数据块为例,一个数据文件最大支持32G的磁盘空间。这使得我们平时在运维时就需要监控数据库表空间利用率。
达梦数据块的数据文件最大支持多大呢?有如下截图:
可以看到最大支持将近64T。完全够平时操作系统上的一般使用。我们运维时一般只要注意表空间利用率就可以了。
两者标准的表空间语句比较:
Oracle数据库:
CREATE TABLESPACE test DATAFILE '/oradata/orcl/test01.dbf' SIZE 100M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO;
达梦数据库:
create tablespace "test" datafile '/data/DAMENG/tablespace/test01.dbf' size 512 autoextend on next 512 maxsize 20480;
达梦数据库技术社区:https://eco.dameng.com