千家信息网

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

发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,Oracle Study--RAW Device在Oracle下的应用1、 什么是裸设备(RAW DEVICE) 裸设备是指未创建文件系统的磁盘分区(raw partition)或逻辑卷(raw lo
千家信息网最后更新 2025年01月21日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 datavgVOLUME GROUP:       datavg                   VG IDENTIFIER:  00040f8a00004c000000014862af71b0VG 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: 2STALE PVs:          0                        STALE PPs:      0ACTIVE PVs:         1                        AUTO ON:        noConcurrent:         Enhanced-Capable         Auto-Concurrent: DisabledVG Mode:            Concurrent                               Node ID:            -                        Active Nodes:    MAX PPs per VG:     32512                                     MAX PPs per PV:     1016                     MAX PVs:        32LTG size (Dynamic): 256 kilobyte(s)          AUTO SYNC:      noHOT SPARE:          no                       BB POLICY:      relocatable 创建lv大小为128M(2个pp)[root@aix211 /]#mklv -y 'tbs1'  -t  'raw' datavg 2 tbs1[root@aix211 /]#lsvg -l datavgdatavg:LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINTtbs1                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 tbs1crw-rw----    1 oracle   dba          88, 19 Sep 15 16:55 rtbs1brw-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 2014Copyright (c) 1982, 2005, Oracle.  All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit ProductionWith the Partitioning, Real Application Clusters, OLAP and Data Mining optionsSQL> 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 requestIBM AIX RISC System/6000 Error: 6: No such device or addressAdditional information: 1Additional information: 1Additional information: -1由于/dev/rtbs1大小为128m,不能全部用来创建表空间(最少要留有2X8k)


设备 文件 空间 大小 命令 数据 输入 应用 拷贝 程序 系统 输出 信息 常用 应用程序 标准 磁盘 缓冲区 逻辑 缓冲 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 众维网络技术有限公司怎么样 备份数据库读取失败函数不正确 csgo一直搜索玩家服务器 安徽吾爱网络技术有限公司 正规学习软件开发培训 朝阳区自动软件开发规定 监控管理服务器 转发上墙 建邺区网络技术服务经验丰富 网络安全验收 技术规范书 打造网络安全防护 王思聪个人服务器 dayz怎么退出原来的服务器 服务器回收固态硬盘 最新网络安全法共七章 斑马网络技术有限公司阿里 集群数据库需要开启哪些防火墙 天融信网络安全培训认证 网络安全知识简单又好看的手抄报 软件开发前端代码 4级数据库工程师 河北工业软件开发代理价格 正规戴尔服务器高质量的选择 875数据库考研资料 手机网络安全使用手抄报 秒懂百科之网络安全 优盘重启后数据库恢复 怎么获取数据库的url mysql数据库分类查询 进行加密通讯的网络技术 济南黑马网络技术公司怎么样
0