资源描述
裸设备管理
裸设备: raw device,确实是不被操作体系直截了当治理的设备。这种设备少了操作系同一层,I/O效力更高。数据库一样会用到。常与LVM联用。
建立裸设备
#mkdir raw
#mknod /dev/rawctl c 162 0
#mknod /dev/raw/raw1 c 162 1
#mknod /dev/raw/raw2 c 162 2
#chown root:disk /dev/rawctl
#chmod 660 /dev/rawctl
#chown root:disk /dev/raw -R
#chmod 660 /dev/raw -R
#raw /dev/raw/raw1 /dev/vgsys/lvraw1
#raw /dev/raw/raw2 /dev/vgsys/lvraw2
因为重启之后体系裸设备就没有了,因此要bind。
在/etc/raw 或 /etc/sysconfig/rawdevices那个文件中,要把裸设备和响应的分区接洽关系起来。
例如:SUSE 为/etc/raw文件中,输入
raw1:vgsys/lvraw1
raw2:vgsys/lvraw2
在RedHat中,/etc/sysconfig/rawdevices
/dev/raw/raw1 /dev/vgsys/lvraw1
/dev/raw/raw2 /dev/vgsys/lvraw2
重要的一步是更换裸设备的权限,谁用裸设备,就将权限付与谁。
例如:chown workusr:workusr /dev/raw -R
chmod 660 /dev/raw -R
这些敕令一路加到启动设备文件中,一样为/etc/rc.local, 或/etc/rc.d/rc.local等。
openSUSE为/etc/init.d/boot.local。
删除裸设备
#raw /dev/raw/raw1 0 0
#raw /dev/raw/raw2 0 0
查询裸设备
#raw -qa
开启裸设备办事
#chkconfig --list |grep raw
#chkconfig -level 235 raw on
#service raw start
Ref:
/usr/src/linux-2.6.22.5-31/Documentation/devices.txt
AIX用裸设备扩数据库表空间专题
AIXCLUB大年夜哥的经典文章,看那个AIX裸设备这块全然差不多了!AIX的裸设备跟LINUX有些不一样,建立完LV会在/dev/下生成跟LV名称前加R的文件,它确实是LV的裸设备文件。
硬件情形:小型机 IBM P670,储备:IBM SHARK F-20
软件情形:操作体系 AIX5.1 数据库oracle9i
主题思惟:物理卷PV->卷组VG->逻辑卷LV(类型:raw)->添加表空间
操作过程:
一、 起首
#lsvg – o //查看所有可用卷组
datavg03
datavg02
datavg01
datavg00
rootvg
二、 然后对用来专为数据库预备的卷组进行如下操作:
#lsvg –l datavg03
datavg09:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
lvdata0316 raw 64 64 1 open/syncd N/A
lvdata0317 raw 64 64 1 open/syncd N/A
lvdata0318 raw 64 64 1 closed/syncd N/A
lvdata0319 raw 64 64 1 closed/syncd N/A
lvdata0320 raw 64 64 1 closed/syncd N/A
lvdata0321 raw 64 64 1 closed/syncd N/A
lvdata0322 raw 64 64 1 closed/syncd N/A
lvdata0323 raw 64 64 1 closed/syncd N/A
lvdata0324 raw 64 64 1 closed/syncd N/A
lvdata0325 raw 64 64 1 closed/syncd N/A
lvdata0326 raw 64 64 1 closed/syncd N/A
lvdata0327 raw 64 64 1 closed/syncd N/A
lvdata0328 raw 64 64 1 closed/syncd N/A
lvdata0329 raw 64 64 1 closed/syncd N/A
lvdata0330 raw 64 64 1 closed/syncd N/A
由显示可知:该卷组还有13个逻辑卷(裸设备)未被应用(假如在显示成果中没有closed/syncd状况的逻辑卷,可进入第3步)但若何明白这13个逻辑卷有多大年夜容量呢,能够机应用如下敕令:
#lslv lvdata0315
LOGICAL VOLUME: lvdata0309 VOLUME GROUP: datavg09
LV IDENTIFIER: 0037de1d00004c0000000105cd3b6816.11 PERMISSION: read/write
VG STATE: active/complete LV STATE: opened/syncd
TYPE: raw WRITE VERIFY: off
MAX LPs: 512 PP SIZE: 64 megabyte(s)
COPIES: 1 SCHED POLICY: parallel
LPs: 64 PPs: 64
STALE PPs: 0 BB POLICY: relocatable
INTER-POLICY: minimum RELOCATABLE: yes
INTRA-POLICY: middle UPPER BOUND: 32
MOUNT POINT: N/A LABEL: None
MIRROR WRITE CONSISTENCY: on/ACTIVE
EACH LP COPY ON A SEPARATE PV ?: yes
可看到物理分区大年夜小为64M,因为在同一卷组傍边,因此能够明白所有物理分区大年夜小差不多上 64M,从lsvg - l datavg09的显示成果可看到,PPs:LPs=1:1因此,每个逻辑卷的大年夜小是:LPs×PPSIZE=64*64M=4096M=4G,进而可知 还有13个4G的逻辑卷,未被应用。
但到此还不克不及完全包管就能够应用这13个逻辑卷对数据库的表空间进行扩充,因为我们还不知到这些裸设备的属主,因此还须要如下步调:
#cd /dev
# ls –l rlvdata03* //显示以rlvdata03开首的文件属性
crw-rw---- 1 oracle dba 58, 20 Aug 22 11:33 rlvdata0318
crw-rw---- 1 oracle dba 58, 21 Aug 22 11:35 rlvdata0319
crw-rw---- 1 oracle dba 58, 22 Aug 22 11:37 rlvdata0320
crw-rw---- 1 oracle dba 58, 23 Aug 22 12:35 rlvdata0321
crw-rw---- 1 oracle dba 58, 24 Aug 22 12:37 rlvdata0322
crw-rw---- 1 oracle dba 58, 25 Aug 22 12:39 rlvdata0323
crw-rw---- 1 oracle dba 58, 26 Aug 22 12:39 rlvdata0324
crw-rw---- 1 oracle dba 58, 27 Aug 19 16:14 rlvdata0325
从查询成果可知,裸设备的属主差不多是oracle了,oracle能够添加这些裸设备了,但假如裸设备的属主不是oracle而是其他用户,那么须要
#chown oracle:dba rlvdata03* //要依照实际情形修改,切切当心
三、添加表空间 我们能够登录数据库了,应用有创建或修改表空间权限的用户登录数据库(有多种方法),我们以sqlplus为例:
#su - oracle
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.5.0 - Production on Mon Aug 22 12:49:55 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL>conn /as sysdba
Connected.
SQL>alter tablespace ts_index add datafile
2 ‘/dev/rlvdata0318’ size 4090; //size 是4090而不是4096,假如4096全部应用的话,轻易掉足
SQL> Tablespace altered
能够反复以上操作,完成其它裸设备的添加,从而达到表空间扩充的目标。
然则假如以上13个逻辑卷还不克不及知足扩充需求,那么能够连续以下步调
四、#lsvg datavg09 //查看卷组信息和应用情形,看是否还有足够的空间
VOLUME GROUP: datavg09 VG IDENTIFIER: 0037de1d00004c000000010
5cd3b6816
VG STATE: active PP SIZE: 64 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 2605 (166720 megabytes)
MAX LVs: 256 FREE PPs: 557 (35648 megabytes)
LVs: 32 USED PPs: 2048 (131072 megabytes)
OPEN LVs: 16 QUORUM: 3
TOTAL PVs: 5 VG DESCRIPTORS: 5
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 5 AUTO ON: no
MAX PPs per PV: 1016 MAX PVs: 32
LTG size: 128 kilobyte(s) AUTO SYNC: no
HOT SPARE: no
显示信息能够看到,该卷组今朝还有35648M空间供应用,则能够进行如下操作:
#mklv -y ‘lvdata0331’ - t ‘raw’ datavg09 64
说明:在卷组datavg09上创建逻辑卷lvdata0331,逻辑卷的类型是raw,逻辑卷的lps是64
逻辑卷大年夜小太大年夜对会阻碍数据库机能,因此不宜创建过大年夜的裸设备。
然落后行前面的‘三’节
然则假如当前所有的卷组都已应用完,没有能够用来添加裸设备的卷组,那么还要,创建卷组。
五、创建卷组 在创建之前,我们起首看一下有没有可用的物理卷
#lspv
vpath53 000b273dbe31ff50 datavg03
vpath54 000b273dbe320208 datavg03
vpath55 000b273dbe320303 datavg03
vpath56 000b273dbe320795 None
vpath57 000b273dbe320a46 None
vpath58 000b273dbe320c29 None
能够看到vpath56、vpath57、vpath58、还没有备卷组应用。因为当前情形的储备供给是磁盘阵列,因此vpath 是在阵列上指定了大年夜小的,在小型机体系认到的所谓的“物理卷”(事实上真正的物理卷,应当是
hdisk)。
# mkvg -f -y'datavg04' -s'64' '-n' vpath56 vpath57 vpath58
说明:用 vpath56 vpath57 vpath58 创建卷组datavg04,同时物理分区大年夜小是64M
卷组创建好后,反复前面的步调即可完成。
参考:
裸设备,也叫裸分区(原始分区),是一种没有经由格局化,不被Unix经由过程文件体系来读取的专门字符设备。本文收集裸设备和Oracle问答20例。
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/raw1of=/dev/rmt0bs=16k。dd的具体语法能够参考unix手册,或者联机赞助。你也能够先用dd把裸设备上的数据 文件备份到磁盘上,然后再应用Unix有用法度榜样进一步处理。行办事器选项,
12。我能够在数据库上让一部分数据文件应用文件体系,另一部分应用裸设备吗?
能够。然则如许的话,会使备份过程加倍复杂。
13.我应当把联机重做日记文件放到裸设备上吗?
这是一个极好的选择。联机重做日记文件是写操作专门频繁的文件,放到裸设备上专门合适。假如你应用了并行办事器选项,那么联机重做日记文件必须放到裸设备上面。
14.能够把归档日记文件放到裸设备上吗?
不可。归档日记文件必须放到惯例的Unix文件体系上面,或者直截了当放到磁带上面去。
15.我能够在裸设备上边放置多个数据文件吗?
不可。因此你必须在设置裸设备时专门当心。太小的话,会导致空间专门快用完,太大年夜的话,空间就白白白费了。
16.因应当把几个裸设备放到同一个物理磁盘上吗?
如许做不行。因为应用裸设备确实是为了进步磁盘读写速度。而把多个裸设备放到同一个物理磁盘上会导致读写竞争,如许关于进步I/O速度是晦气的。应当尽量分散裸设备到不合的物理磁盘上,最好是分散到不合的磁盘操纵器上。这是最佳选择。
17.须要把所有裸设备都定义成同样的大年夜小吗?
这不是必须得,然则划分成同样的大年夜小关于治理数据库比较有利。
18.为了在Unix上应用裸设备,我须要改变Unix核心参数吗? 不须要。但能够选择减小缓冲区的大年夜小,假如没有其余应用也在同一台Unix机械上运行。因为应用了裸设备今后,不再应用Unix的体系缓冲区。
19.为了进步读写速度,在操作体系级别上,还有什么方法能够采取吗?
应用RAID(廉价冗余磁盘阵列)也是专门有效的方法,专门实那种读写专门频繁的体系。
20.在推敲了以上所有方面后,还能有什么方法能够进步机能的吗?
这就须要对Oracle 进行优化,同时购买更多的磁盘和磁盘操纵器,来分散I/O
展开阅读全文