种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

裸设备

(2021-07-02 17:00:02) 百科综合

裸设备

裸设备(raw device),也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过档案系统来读取的特殊块设备档案。由应用程式负责对它进行读写操作。不经过档案系统的缓冲。它是不被作业系统直接管理的设备。这种设备少了作业系统这一层,I/O效率更高。不少资料库都能通过使用裸设备作为存储介质来提高I/O效率。

基本介绍

  • 中文名:裸设备
  • 也叫:裸分区
  • 特点:I/O效率更高
  • 注意:磁碟有空闲分区

裸设备的辨别

裸设备
在Unix的/dev 目录下,有许多档案,其中有两个大类:字元设备档案和块设备档案。
字元设备特殊档案进行I/O操作不经过作业系统的缓冲区,而块设备特殊档案用来同外设进行定长的包传输。字元特殊档案与外设进行I/o操作时每次只传输一个字元。而对于块设备特殊档案来说,它用了cache机制,在外设和记忆体之间一次可以传送一整块数据。裸设备是一种特殊类型的块设备档案。在/dev 目录下,你可以看到许多这样的档案。

裸设备的套用

因为使用裸设备避免了再经过Unix作业系统这一层,数据直接从Disk到Oracle进行传输,所以使用裸设备对于读写频繁的资料库套用来说,可以极大地提高资料库系统的性能。当然,这是以磁碟的 I/O 非常大,磁碟I/O已经成为系统瓶颈的情况下才成立。如果磁碟读写确实非常频繁,以至于磁碟读写成为系统瓶颈的情况成立,那幺採用裸设备确实可以大大提高性能,最大甚至可以提高至40%,非常明显。
而且,由于使用的是原始分区,没有採用档案系统的管理方式,对于Unix维护档案系统的开销也都没有了,比如不用再维护I-node,空闲块等,这也能够帮助提高性能。

适用範围

判断是否使用裸设备要从以下方面进行考虑:首先,资料库系统本身需要已经被比较好的经过了最佳化。最佳化是一门很有些技术的话题,很难简单地讲述。其次,使用Unix命令来辨别是否存在磁碟读写瓶颈。比如Unix的vmstat, sar 等命令都可以较好的进行鉴别。如果决定採用裸设备,需要磁碟上还有空闲的分区。否则,就要新添磁碟,或者对原有系统重新规划。
如果使用了Oracle 并行伺服器选项,则必须採用裸设备来存放所有的数据档案,控制档案,重做日誌档案。只有把这些档案放到裸设备上,才能保证所有Oracle 实例都可以读取这个资料库的档案。这是由Unix作业系统的特性决定的。
还有一种情况是,如果你想使用异步I/O,那幺在有些Unix上也必须採用裸设备。这个需要参考具体Unix的相关文档。

创建及备份

应该由root来创建裸设备,然后再分配给Oracle用户以供使用。同时还要把它归入Oracle用户所在的那个组里边(通常都是DBA)。
在创建数据档案时指定裸设备和普通档案没有什幺太大的区别,一样都是在单引号里边写上裸设备的详细路径就可以了。举一个例子:要在创建一个表空间,使用两个裸设备,每个分别为30M的大小,Oracle块的大小为4K,可以用下面的命令:
CREATE TABLESPACE RAW_TS
DATAFILE '/dev/raw1' size 30712k
DATAFILE '/dev/raw2' size 30712k;
在裸设备上,不能使用Unix实用程式来进行备份,唯一的办法是使用最基本的Unix命令:DD来进行备份。比如:dd if=/dev/raw1 of=/dev/rmt0 bs=16k。dd的具体语法可以参考unix手册,或者线上帮助。你也可以先用dd把裸设备上的数据档案备份到磁碟上,然后再利用Unix实用程式进一步处理。
把在线上重做日誌档案(online redo log)放到裸设备上是一个极好的选择。在线上重做日誌档案是写操作非常频繁的档案,放到裸设备上非常合适。如果你使用了并行伺服器选项,那幺在线上重做日誌档案必须放到裸设备上面。 但是归档日誌档案必须放到常规的Unix档案系统上面,或者直接放到磁带上面去。在提高数据读写的速度和性能方法还有其他的途径, 使用RAID(廉价冗余磁碟阵列)也是非常有效的办法,尤其实那种读写非常频繁的系统。 对Oracle 进行最佳化,并且购买更多的磁碟和磁碟控制器,来分散I/O到不同的磁碟上也是比较有效的一种方法。
要注意的是,在Oracle中,一旦使用了裸设备,tablespace就不能设定为auto_extend,因为在裸设备中不支持档案大小的自动扩展,因此如果数据档案快要写完的时候,请手动在裸设备上添加资料库档案以完成扩容的目的。

标 签

搜索
随机推荐

Powered By 种豆资源网||