在UNIX裸设备与文件系统间移动Oracle

第五阅读网 FiveRead.com  2008年04月04日  赛迪网 Jonas

  一、裸设备的相关问题

  

  1.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上。

  

  1.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

  

  1.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 指定拷贝的块数,缺省拷贝到输入文件结束

  

  1.4 本文中相关示例的说明

  

  a. 所有例子中ORACLE的DB_BLOCK_SIZE都是8k

  

  b. /oradata是一文件系统目录

  

  c. /dev/rlv_data,/dev/rlv_redo和/dev/rlv_ctrl是三个RAW DEVICE,大小均为8MB(8192k)

  

  d. 在未提到操作系统时,默认是AIX,OS_RESERVED_SIZE=4K

文章评论

发表您的评论 查看完整内容