暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

最近很火的崖山数据库是什么来头?

4936

最近一家来自深圳某科学院的自研数据库发布会火了一下,从发布会来看数据库很强大,有单机版、共享集群版(即类似Oracle RAC)、分布式版本,一次性发布就如此多的版本,还是非常罕见的。

目前对于类似Oracle RAC的架构,国产数据库中据我了解也就最早浪潮的kdb、达梦有过类似架构,暂时还没有第三家出过类似基于共享存储的分布式架构。

这里我也简单体验了一把,目前官网只能下载个人测试版本,其安装也是非常的简单,分为命令行和web图形化两种方式,相对简单,这里不做过多描述。

1、首先我们来看下内存结构

_CLUSTER_ID=6553362c3d3cec527b2adf3484e0952c

NODE_ID=1-1:1

CONTROL_FILES=('/home/yashan/yasdb_home/yashandb/data/yashantest/db-1-1/dbfiles/ctrl1', '/home/yashan/yasdb_home/yashandb/data/yashantest/db-1-1/dbfiles/ctrl2', '/home/yashan/yasdb_home/yashandb/data/yashantest/db-1-1/dbfiles/ctrl3')

REPLICATION_ADDR=172.20.22.146:1689

RUN_LOG_FILE_PATH=/home/yashan/yasdb_home/yashandb/23.1.1.100/log/yashantest/db-1-1/run

RUN_LOG_LEVEL=INFO

SLOW_LOG_FILE_PATH=/home/yashan/yasdb_home/yashandb/23.1.1.100/log/yashantest/db-1-1/slow

CHARACTER_SET=UTF8

LISTEN_ADDR=172.20.22.146:1688

DATA_BUFFER_SIZE = 8709M

VM_BUFFER_SIZE = 1111M

WORK_AREA_STACK_SIZE = 2M

WORK_AREA_POOL_SIZE = 64M

WORK_AREA_HEAP_SIZE = 512K

SHARE_POOL_SIZE = 1111M

LARGE_POOL_SIZE = 176M

MAX_PARALLEL_WORKERS = 32

SCOL_DATA_BUFFER_SIZE = 128M

SCOL_DATA_PRELOADERS = 2

COLUMNAR_WORK_AREA_HEAP_SIZE = 32M

COLUMNAR_VM_BUFFER_SIZE = 128M

COLUMNAR_BULK_SIZE = 1024

COMPRESSION = LZ4

PQ_POOL_SIZE = 128M

MAX_SESSIONS = 1024

MAX_WORKERS = 0

TAB_QUEUE_WINDOW_SIZE = 4

BLOOM_FILTER_FACTOR = 0.3

DEGREE_OF_PARALLEL = 1

MMS_DATA_LOADERS = 8

CHECKPOINT_INTERVAL = 256M

CHECKPOINT_TIMEOUT = 60

REDOFILE_IO_MODE = DSYNC

DATAFILE_IO_MODE = DEFAULT

COMMIT_LOGGING = BATCH

RECOVERY_PARALLELISM = 8

REDO_BUFFER_SIZE = 32M

从上述参数文件(类似Oracle pfile,可进行编辑,非二进制),崖山数据库的内存结构主要包括如下几个方面:

data_buffer_size  类似oracle buffer pool

vm_buffer_size    类似oracle hash_area_Size之类

work_area_stack_size  loader相关操作需要配置的参数

work_area_pool_size

work_area_heap_size

share_pool_size     类似oracle share pool,用于缓冲sql和执行计划等

large_pool_size     看上去类似oracle large pool

SCOL_DATA_BUFFER_SIZE

PQ_POOL_SIZE     看上去主要用于parallel query相关操作

REDO_BUFFER_SIZE   类似Oracle  log buffer

从上述参数并结合v$parameter来看,目前崖山数据库对于内存而言,需要进行手动调整,暂不支持oracle sga target之类的自动调节优化技术。对于一个比较关键的核心系统而言,上述一些内存参数可能都需要不断优化可能才能达到一个最佳状态。

2、其次我们来看下进程结构

[yashan@yashandb1 ~]$ ps -ef|grep yasdb_home|grep -v grep

yashan   25453     1  0 Nov15 ?        00:04:19 home/yashan/yasdb_home/yashandb/23.1.1.100/bin/yasom -c yashantest -l 172.20.22.146:1675 -d

yashan   25509     1  0 Nov15 ?        00:02:54 home/yashan/yasdb_home/yashandb/23.1.1.100/bin/yasagent -c yashantest -l 172.20.22.146:1676 -d

yashan   25642     1  8 Nov15 ?        02:30:07 home/yashan/yasdb_home/yashandb/23.1.1.100/bin/yasdb open -D home/yashan/yasdb_home/yashandb/data/yashantest/db-1-1

[yashan@yashandb1 ~]$ 

从进程上来看,我们可以看出崖山数据库是单进程多线程模式,类似MySQL、openGauss、MogDB、达梦等数据库。那么崖山究竟都有哪些线程呢?

SQL> select name,count(1) from v$process group by name order by 2;


NAME                                           COUNT(1) 

--------------------------------- --------------------- 

BUFFER_POOL                                           1

CKPT                                                  1

SCHD_TIMER                                            1

LISTENER_LOG                                          1

ARCH_DATA                                             1

HEALTH_MONITOR                                        1

LOGW                                                  1

MMS_PRELOAD                                           1

XFMR_WORKER_0                                         1

JOB_QUEUE                                             1

XFMR_WORKER_2                                         1

XFMR_WORKER_4                                         1

XFMR_WORKER_6                                         1

XFMR_WORKER_8                                         1

XFMR_WORKER_10                                        1

XFMR_WORKER_12                                        1

XFMR_WORKER_14                                        1

XFMR_WORKER_16                                        1

XFMR_WORKER_18                                        1

XFMR_WORKER_20                                        1

XFMR_WORKER_22                                        1

XFMR_WORKER_24                                        1

XFMR_WORKER_26                                        1

XFMR_WORKER_28                                        1

XFMR_WORKER_30                                        1

WORKER                                                1

XFMR_WORKER_31                                        1

XFMR_WORKER_29                                        1

XFMR_WORKER_27                                        1

XFMR_WORKER_25                                        1

XFMR_WORKER_23                                        1

XFMR_WORKER_21                                        1

XFMR_WORKER_19                                        1

XFMR_WORKER_17                                        1

XFMR_WORKER_15                                        1

XFMR_WORKER_13                                        1

XFMR_WORKER_11                                        1

XFMR_WORKER_9                                         1

XFMR_WORKER_7                                         1

XFMR_WORKER_5                                         1

XFMR_WORKER_3                                         1

XFMR_WORKER_1                                         1

MMON                                                  1

XFMR                                                  1

GARBAGE_PURGE                                         1

HOT_CACHE_RECYC                                       1

RD_ARCH                                               1

SMON                                                  1

TIMER                                                 1

DBWR                                                  2

ROLLBACK                                              2

PRELOADER                                             2

TCP_LSNR                                              3


53 rows fetched.

从上面结果来看,崖山也具备DBWR,SMON,MMON,CKPT,LSNR,ARCH等相关线程,其中也有很多不太一样的地方。比如rollack线程、preloader等。

3、从文件结构看

简单看了一下崖山数据库实例的文件分布,大概如下:

[yashan@yashandb1 db-1-1]$ ls -ltr

total 0

drwxr----- 3 yashan yashan  20 Nov 14 16:58 external

drwxr----- 2 yashan yashan   6 Nov 14 16:58 backup

drwxr----- 8 yashan yashan 105 Nov 14 16:58 log

drwxr----- 5 yashan yashan  60 Nov 14 16:58 diag

drwxr----- 2 yashan yashan   6 Nov 14 17:00 data

drwxr----- 3 yashan yashan  19 Nov 14 17:01 local_fs

drwxr----- 2 yashan yashan 185 Nov 14 17:01 dbfiles

drwxr----- 2 yashan yashan  23 Nov 14 17:01 config

drwxrwxr-x 2 yashan yashan   6 Nov 15 14:18 tmp

drwxr----- 2 yashan yashan  75 Nov 15 14:18 instance

drwxr----- 2 yashan yashan  66 Nov 15 14:18 archive

[yashan@yashandb1 db-1-1]$ cd dbfiles/

[yashan@yashandb1 dbfiles]$ ls -tlr

total 2826840

-rw-r----- 1 yashan yashan 536870912 Nov 14 17:01 redo1

-rw-r----- 1 yashan yashan 536870912 Nov 15 14:02 redo2

-rw-r----- 1 yashan yashan  67108864 Nov 15 14:18 temp

-rw-r----- 1 yashan yashan  67108864 Nov 15 14:18 swap

-rw-r----- 1 yashan yashan 536870912 Nov 15 14:18 redo3

-rw-r----- 1 yashan yashan  67108864 Nov 16 02:20 users

-rw-r----- 1 yashan yashan 536870912 Nov 16 19:30 redo4

-rw-r----- 1 yashan yashan  67108864 Nov 16 19:30 system

-rw-r----- 1 yashan yashan  67108864 Nov 16 19:30 sysaux

-rw-r----- 1 yashan yashan 268435456 Nov 16 19:30 undo

-rw-r----- 1 yashan yashan  67108864 Nov 16 19:30 dwf

-rw-r----- 1 yashan yashan  25370624 Nov 16 19:30 ctrl1

-rw-r----- 1 yashan yashan  25370624 Nov 16 19:30 ctrl2

-rw-r----- 1 yashan yashan  25370624 Nov 16 19:30 ctrl3

相关的目录结构类似Oracle,可谓高度山寨,连diag,adr都有了。从数据文件来看,system、sysaux、temp、undo、control、redo都类似oracle。不过有一点不同的是居然有个单独的swap表空间,同时又还有temp,这里为还有点好奇,后续再深入研究一下。

4、自带工具

[yashan@yashandb1 bin]$  tree /home/yashan/yasdb_home/yashandb/23.1.1.100/bin

/home/yashan/yasdb_home/yashandb/23.1.1.100/bin

├── exp

├── imp

├── yasagent

├── yasbak

├── yasboot

├── yasdb

├── yasldr

├── yasom

├── yaspwd

├── yasql

├── yasrman

├── yaswrap

└── yex_server


0 directories, 13 files

从数据库安装完毕后bin下的工具来看,略微有点简单。不过数据加载、备份和数据导出导入的工具都是ok的,对于命名上也别致,继续山寨Oracle。

其他方面简单测试了表空间、用户管理等跟Oracle高度相似,更加深入测试稍后抽空在进行。

文章转载自Roger的数据库专栏,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论