Oracle Study--RAW Device在Oracle下的应用

1、 什么是裸设备(RAW DEVICE) 
       裸设备是指未创建文件系统的磁盘分区(raw partition)或逻辑卷(raw logical volume),应用程序直接通过一 
个字符设备驱动程序对它进行访问。如何对设备上的数据读写决定于使用它的应用程序。由于对裸设备的操作不通过UNIX的缓冲区,数据在ORACLE的数据缓冲区(BUFFER CACHE)和磁盘之间直接传递,所以使用裸设备在一定程度上能够提高I/O性能,适合I/O量大的系统。另外OPS/RAC (Oracle Parallel Server/Real Application Cluster)环境下,多个节点同时访问同一个数据库,所以CONTROL FILE、DATA FILE、REDO LOG都必须建在RAW DEVICE上。 
2、裸设备的可用空间
      不同的UNIX对裸设备的管理不完全相同,特别要注意的是某些UNIX在每个裸设备的头部要保留一定的空间,应用程序在使用裸设备时不可以覆盖这一部分,否则会对裸设备造成损坏。所以一个裸设备的实际可用空间是分配给裸设备的空间再减去这部分操作系统保留空间。下面是常用UNIX的OS Reserved Size列表:

UNIX     OS Reserved Size
------------            - ---------------
SUN Solaris          0
HP-UX          0
IBM AIX         4k
Tru64 UNIX       64k
Linux          0

Oracle下redo block size:

SQL> SELECT b.member, b.bytes, b.bytes+512 file_size FROM v$logfile a, v$log b
WHERE a.group#=b.group# and a.member='/oradata/redo01.log ';
MEMBER        BYTES    FILE_SIZE
-------------------- --------  ---------
/oradata/redo01.log  4194304  4194816 下表列出了常用OS上的ORACLE REDO_BLOCK_SIZE:
OS        REDO_BLOCK_SIZE
----------------- ---------------
Windows      512
SUN Solaris    512
HP-UX       1024
IBM AIX      512
Compaq Tru64 UNIX 1024
Linux       512

3、dd命令
    UNIX上读写裸设备不能使用cp, cpio, tar等命令,必须用dd,下面是几个dd常用参数的简单说明,更详细的信息请参考UNIX使用手册或用命令man dd。 
dd [ operand=value ... ] 
if=file 指定输入文件,缺省值是标准输入 
of=file 指定输出文件,缺省值是标准输出 
bs=n 设置输入和输出的块大小为n字节,也可以用“k”作单位 
skip=n 在拷贝之前跳过n个输入块,缺省值是0 
seek=n 在拷贝之前从输出文件首部跳过n块,缺省值是0 
count=n 指定拷贝的块数,缺省拷贝到输入文件结束

4、在raw上创建数据文件可用空间

SQL> CREATE TABLESPACE ts_test DATAFILE '/dev/rlv_data' SIZE 8180k;
SIZE指定的数值必须小于或等于8180k,否则语句将会失败:
ORA-01119: error in creating database file '/dev/rlv_data'
ORA-27042: not enough space on raw partition to fullfill request

这个最大值的计算方法如下: 
8192k(RAW DEVICE SIZE) - 4k (OS_RESERVED_SIZE) - 8k (DB_BLOCK_SIZE) = 8180k 
为什么还要减去一个DB_BLOCK_SIZE呢?这是因为ORACLE建立DATAFILE时,在命令中SIZE指定的大小之外,还要在文件头另加一个BLOCK,叫作“Oracle OS Header Block”,里面保存有这个文件的逻辑块大小和文件块数等信息。这一点并不是在RAW DEVICE上建DATAFILE特有的,如果你在文件系统上建一个DATAFILE,指定SIZE 1000k的话,你用ls -l或dir命令看到的文件大小将是1008k (DB_BLOCK_SIZE=8K)。

案例分析:

查看vg信息:
[oracle@aix211 ~]$lsvg datavg
VOLUME GROUP:       datavg                   VG IDENTIFIER:  00040f8a00004c000000014862af71b0
VG STATE:           active                   PP SIZE:        64 megabyte(s)
VG PERMISSION:      read/write               TOTAL PPs:      480 (30720 megabytes)
MAX LVs:            256                      FREE PPs:       372 (23808 megabytes)
LVs:                19                       USED PPs:       108 (6912 megabytes)
OPEN LVs:           14                       QUORUM:         2 (Enabled)
TOTAL PVs:          1                        VG DESCRIPTORS: 2
STALE PVs:          0                        STALE PPs:      0
ACTIVE PVs:         1                        AUTO ON:        no
Concurrent:         Enhanced-Capable         Auto-Concurrent: Disabled
VG Mode:            Concurrent
Node ID:            -                        Active Nodes:
MAX PPs per VG:     32512
MAX PPs per PV:     1016                     MAX PVs:        32
LTG size (Dynamic): 256 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:          no                       BB POLICY:      relocatable 创建lv大小为128M(2个pp)
[root@aix211 /]#mklv -y 'tbs1'  -t  'raw' datavg 2
tbs1
[root@aix211 /]#lsvg -l datavg
datavg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
tbs1                raw        2       2       1    closed/syncd  N/A修改设备属性
[root@aix211 /]#chown  oracle:dba  /dev/tbs1
[root@aix211 /]#chown  oracle:dba  /dev/rtbs1
[root@aix211 /]#chmod 660 /dev/tbs1
[root@aix211 /]#chmod 660 /dev/rtbs1
[root@aix211 /]#ls -l /dev |grep tbs1
crw-rw----    1 oracle   dba          88, 19 Sep 15 16:55 rtbs1
brw-rw----    1 oracle   dba          88, 19 Sep 15 16:55 tbs1创建表空间tbs1
[oracle@aix211 ~]$ln -s /dev/rtbs1 /u01/app/oracle/oradata/prod/tbs1.dbf[oracle@aix212@ ~]$sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 15 17:44:10 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining optionsSQL> create tablespace tbs12  datafile '/u01/app/oracle/oradata/prod/tbs1.dbf' size 128m;
create tablespace tbs1
*
ERROR at line 1:
ORA-01119: error in creating database file
'/u01/app/oracle/oradata/prod/tbs1.dbf'
ORA-27042: not enough space on raw partition to fullfill request
IBM AIX RISC System/6000 Error: 6: No such device or address
Additional information: 1
Additional information: 1
Additional information: -1由于/dev/rtbs1大小为128m,不能全部用来创建表空间(最少要留有2X8k)

转载于:https://blog.51cto.com/tiany/1552974

Oracle Study--RAW Device在Oracle下的应用相关推荐

  1. oracle与raw device

    oracle与raw device 1.什么叫做裸设备? 裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备.它由应用程序负责对它进行读写操作.不经过文 ...

  2. linux安装oracle 操作系统内核参数 aio,Oracle Study之案例--安装Oracle内核参数配置

    Oracle Study之案例--安装Oracle内核参数配置 在Linux系统下,安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其中最主要的是和内 ...

  3. oracle raw如何生成,如何使用raw device构建Oracle数据库

    来源: 赛迪网 作者: 若水 2008-04-12/09:44 1.分区 Device Boot Start End Blocks Id System /dev/sde1 1 63 506016 83 ...

  4. c oracle long raw,初次用Oracle,不会用Long Raw类型,请大家帮忙看看

    在存储过程中想传入一个二进制数组,保存到Oracle中的blob字段中 程序出现下面错误: ORA-01460: 未实现或无理的转换请求 Description: An unhandled excep ...

  5. php调用airtestide,raw device

    about raw device?以下是关于linux下安装oracle的raw device的,大家看看! FAQ Details Q:  1. What is a raw device? A:Ra ...

  6. linux 下oracle基于raw扩充表空间步骤

    数据中基于RAW格式的表空间扩容.以下是详细步骤: 查看已有裸设备<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com: ...

  7. linux下ORACLE之RAW创建

    1.磁盘分区,建立13个分区,分别对应ORACLE13个文件 fdisk /dev/sdc 2. 编辑60.raw,rules文件 #vi /etc/udev/rules.d/60-raw.rules ...

  8. oracle 测试库搭建,Oracle Study之--通过RMAN克隆测试库

    Oracle Study之--通过RMAN克隆测试库 通过使用数据库备份,DBA可以在同一服务器或其它服务器上建立副本数据库.这个副本数据库可以和主数据库有相同的名称(拷贝)或与主数据库名称不同(克隆 ...

  9. oracle udev 多路径,Suse 11下多路径及udev配置

    最近给客户基于SuSe 11 SP3下多路径部署Oracle 10g RAC.SuSe 11下用10g,也算一朵奇葩,连篇文档都比较难找,谁叫Oracle太贵呢.下面主要是描述了在该环境下如何去配置多 ...

最新文章

  1. Mybatis入门:1(Mybatis框架的环境搭建)
  2. 【模拟】签订协议(nowcoder 217601)
  3. Java多线程学习二十五:阻塞和非阻塞队列的并发安全原理||如何选择适合自己的阻塞队列?
  4. 04:输出保留3位小数的浮点数
  5. hadoop eclipse插件
  6. java接口压力测试
  7. Java获取照片EXIF信息
  8. JavaScript 进阶知识 - 特效篇(一)
  9. 第八十六章 Caché 函数大全 $ZDATETIMEH 函数
  10. 开关电源-半桥LLC控制
  11. 采用拉丁超立方采样的电力系统概率潮流计算 拉丁超立方采样属于分层采样,是一种有效的用采样值反映随机变量的整体分布的方法
  12. python之中文符号转英文符号
  13. PTA 7-192 浪漫的表白
  14. 华为云服务权限在哪_华为云数据湖探索服务DLI,精细化保障企业大数据安全
  15. 使用VirtualBox安装Linux虚拟机,避坑指南
  16. 第一行代码-android-第三版-pdf扫描-思维导图-课件-源码
  17. c语言扫雷游戏计时功能_做游戏,学编程(C语言) 20 扫雷
  18. 大数据分析与数据分析的根本区别在哪里
  19. Word双语按行排版
  20. 如何在不清空原有配置的情况下恢复路由器密码?巨强!

热门文章

  1. 美国科学家成功恢复老年人工作记忆,望奠定认知干预疗法基础
  2. Yann LeCun、吴恩达的新年AI预测:强调“少样本学习”,AI恐慌在减少
  3. 杂谈 | 微软复兴,它与苹果竟有这么多相似之处!
  4. 深度干货!值得精读的2018自动驾驶行业发展报告
  5. 智能零售来了!Amazon Go无人商店周一正式对公众开放
  6. 比尔·盖茨:我对投资比特币没有兴趣
  7. 什么工作,未来可以走创业路线?
  8. 漫画:设计模式之 “外观模式”
  9. 01背包和完全背包问题
  10. 第二十四章:页面导航(六)