ASM
原理(
1
)
最早的时候
Oracle
是使用操作系统的文件来存储数据的。最简单就是安装单实例数据库,
之后在里面建立一些表空间和数据文件。这种方式是最古老最方便的方式。
Oracle
作为软件安装在操作系统下面,它的
I/O
大多时候是通过操作系统的
I/O
。
这里有有些问题,操作系统有它的
I/O
机制,有自己的文件系统。比如在
Linux
下有
ext4
文
件系统。每次
Oracle
去读取这个数据文件的时候,会调用操作系统的机制来完成
I/O
,所以
在数据库在内存和磁盘之间有一个操作系统在中间。对于性能比较高的数据库来说这样不
太好,操作系统再处理一遍会影响数据块读取和写入的速度。为了改变这个就使用裸设备。
裸设备就是操作系统下面不用文件系统了,如
ext4
,不需要经过操作系统的文件系统,自
己直接去访问磁盘设备。比如在
Linux
下面通常设备的路径是
/dev/sdbN
,裸设备就是
Oracle
直接去访问这个设备了,而不通过文件系统的方式去访问数据文件。虽然这样,但
是裸设备还是没有完全绕过操作系统。因为最终这些设备的接口还是通过操作系统的一种
驱动在链接。
首先设备要被操作系统所认识,设备的驱动还是由操作系统来管理的,这个时候数据库就
通过驱动去访问设备了,就不通过文件系统去访问了。这个时候就比通过文件系统去访问
效率高一些。使用裸设备创建数据文件就使用设备名字,没有操作系统的绝对路径。表空
间的数据文件是操作系统下面的一个设备了。裸设备提高了
I/O
处理能力,因为绕过了文
件系统。不好的地方就是每一个文件就是一个设备,一个表空间就至少有一个文件,一个
表空间就要有一个设备,所以这是一个问题,还有一个问题就是裸设备不是文件系统下面
的一个文件,备份的时候就不能备份了,裸设备在文件的扩展性和管理性上面都非常的不
好。比如裸设备只有
60G
,超过了
60G
又要加一个设备。尽管裸设备性能还行,但是管理
起来都十分的不方便。
评论