- 浏览: 4407264 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
裸设备概述
裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。
字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。
块设备:对块设备的读写需要通过OS的buffer,它可以被mount到文件系统中。
这个与linux的版本相关,在旧版本中,最多只可以有256个裸设备,Linux 4下做多可以绑定81Array2个裸设备。但是在linux下,最多只能有255个分区,所以,如果用裸设备绑定分区,最多只能绑定255个裸设备。如果是用lvm,则没有这个限制。
Linux下单个磁盘最多可以有15个分区。3个主分区 + 1个扩展分区 + 11个逻辑分区。
建议的分区方法是:先分3个主分区,第四个分区为扩展分区,然后在扩展分区中再分成11个逻辑分区。
注意,裸设备不要绑定在扩展分区上。
linux下如果需要使用裸设备,则需要手工进行绑定,unix下则不用。
因为Unix中每一个块设备都会有一个对应的字符设备用于非缓存(unbuffered)I/O,这就是他对应的裸设备了。而Linux中rawio的则
实现了一套非绑定(unbound)的裸设备/dev/rawN或者/dev/raw/rawN和一个控制设备/dev/rawct用来把他们绑定到块设
备上。所以当需要使用一个裸设备的时候,就需要把他和一个真实存在的块设备对应起来,这一个步骤实际上就是完成了Unix里的自动对应一个非缓存字符设备。
major和minor device number
在unix/linux系统中,一切都是文件。所有硬盘、软盘、键盘等设备都用文件来代表,对应
着/dev下面的文件。对于应用程序来说,可以像对待普通文件一样打开,关闭、读写这些设备文件。但是这种文件名,比如/dev/sda、/dev
/raw/raw1都是用户空间名称,OS Kernel根本不知道这个名称指的是什么。在内核空间是通过major、minor device
number 来区分设备的。
major device number可以看作是设备驱动程序,被同一设备驱动程序管理的设备有相同的major device number.这个数字实际是Kernel中device driver table 的索引,这个表保存着不同设备驱动程序。
而minor device number用来代表被访问的具体设备。也就是说Kernel根据major device number
找到设备驱动程序,然后再从minor device number 获得设备位置等属性。所有这些major device number
是已经预先分配好的。详细信息可以从http://www.lanana.org/docs/device-list/devices-2.6+.txt
查看。比如裸设备是162,scsi块设备是8
/etc/udev/rules.d/60-raw.rules
Redhat平台对raw设备的配置在redhat 5之后有了变化。在redhat 5之前,直接配置/etc/sysconfig/rawdevices件,通过/etc/init.d/rawdevices来管理raw设备的启动和关 闭。在Redhat 5之后,原来的raw设备接口已经取消了,redhat 5中通过udev规则进行配置。 要配置,需要编辑/etc/udev/rules.d/60-raw.rules这个文件。
cat /etc/udev/rules.d/60-raw.rules
# Enter raw device bindings here.
#
# An example would be:
# ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.
其中
ACTION=="add", KERNEL="<device name>", RUN+="raw /dev/raw/rawX %N"
配置设备名称,用你需要绑定的设备名称替换 <device name>(如:/dev/sda1),X为裸设备号
主/次号码:
ACTION=="add", ENV{MAJOR}="A", ENV{MINOR}="B", RUN+="raw /dev/raw/rawX %M %m"
"A" 和 "B" 是设备的主/次号码,X是系统使用的raw设备号码。
个人对redhat管理raw的过程理解为: 在redhat 5中,是通过udev来管理raw设备的,而udev是通过 MAJOR和MINOR来识别 raw设备 。 故需要将设备号和裸设备号进行绑定,而主设备号和次设备号可以自行指定或者由系统自动分配。 根据red hat的官方文档中关于raw.rule的示例中说KERNEL==..或ENV{MAJOR}...只需要任意配置一个就可以,但有些网友经过试验,验证必须二者同时配置才可以。
配置 /etc/udev/rules.d/60-raw.rules文件
查看磁盘分区情况
# fdisk -l /dev/sdb
Disk /dev/sdb: 4880 MB, 4880072704 bytes
255 heads, 63 sectors/track, 593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 25 200781 83 Linux
/dev/sdb2 26 50 200812+ 83 Linux
配置
/etc/udev/rules.d/60-raw.rules文件
# grep -v ^# /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", ENV{MAJOR}=="3", ENV{MINOR}=="2", RUN+="/bin/raw /dev/raw/raw1 %M %m"
ACTION=="add", ENV{MAJOR}=="7", ENV{MINOR}=="2", RUN+="/bin/raw /dev/raw/raw2 %M %m"
启动raw设备
# start_udev
Starting udev: [ OK ]
查看配置情况
# raw -qa
/dev/raw/raw1: bound to major 8, minor 17
/dev/raw/raw2: bound to major 8, minor 18
这里笔者不清楚为什么主设备号和复设备号并不和我在
/etc/udev/rules.d/60-raw.rules指定的一样,望了解的读者告知,系统内核信息如下
# uname -a
Linux rac1 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.4 (Tikanga)
可以通过如下方式指定
主设备号和复设备号
# raw /dev/raw/raw1 1 1
/dev/raw/raw1: bound to major 1, minor 1
raw /dev/raw/raw[n] /dev/xxx
其中n的范围是0-8191。raw目录不存在的话会被自动创建。执行这个命令,就会在/dev/raw下生成一个对应的raw[n]文件用命令方式绑定裸设备在系统重启后会失效。
删除裸设备
# raw /dev/raw/raw2 0 0
/dev/raw/raw2: bound to major 0, minor 0
# raw -qa
/dev/raw/raw1: bound to major 1, minor 1
以上设置必须同时修改 /etc/udev/rules.d/60-raw.rules才能保证重启后生效,否则重启后系统会重新读取 /etc/udev/rules.d/60-raw.rules
如需设置raw设备的用户和权限信息,可在/etc/udev/rules.d/60-raw.rules文件里添加如下信息:
ACTION=="add", KERNEL=="raw1", OWNER="dave", GROUP="tianlesoftware", MODE="660"
如果有多个raw设备,可以写成:
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dave", GROUP="tianlesoftware", MODE="660"
#chown oracle:oinstall /dev/raw/raw[1-4]
#chmod 775 /dev/raw/raw[1-4]
注意:在内核2.6.9-89.5AXS2之前使用/etc/sysconfig/rawdevices和/etc/udev/permissions.d/50-udev.permissions进行raw设备的配置和权限管理。在内核 2.6.18-128.7AXS3以后则使用了本文介绍的
/etc/udev/rules.d/60-raw.rules进行raw设备的管理
确定裸设备的大小
比较笨的办法是,找出看裸设备对应的是那个实际的块设备,然后用fdisk -l /dev/[h,s]dXN看那个块设备的大小就好了。比较简单的办法是用blockdev命令来计算,如:
#blockdev --getsize /dev/raw/raw1
11718750
11718750表示有多少OS BLIOCK。
一般一个OS BLOCK大小是512字节,所以11718750*512/1024/1024= 5722(m) 就是裸设备的大小。
使用裸设备作为oracle的数据文件的注意事项
1、一个裸设备只能放置一个数据文件
2、数据文件的大小不能超过裸设备的大小
如果是日志文件,则裸设备最大可用大小=裸设备对应分区大小 - 1 * 512 (保留一个redo lock)
如果是数据文件,则裸设备最大可用大小=裸设备对应分区大小 - 2 * db_block_size(保留两个block)
为了简单起见,对所有的文件设置称比裸设备小1M即可。
3、数据文件最好不要设置称自动扩展,如果设置称自动扩展,一定要把maxsize设置设置为比裸设备小
4、linux下oracle不能直接把逻辑卷作为裸设备,也要进行绑定。unix下就不需要。
参考至:《大话Oracle Rac》张晓明著
Configuring raw devices (multipath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5-OEL5 [ID 564580.1]
http://www.cnblogs.com/spring3mvc/archive/2010/11/26/2414737.html
http://blog.csdn.net/tianlesoftware/archive/2010/11/30/6045137.aspx
http://bianxq.iteye.com/blog/510445
http://blog.csdn.net/tianlesoftware/article/details/5796962
http://www.sudu.cn/info/html/edu/20080102/281296.html
http://www.edward-han.com/175.html
http://www.cnblogs.com/rootq/articles/1487267.html
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com
发表评论
-
Linux OOM机制介绍
2018-06-06 11:27 3459Linux系统运行过程中,有时候会在message中看 ... -
Linux启动过程--从引导说起
2016-09-23 13:49 1175Linux的引导过程是一个用来初始化系统的程序。它包含了在打 ... -
基于案例学SQL优化第5周脚本
2015-04-12 19:35 0===============BEGIN=========== ... -
重启linux network服务/etc/resolv.conf信息丢失的解决方案
2014-11-13 13:38 3112修改/etc/resolv.conf,修改后重启服务 ser ... -
linux sudo 命令
2014-11-04 15:01 1331“Sudo”是Unix/Linux平台上的一个非常有用的工具 ... -
linux sudo,su和打开终端速度很慢
2014-11-04 09:42 4276一、症状sudo指令执行速度很慢,例如:sudo -u ro ... -
Linux NFS服务器的安装与配置
2014-10-15 00:00 1008一、NFS服务简介 N ... -
DISPLAY变量和xhost(原创)
2014-10-14 16:58 60571DISPLAY 在Linux/Unix类操作系统上, D ... -
Linux NTP配置详解 (Network Time Protocol)
2014-10-02 21:49 18493Network Time Protocol (NTP) ... -
Linux下DNS服务器的设置
2014-10-02 21:43 1464环境:要设的DNS机子 ... -
nslookup工具的使用方法
2014-10-02 21:35 6918配置好DNS服务器,添加 ... -
ntpd与ntpdate的区别
2014-10-02 17:57 1141之前配置ntpd的时候搜到一句话,印象很深刻,也觉得很有标题 ... -
认识/etc/fstab和/etc/mtab文件
2014-09-20 12:27 3161fstab fs tab(描述 各 ... -
扩展Linux swap分区 两种方法
2014-09-16 17:23 1543先来查询一下系统的swap [root@localhost ... -
vim切换tab标签快捷键
2014-06-22 17:16 19481这几天在学习VIM,在WIN7下装了GVIM,在折腾好配置文 ... -
如何看linux是32位还是64位
2014-04-27 14:09 1674查看linux机器是32位还是64位的方法:方法一:file ... -
iSCSI的配置(target/initiator)
2014-04-27 13:45 54479iSCSI 是一种 SAN的设备而 SAN的设备主要是提供 ... -
linux kudzu作用与操作方法(原创)
2013-08-29 22:03 2867概述kudzu是在linux系统启动时用来检测硬件的,一般在 ... -
Linux下获取详细硬件信息的工具:Dmidecode命令详解
2013-08-29 21:52 2539Dmidecode 这款软件允许 ... -
DAS,NAS,SAN和ISCSI存储架构介绍(原创)
2013-06-23 10:22 16120DASDAS是Direct Attached Stor ...
相关推荐
计算机启动详解 在计算机科学中,启动过程是一个至关重要的环节,它是计算机系统从关闭状态到运行状态转变的关键步骤。本文将深入探讨计算机启动的详细流程,包括BIOS、MBR、引导加载器以及操作系统加载等多个阶段...
vCenter Appliance是一款基于Linux的虚拟设备,用于集中管理VMWare vSphere环境中的所有资源。它包含了vCenter Server的所有功能,并且内置了数据库服务以及Web客户端,简化了安装和配置流程。需要注意的是,vCenter...
万由u-nas系统Nextcloud手动复制文件详解 一、Nextcloud简介 Nextcloud是一款开源的文件存储和同步软件,允许用户在多个设备之间同步文件并共享文件。Nextcloud广泛应用于个人和企业文件存储和共享领域。 二、...
Nagios能够监控服务器、网络设备、应用程序等,一旦发现异常,会立即通知管理员。Nagios 2.12是该系统的一个稳定版本,提供丰富的监控功能。 ### 2. 系统需求 在安装Nagios之前,确保系统满足以下条件: - Linux...
### 嵌入式多线程实验报告知识点详解 #### 实验背景与目的 本次实验旨在通过实际操作加深对嵌入式系统中多线程编程的理解。实验的主要目的是让参与者熟悉Linux环境下多线程程序的设计与调试过程。具体而言,需要...
**中断机制**是操作系统中的一个重要组成部分,负责处理来自外部设备或硬件的信号。这部分内容主要介绍了MINIX3中的中断机制如何工作。 - **2.1 分析前的实现说明**:这一小节可能包含了分析中断机制之前的一些背景...
【知识点详解】: 1. **网站开发**:全站代码意味着这个压缩包可能包含了整个网站从头到尾的所有源代码,包括HTML、CSS、JavaScript等前端代码,以及PHP、Python、Java或.NET等后端代码。这些代码是构建网站的基础...
操作系统包括Windows XP、Linux等,同时需要参赛者熟悉VMware Server的使用。此外,学生需要自带双绞线制作工具。 2. **园区网互联及网站建设**:同样是团队项目,但人数为三人。参赛者需构建园区网络,设立并发布...
【思维导图软件MindMaster详解】 思维导图作为一种有效的思维工具,可以帮助我们组织思维、整理信息,提升学习和工作效率。而MindMaster是一款专为电脑用户设计的中文版思维导图软件,提供丰富的功能和易用的操作...
- **GLUT**:使用GLUT库简化OpenGL窗口管理。 - **OpenGL扩展**:根据需要加载OpenGL扩展,如GLSL(OpenGL着色语言)、ARB_texture_rectangle等。 - **OpenGL离屏渲染**:使用FBO(帧缓冲对象)进行离屏渲染,以便于...
【先凌OSD 2.1:多媒体控制与显示组件详解】 先凌OSD(On-Screen Display)2.1是一款专为多媒体应用设计的控制与显示组件,它提供了丰富的功能,旨在提升用户体验并满足开发者在多媒体项目中的各种需求。这款组件在...
- **配置管理**:讲解如何利用SDM简化设备的配置和管理过程。 **10 进阶篇七:实验成果交换** - **共享平台**:推荐一些用于分享实验设计和成果的平台。 - **文档编写**:提供关于如何编写高质量实验报告的建议。 -...