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

本文涉及的产品
可视分析地图(DataV-Atlas),3 个项目,100M 存储空间
简介:

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列表: 

1
2
3
4
5
6
7
UNIX     OS Reserved Size 
------------            - --------------- 
SUN Solaris           0 
HP-UX           0 
IBM AIX         4k 
Tru64 UNIX       64k 
Linux           0

Oracle下redo block size:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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上创建数据文件可用空间

1
2
3
4
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)。 

案例分析:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
查看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 options
 
SQL> create tablespace tbs1
   2   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)









本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1552974,如需转载请自行联系原作者
相关实践学习
DataV Board用户界面概览
本实验带领用户熟悉DataV Board这款可视化产品的用户界面
阿里云实时数仓实战 - 项目介绍及架构设计
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3 )前置知识要求   课程大纲 第一章 了解数据仓库概念 初步了解数据仓库是干什么的 第二章 按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章 数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章 采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章 用户行为数据仓库 严格按照企业的标准开发 第六章 搭建业务数仓理论基础和对表的分类同步 第七章 业务数仓的搭建  业务行为数仓效果图  
目录
相关文章
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
185 64
|
5月前
|
存储 Oracle 关系型数据库
关系型数据库Oracle应用场景
【7月更文挑战第5天】
158 3
|
2月前
|
SQL 存储 Oracle
Oracle数据库SQL语句详解与应用指南
在数字化时代,数据库已成为各类企业和组织不可或缺的核心组件。Oracle数据库作为业界领先的数据库管理系统之一,广泛应用于各种业务场景。掌握Oracle数据库的SQL语句是数据库管理员、开发人员及运维人员的基本技能。本文将详细介绍Oracle数据库SQL语句的基本概念、语法、应用及最佳实践。一、Or
72 3
|
5月前
|
Oracle 关系型数据库 数据处理
|
5月前
|
人工智能 Oracle 关系型数据库
Oracle数据库在哪些新兴领域有应用?
【7月更文挑战第21天】Oracle数据库在哪些新兴领域有应用?
131 1
|
7月前
|
SQL Oracle 关系型数据库
|
7月前
|
Oracle 关系型数据库 Shell
oracle的基本应用,持续完善中...
oracle的基本应用,持续完善中...
|
7月前
|
SQL Oracle 关系型数据库
oracle中wm_conocat()函数的应用
oracle中wm_conocat()函数的应用
73 1
|
7月前
|
SQL Oracle 关系型数据库
Oracle PL/SQL基础知识及应用案例
Oracle PL/SQL基础知识及应用案例
126 0
|
Oracle 关系型数据库 Java
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例
分享一个 Oracle RAC 模式下客户端建立JDBC初始连接时因ONS造成应用启动时卡顿30秒问题的排查分析案例

推荐镜像

更多