我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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 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)


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Index在Oracle OLTP系统的应用

在Oracle OLTP系统中,索引的应用非常重要,可以提高查询性能和加快数据检索速度。以下是在Oracle OLTP系统中索引的应用:主键索引:用于唯一标识每条记录,在表中只能有一个主键索引。主键索引可以加速对表的唯一标识字段的查询操作。
Index在Oracle OLTP系统的应用
2024-08-16

变量在Oracle批处理中的应用

在Oracle批处理中,变量可以用来存储临时数据或者传递参数。通过使用变量,可以简化SQL语句的编写,并且提高代码的可维护性和重用性。在Oracle中,可以通过DECLARE语句来声明变量,然后通过SELECT INTO语句将查询结果存储
变量在Oracle批处理中的应用
2024-08-24

变量在Oracle循环控制中的应用

在Oracle中,循环控制结构主要用于重复执行一段代码,直到满足特定条件使用FOR循环:DECLAREv_sum NUMBER := 0;BEGINFOR i IN 1..10 LOOPv_sum := v_sum + i;END LOO
变量在Oracle循环控制中的应用
2024-08-28

变量在Oracle作业调度中的应用

在Oracle作业调度中,变量主要用于动态地传递信息或参数到作业中,使得作业能够根据不同的输入执行不同的操作。这提供了极大的灵活性和可配置性。以下是变量在Oracle作业调度中的一些应用:作业参数化:允许在创建作业时指定变量,这些变量可以在
变量在Oracle作业调度中的应用
2024-08-27

变量在Oracle物化视图中的应用

在Oracle中,物化视图主要用于存储预先计算的结果集,以提高查询性能。它们并不直接支持在物化视图的创建或刷新过程中使用变量。不过,可以通过动态SQL或PL/SQL代码来间接实现变量的使用,从而在一定程度上动态地影响物化视图的查询或刷新行为
变量在Oracle物化视图中的应用
2024-08-27

探索Level函数在Oracle中的高级应用

在Oracle数据库中,LEVEL函数是一个伪列(pseudocolumn),它用于查询时生成一个连续的整数序列分层查询:使用LEVEL函数可以实现分层查询,例如查询组织结构、员工层级等。这里有一个简单的例子,展示了如何使用LEVEL函数
探索Level函数在Oracle中的高级应用
2024-09-03

索引在Oracle多租户架构中的应用

在Oracle多租户架构中,索引的应用与传统单租户架构类似,但需要更加注意和灵活应用,以适应多个租户共享数据库资源的特点。以下是索引在Oracle多租户架构中的应用:每个租户使用独立的索引:为了避免不同租户之间的数据混乱和性能下降,每个租户
索引在Oracle多租户架构中的应用
2024-08-16

变量在Oracle分布式数据库中的应用

在Oracle分布式数据库中,变量主要用于存储和操作数据,支持跨分片、跨集群、跨云的数据管理和查询。以下是Oracle分布式数据库中变量的应用:变量在Oracle分布式数据库中的应用全局变量:用于存储全局配置信息,如数据库连接信息,可以在
变量在Oracle分布式数据库中的应用
2024-08-27

探索Oracle Value函数在特定行业的应用

Oracle数据库本身并没有一个直接被称为“Value”的函数。可能您指的是Oracle数据库中用于数据转换或计算的某个具体函数,或者您指的是在其他软件或领域中与“Value”相关的概念。Oracle数据库中的数值函数在Oracle数据
探索Oracle Value函数在特定行业的应用
2024-10-09

变量在Oracle数据库故障转移中的应用

在Oracle数据库故障转移中,变量可以用于存储和传递信息,以便在故障发生时能够快速地进行恢复和转移操作。以下是在Oracle数据库故障转移中变量的一些应用:存储连接信息:可以使用变量来存储数据库连接信息,如用户名、密码、数据库主机名和端口
变量在Oracle数据库故障转移中的应用
2024-08-24

Oracle 闪回技术在数据恢复中的高级应用

Oracle闪回技术是一种强大的数据库恢复和数据审计工具,它允许用户在不恢复整个数据库的情况下,快速回滚数据库中的数据到之前的某个时间点或者某个特定的事务状态。以下是Oracle闪回技术在数据恢复中的高级应用:高级应用误操作恢复:当用户意
Oracle 闪回技术在数据恢复中的高级应用
2024-10-09

Blob和Clob在Oracle中的应用范围及特性比较

Blob 和 Clob 在 Oracle 中都是用来存储大数据类型的字段,但它们在具体的应用范围和特性上有一些不同。本文将详细比较 Blob 和 Clob 的使用方式,并通过具体的代码示例来展示它们的应用。Blob 和 Clob 的定义
Blob和Clob在Oracle中的应用范围及特性比较
2024-03-08

ODBC Oracle连接在数据备份策略优化中的应用

在数据备份策略中,使用ODBC Oracle连接可以帮助实现数据的快速、安全和高效备份。以下是一些通过ODBC Oracle连接优化数据备份策略的方法:使用ODBC连接进行数据备份:通过ODBC连接,可以直接连接到Oracle数据库,并使用
ODBC Oracle连接在数据备份策略优化中的应用
2024-07-16

ODBC Oracle连接在数据备份容灾测试中的应用

在数据备份容灾测试中,ODBC Oracle连接可以帮助实现数据库的备份和恢复操作。通过ODBC连接,用户可以将数据从Oracle数据库备份到另一个存储位置,以确保数据的安全性和完整性。此外,ODBC连接还可以帮助用户在灾难发生时快速恢复数
ODBC Oracle连接在数据备份容灾测试中的应用
2024-07-16

变量在Oracle数据库审计日志分析中的应用

在Oracle数据库审计日志分析中,变量通常用于存储和跟踪审计日志中的各种信息,例如用户操作、SQL语句、时间戳等。通过使用变量,可以方便地对审计日志进行分析和查询,从而监控数据库的活动和检测潜在的安全风险。以下是一些变量在Oracle数
变量在Oracle数据库审计日志分析中的应用
2024-08-23

变量在Oracle数据库自动任务调度中的应用

在Oracle数据库中,可以使用DBMS_SCHEDULER包来创建和管理自动任务调度。这些自动任务可以是存储过程、PL/SQL块、SQL脚本或者任何其他类型的数据库任务。变量在Oracle数据库自动任务调度中的应用主要包括以下几个方面:使
变量在Oracle数据库自动任务调度中的应用
2024-08-23

探究Oracle与Sybase在企业应用中的优势及适用场景

标题:Oracle与Sybase在企业应用中的优势及适用场景探究在企业应用领域,数据库管理系统(DBMS)是至关重要的一环,能够为企业提供高效稳定的数据管理和处理服务。Oracle和Sybase作为两个知名的关系型数据库管理系统,在企业应
探究Oracle与Sybase在企业应用中的优势及适用场景
2024-03-07

编程热搜

目录