转载地址如下;http://blog.163.com/han_cheng_jun/blog/static/955668602012927111116220/

背景:老的Oracle rac安装方式,基本都是通过raw设备的方式来绑定共享存储中的磁盘,所以通过了解和分析裸设备的使用方式,理解旧时RAC安装的基本原理,因此转载此文章。由于时间仓促,未整理!~

绑定裸设备

raw /dev/raw/raw/dev/

删除裸设备

raw /dev/raw/raw0 0

如用raw /dev/raw/raw1 0 0 删除裸设备/dev/raw/raw1

1、什么裸设备?字符设备?块设备?

裸设备:也叫裸分区(原始分区),是一种没有经过格式化,不被Unix/Linux通过文件系统来读取的特殊字符设备。裸设备可以绑定一个分区,也可以绑定一个磁盘。

字符设备:对字符设备的读写不需要通过OS的buffer。它不可被文件系统mount。

块设备:对块设备的读写需要通过OS的buffer,它可以被mount到文件系统中。

2、一个系统可以有多少个裸设备?

这个与linux的版本相关,在旧版本中,最多只可以有256个裸设备,Linux 4下做多可以绑定8192个裸设备。

但是在linux下,最多只能有255个分区,所以,如果用裸设备绑定分区,最多只能绑定255个裸设备。

如果是用lvm,则没有这个限制。

3、Linux下单个磁盘最多可以有多少个分区?

15个。3个主分区 + 1个扩展分区 + 11个逻辑分区。

建议的分区方法是:先分3个主分区,第四个分区为扩展分区,然后在扩展分区中再分成11个逻辑分区。

注意,裸设备不要绑定在扩展分区上。

4、linux下是否需要绑定裸设备?unix呢?

linux下如果需要使用裸设备,则需要手工进行绑定。

unix下则不用。

因为Unix中每一个块设备都会有一个对应的字符设备用于非缓存(unbuffered)I/O,这就是他对应的裸设备了。

而Linux 中rawio的则实现了一套非绑定(unbound)的裸设备/dev/rawN或者/dev/raw/rawN和一个控制设备/dev/rawct用来把他们绑定到块设备上。所以当需要使用一个裸设备的时候,就需要把他和一个真实存在的块设备对应起来,这一个步骤实际上就是完成了Unix里的自动对应一个非缓存字符设备。

5、linux如何绑定裸设备?

两种方式:

1)命令绑定

raw /dev/raw/raw[n] /dev/xxx

其中n的范围是0-8191。raw目录不存在可以创建。

执行这个命令,就会在/dev/raw下生成一个对应的raw[n]文件

用命令方式绑定裸设备在系统重启后会失效。

2)修改文件

修改/etc/sysconfig/rawdevices文件如下,以开机时自动加载裸设备,如:

/dev/raw/raw1 /dev/sdb1

这种方式是通过启动服务的方式来绑定裸设备。

也可以把这个命令写在/etc/rc.local上,使每次启动都执行这些命令。

6、如何把裸设备作为oracle数据文件?有什么需要注意的?

1)绑定裸设备

参考上文

2)改变裸设备属主

两种方法:

. 把命令卸载/etc/rc.local上

chown oracle:oinstall /dev/raw/raw1

. 修改/etc/udev/permissions.d/50-udev.permissions文件

将/etc/udev/permissions.d/50-udev.permissions的113行

raw/*:root:disk:0660

修改为

raw/*:oracle:oinstall:0660

这个的意思是修改裸设备的默认属主为oracle:oinstall,默认的mode是0660。

如果是用lvm,也需要把逻辑卷绑定到裸设备上,过程和绑定到普通分区类似。

7、使用裸设备作为oracle数据文件有什么需要注意的?

使用裸设备作为oracle的数据文件必须注意以下几点:

1)一个裸设备只能放置一个数据文件

2)数据文件的大小不能超过裸设备的大小

如果是日志文件,则裸设备最大可用大小=裸设备对应分区大小 - 1 * 512 (保留一个redo lock)

如果是数据文件,则裸设备最大可用大小=裸设备对应分区大小 - 2 * db_block_size(保留两个block)

为了简单起见,对所有的文件设置称比裸设备小1M即可。

3)数据文件最好不要设置称自动扩展,如果设置称自动扩展,一定要把maxsize设置设置为比裸设备小

8、是否可以直接用逻辑卷作为oracle数据文件?

linux下oracle不能直接把逻辑卷作为裸设备,也要进行绑定。unix下就不需要。

9、如何知道当前绑定了什么裸设备?

rqw -qa命令列出当前绑定的所有裸设备。

10、如何知道某个裸设备的大小

比较笨的办法是,找出看裸设备对应的是那个实际的块设备,然后用fdisk -l /dev/[h,s]dXN看那个块设备的大小就好了。

比较简单的办法是用blockdev命令来计算,如:

#blockdev --getsize /dev/raw/raw1

11718750

11718750表示有多少OS BLIOCK。

一般一个OS BLOCK大小是512字节,所以11718750*512/1024/1024/1024 = 5722(m) 就是裸设备的大小。

11、数据库中可以同时以文件和裸设备作为数据文件吗?

可以。甚至在同一个表空间中,也可以部分数据文件用文件系统,部分文件用裸设备。

但是不建议这样做,因为会增加管理的复杂度。

12、可以把至于裸设备的数据文件设成自动扩展吗?

可以,但同时要设置maxsize,且maxsize不能超过:裸设备大小 - 2*db_block_size

13、如何修改裸设备的默认权限

两种方法:

1)要修改/etc/rc.d/rc.local文件,加入如下:

chown root:oinstall /dev/raw/raw1

chown root:oinstall /dev/raw/raw2

chown root:oinstall /dev/raw/raw3

...

chmod 660 /dev/raw/raw1

chmod 660 /dev/raw/raw2

chmod 660 /dev/raw/raw3

...

2)实际上还有更简单的方法就是,修改/etc/udev/permissions.d/50-udev.permissions文件:

raw/*:root:disk:0660

raw/*:root:oinstall:0660

这样就可以了!

14、如何取消裸设备的绑定

用raw把major and minor设成0就可以取消裸设备的绑定。如:

raw /dev/raw/raw1 0 0

这个命令取消绑定裸设备的绑定,/dev/raw/raw1会被删除

15、裸设备可以绑定的对象可以什么?

可以绑定整个没有分区的硬盘、可以绑定硬盘的某个分区、可以绑定逻辑卷等。

(一)AIX下创建裸设备:

4e)Nguo0RI3N01.创建VG卷组:

Q3~ZL%f0#mkvg -S -y'datavg' -s'128'hdisk1 hdisk2....hdisknITPUB个人空间6X`Jt }eO

其中:-S表示创建scalable-type的VG;-y表示创建vg的名称;-s表示PP SIZE的大小。

Y%`I-u+}+s N02.从VG中创建一个LV,名称为lv_db_test_1g:ITPUB个人空间R Lj3[B%FJ:lp

#mklv -y'lv_db_test_1g' -t'raw' '-S128k' datavg 16 hdisk1 hdisk2...hdisknITPUB个人空间N;N6o*_;avQj

其中:在vg中创建一个lv_db_test_1g的lv;分别在pv上条带尺寸为128K,-t 表示类型为raw,这个类型只是个标志,可以随意指定。ITPUB个人空间3mo3_WK S5h-LGf

3.修改相应权限:

1P4V!i_U9V[0chownoracle:oinstall /dev/rlv_db_test_1g;

!ER"[jAi0fk0注意室"rlv"表示字符设备。

;L.bcK6S04.挂载数据文件:

3i_y l9O@ S0ln -s /dev/rlv_db_test_1g /oracle/oradata/dgdemo/temp01.dbfITPUB个人空间z i Rvl$_

5.在数据库中创建表空间:ITPUB个人空间qCqdeL

create tablespace temp datafile '/oracle/oradata/dgdemo/temp01.dbf' size 1000M reuse;

(二)linux下创建裸设备:

1.创建分区:

利用fdisk分一个区,比如划分/dev/hdb1;

2.挂载分区:

#raw  /dev/raw/raw1  /dev/hdb1;

3.修改权限:

#chown oracle:oinstall /dev/raw/raw1

4.链接裸磁盘:

#ln -s /dev/raw/raw1  /oracle/oradata/dgdemo/temp.dbf

5.创建oracle的数据文件:

create tablespace temp datafile '/oracle/oradata/dgdemo/temp.dbf' size 1000M reuse;

备注:如果使用LVM来创建LV类型的裸设备:由于LVM创建的LV是块设备,不是字符设备,只有块设备;

#raw /dev/raw/raw1  /dev/lv_db_test_1g;

(三)裸设备备份:

使用dd命令:

if=file  指定输入文件,默认值为标准输入

of=file 指定输出文件,默认值为标准输出

bs=n  设置输入和输出的块大小为N字节(以k为单位)

skip=n 拷贝之前跳过n个数据块,默认值为0

seek=n 拷贝之前从输出文件首部跳过N块,默认值为0

count=0 指定拷贝的块数,默认到拷贝到输入文件结束。

注意:数据文件拷贝在数据库OFFILE或者数据库没有OPEN状态下拷贝:

dd精确拷贝:

dd if=/dev/rlv_db_test_1g f=/oracle/test01.dbf bs=4k skip=1 count=512002

dd整个数据文件拷贝:

dd if=/dev/rlv_db_test_1g f=/oracle/test01.dbf bs=4k seek=1

使用RMAN进行备份,必须在MOUNT和OPEN状态下拷贝:

rman>copy '/oracle/oradata/dgdemo/test01.dbf' to '/oracle/test01.dbf'

mysql++裸盘_绑定裸设备(查看裸设备的大小)相关推荐

  1. mysql++裸盘_记一次裸迁 MySQL 经历

    记一次裸迁MySQL经历 前言:博主企业有一台企业阿里云机器,因为安装了云锁,造成服务器动不动就给我所死服务器.(就是那种 chattr +i /bin/bash ,分分钟日死狗 )趁着周末,Boos ...

  2. linux查看mysql用户权限_教您如何查看MySQL用户权限

    教您如何查看MySQL用户权限 如果需要查看MySQL用户权限,应该如何实现呢?下面就为您介绍查看MySQL用户权限的方法,并对授予MySQL用户权限的语句进行介绍,供您参考. 查看MySQL用户权限 ...

  3. cmd验证mysql安装成功_怎么使用cmd查看mysql数据库安装成功?

    你到网上搜那个删除注册表的方法 ,1.控制面板里的增加删除程序内进行删除 2.删除MySQL文件夹下的my.ini文件,如果备份好,可以直接将文件夹全部删除 3.开始->运行-> rege ...

  4. linux命令查看内存数据,Linux 查看内存条数据和大小命令

    查看内存条数据和大小命令: sudo dmidecode | grep -A16 "Memory Device$" 需要root 权限.. [life@localhost mp3b ...

  5. pv vg lv 裸盘 裸设备 文件系统

    之前以为理解的没错,其实随着不断的学习,有了很多新的认识: 裸盘是最初的硬盘,没有做过分区和格式化的,即下图的硬盘. 之前的lvm文档中把制作pv的第一步认为是fdisk格式化,其实pv和格式化并无直 ...

  6. ipc开发之sd卡裸盘存储

    应该很少人在ipc里面用裸盘存储吧,我来试试,先用君正t31来试试,实在是经常有客户说你们的sd卡怎么又坏了??? 坏了只能格式化啊?其实整个盘没有坏,只是只要卡有些什么小坏块之类的,就挂载为只读或者 ...

  7. bluez 设置绑定pin码_「RT-Thread笔记」IO设备模型及PIN设备

    RTT内核对象--设备 RT-Thread有多种内核对象,其中设备device就是其中一种. 内核继承关系图如下: 设备继承关系图如下: device对象对应的结构体如下: 其中,设备类型type有如 ...

  8. MySQL 操作数据表_查看表结构

    查看表结构 对于一个创建成功的数据表,可以使用show columns语句或describe语句查看指定数据表的结构.下面分别对这两个语句进行介绍. 1.使用show columns语句查看 在MyS ...

  9. mysql cnf参数_系统运维|MySQL my.cnf参数配置优化详解

    本配置文件针对Dell R710,双至强E5620.16G内存的硬件配置.CentOS 5.6 64位系统,MySQL 5.5.x 稳定版.适用于日IP 50-100w,PV 100-300w的站点, ...

  10. 裸金属服务器能降级虚拟机不,裸金属服务器属于虚拟机吗

    裸金属服务器属于虚拟机吗 内容精选 换一换 本文介绍了裸金属服务器BMS产品新特性和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验. 不支持直接加载外接硬件设备(如USB设备.银 ...

最新文章

  1. hourglassnet笔记
  2. 登录实现并获取到用户唯一标识
  3. git add * 提示warning: LF will be replaced by CRLF in 解决办法
  4. mjpg-streamer框架分析
  5. VS2005里自定义控件设计时语法
  6. 基于JAVA高校信息资源共享平台计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  7. 建荣蓝牙芯片型号_【蓝牙耳机方案 建荣AX2227 CW6639M蓝牙芯片杰里蓝牙方案 兼容性好选博通或者CSR】价格_厂家 - 中国供应商...
  8. 微信小程序测试自学文档
  9. web漏洞扫描器原理_每周一喂丨用于渗透测试的10种漏洞扫描工具
  10. uniapp 分享缩略图过大怎么办_uniapp 选择并压缩图片
  11. 网聚云联受邀出席5G和边缘计算高峰论坛,与清华研究院达成战略合作
  12. BliBli抢楼全攻略
  13. vscode中backspace按键失效
  14. 设置android模拟器屏幕自动旋转
  15. 【论文笔记】Understanding Software Changes: Extracting, Classifying, and Presenting Fine-Grained Source Co
  16. 优化工具 Neos Server
  17. python外包挺多,但具体什么价位呢,今天我们来采集一下外包网~
  18. Java接口 详解(二)
  19. BBS论坛系统的需求
  20. 幼儿园校园广播系统(IP网络广播)解决方案

热门文章

  1. mysql乐观锁 超卖_秒杀系统之超卖现象
  2. spynet(六):光流整体结构
  3. 《有效的单元测试》第三章
  4. redis管理_Redis 桌面管理工具Redis Desktop Manager
  5. STK开发包用法探讨
  6. weblogic安装与配置注意事项
  7. 视网膜屏幕和高清视网膜屏幕
  8. Flume错误:Flume:Class path contains multiple SLF4J bindings
  9. 水花兄弟又凑齐了(20220111 Week2-1)
  10. KafkaConsumer实现精确的latest(结尾)开始消费