初识Oracle裸设备二十问[MSSQL防范]
本文“初识Oracle裸设备二十问[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在Unix系统上面处理裸设备:
1.什么叫做裸设备?
裸设备,也叫裸分区(原始分区),是一种没有经过格局化,不被Unix通过文件系统来读取的特别字符设备.它由利用程序负责对它举行读写操作.不经过文件系统的缓冲.
2.若何辨别裸设备?
在Unix的/dev 目录下,有很多文件,此中有两个大类:字符设备文件和块设备文件.
字符设备特别文件举行I/O操作不经过操作系统的缓冲区,而块设备特别文件用来同外设举行定长的包传输.字符特别文件与外设举行I/o操作时每次只传输一个字符.而关于块设备特别文件来说,它用了cache机制,在外设和内存之间一次可以传送一整块数据.裸设备利用字符特别文件.在/dev 目录下,你可以看到很多这样的文件.
3.利用裸设备的好处
因为利用裸设备避免了再经过Unix操作系统这一层,数据直接从Disk到Oracle举行传输,所以利用裸设备关于读写频繁的数据库利用来说,可以极大地提高数据库系统的性能.当然,这是以磁盘的I/O 非常大,磁盘I/O已经称为系统瓶颈的情形下才成立.假如磁盘读写确切非常频繁,以至于磁盘读写成为系统瓶颈的情形成立,那么采取裸设备确切可以大大提高性能,最大乃至可以提高至40%,十清楚显.
并且,由于利用的是原始分区,没有采取文件系统的管理方法,关于Unix保护文件系统的开销也都没有了,比方不用再保护I-node,闲暇块等,这也可以招致性能的提高.
4.若何决意能否应当利用裸设备?
判断能否利用裸设备要从以下方面举行考虑:首先,数据库系统本身需求已经被对比好的经过了优化.优化是一门很有些技术的话题,很难简单地报告.其次,利用Unix号令来辨别能否存在磁盘读写瓶颈.比方Unix的vmstat, sar 等号令都可以较好的举行辨别.假如断定采取裸设备,需求磁盘上还有闲暇的分区.不然,就要新添磁盘,大概对原有系统重新筹划.
5.什么系统必须利用裸设备?
假如利用了Oracle 并行服务器选项,则必须采取裸设备来存放全部的数据文件,掌握文件,重做日记文件.只有把这些文件放到裸设备上,才能保证全部Oracle 实例都可以读取这个数据库的文件.这是由Unix操作系统的特点决意的.
还有一种情形是,假如你想利用异步I/O,那么在有些Unix上也必须采取裸设备.这个需求参考具体Unix的相关文档.
6.可以利用一个磁盘的第一个分区作为裸设备吗?
可以,但是不举荐.在Unix的对比旧的版本是银行,磁盘的第一个分区常常包含这个磁盘的一些信息,以及逻辑卷的一些掌握信息.若这些部份被裸设备覆盖的话,磁盘就会变得不可辨认,招致系统崩溃.
较新的Unix版本不会发生这样的情形,因为它们采取了更复杂的技术来管理磁盘,逻辑卷的一些信息.
但是,除非很确信不要利用磁盘的第一个分区来作为裸设备.
7.我可以把整个裸设备都作为Oracle的数据文件吗?
不行.必须让数据文件的大小略细小于该裸设备的实际大小.至少要空出两个oracle块的大小来.
8.裸设备应当属于那个用户?
应当由root来成立裸设备,然后再分配给Oracle用户以供利用.同时还要把它归入Oracle用户所在的那个组里边(普通都是DBA).
9.在成立数据文件时若何指定裸设备?
和普通文件没有什么太大的辨别,一样都是在单引号里边写上裸设备的具体途径便可以了.举一个例子:要在成立一个表空间,利用两个裸设备,每个辨别为30M的大小,Oracle块的大小为4K,可以用下面的号令:
- CREATE TABLESPACE RAW_TS
- DATAFILE '/dev/raw1' size 30712k
- DATAFILE '/dev/raw2' size 30712k;
10.Oracle块的大小和裸设备有什么关系吗?
Oracle会必须是裸设备上物理块大小的倍数.
11.如安在裸设备上举行备份?
在裸设备上,不能利用Unix实用程序来举行备份,唯一的办法是利用最基本的Unix号令:DD来举行备份.比方:dd if=/dev/raw1 of=/dev/rmt0 bs=16k.dd的具体语法可以参考unix手册,大概联机帮忙.你也可以先用dd把裸设备上的数据文件备份到磁盘上,然后再操纵Unix实用程序进一步处理.
12.假如我没有利用Oracle并行服务器选项,我可以在数据库上让一部份数据文件利用文件系统,另一部份利用裸设备吗?
可以.但是这样的话,会使备份历程越发复杂.
13.我应当把联机重做日记文件放到裸设备上吗?
这是一个极好的挑选.联机重做日记文件是写操作非常频繁的文件,放到裸设备上非常符合.假如你利用了并行服务器选项,那么联机重做日记文件必须放到裸设备上面.
14.可以把归档日记文件放到裸设备上吗?
不行.归档日记文件必须放到通例的Unix文件系统上面,大概直接放到磁带上面去.
15.我可以在裸设备上边安排多个数据文件吗?
不行.所以你必须在设置裸设备时非常当心.太小的话,会招致空间很快用完,太大的话,空间就白白浪费了.
16.因应当把几个裸设备放到同一个物理磁盘上吗?
这样做不好.因为利用裸设备就是为了提高磁盘读写速度.而把多个裸设备放到同一个物理磁盘上会招致读写竞争,这样关于提高I/O速度是不利的.应当尽大概分离裸设备到差别的物理磁盘上,最好是分离到差别的磁盘掌握器上.这是最佳挑选.
17.需求把全部裸设备都定义成一样的大小吗?
这不是必须得,但是划分成一样的大小关于管理数据库对比有利.
18.为了在Unix上利用裸设备,我需求改变Unix核心参数吗?
不需求.但可以挑选减小缓冲区的大小,假如没有别的利用也在同一台Unix机械上运行.因为应用了裸设备今后,不再利用Unix的系统缓冲区.
19.为了提高读写速度,在操作系统级别上,还有什么办法可以采纳吗?
利用RAID(便宜冗余磁盘阵列)也是非常有效的办法,特别实那种读写非常频繁的系统.
20.在考虑了以上全部方面后,还能有什么办法可以提高性能的吗?
这就需求对Oracle 举行优化,并且购置更多的磁盘和磁盘掌握器,来分离I/O到差别的磁盘上.
在centos5 上面处理裸设备:
redhat5.3 怎样将分区绑定为裸设备
redhat5.3 怎样将还未划分利用的闲暇分区,绑定未裸设备,已可以使oracle ASM 管理利用??
分区,操作系统已经利用了一部份,5块盘 构成阵列5 第六块做热备,保存一部份未划分的空间,在系统层面将其绑定设置为裸设备 以可以便利oracle 的 asm 管理利用
在Redhat 9从前版本,利用裸设备非常简单,sybase在建数据库设备时直接写/dev/rdsk/xxxx. 自己实行了一下.
首先,我没有利用逻辑卷VG. 直接在剩余空间上分区
fdisk /dev/sda
n
选扩大分区(/dev/sda4)
n
成立linux分区(/dev/sda5)
w
退出重新启动系统.
- raw /dev/raw/raw1 /dev/sda5
从实行才知道,这个/dev/raw/raw1会自动成立,包含/dev/raw这个目录,不用耽忧原先能否存在这个目录
为了重启系统之后,这个裸设备还持续存在,在/etc/syscontrl/rawdevices背面加一条:
/dev/raw/raw1 /dev/sda5
假如不行就在: vi /etc/rc.d/rc.local
- # cat /etc/rc.d/rc.local
- #!/bin/sh
- #
- # This script will be executed *after* all the other init scripts.
- # You can put your own initialization stuff in here if you don't
- # want to do the full Sys V style init stuff.
- raw /dev/raw/raw1 /dev/sda5
- touch /var/lock/subsys/local
- chown -R sybase:sybase /dev/sda5
- chown -R sybase:sybase /dev/raw
这样这个裸设备 /dev/raw/raw1便可以作为设备途径在sybase里面成立数据库设备.
<以上是“初识Oracle裸设备二十问[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |