Red Hat 4上设置裸设备

在Linux上安装oracle常常会碰到须要使用裸设备的状况,这里就介绍一下Red Hat 4上设置裸设备的方法。
这份文档是在安装好oracle软件的基础上安装的,安装的时候要选择只安装oracle软件。

接下来就是基于裸设备新建数据库了。。。

1.增长一块硬盘,以root登录OS
[root@rac1 oracle]# fdisk -l
Disk /dev/sda: 255 heads, 63 sectors, 652 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 38 200812+ 82 Linux swap
/dev/sda3 39 652 4931955 83 Linux
Disk /dev/sdh: 128 heads, 32 sectors, 512 cylinders
Units = cylinders of 4096 * 512 bytes
Disk /dev/sdh doesn't contain a valid partition table
2.对Disk /dev/sdh分区成LVM格式(8e的分区类型)
Disk /dev/sdh: 128 heads, 32 sectors, 512 cylinders
Units = cylinders of 4096 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sdh1 1 512 1048560 8e Linux LVM
3.建立物理卷,逻辑卷(组)
执行以下shell:
pvcreate /dev/sdh1
vgcreate oravg /dev/sdh1
lvcreate -L10M    -nlv_spfile oravg

lvcreate -L100M  -nlv_control1 oravg
lvcreate -L100M  -nlv_control2 oravg
lvcreate -L100M  -nlv_control3 oravg

lvcreate -L50M   -nlv_redo1_1 oravg
lvcreate -L50M   -nlv_redo1_2 oravg
lvcreate -L50M   -nlv_redo1_3 oravg

lvcreate -L700M   -nlv_system01 oravg
lvcreate -L700M   -nlv_sysaux01 oravg
lvcreate -L620M   -nlv_undotbs01 oravg
lvcreate -L620M   -nlv_users01 oravg
lvcreate -L500M   -nlv_temp01 oravg

lvcreate -L200M   -nlv_example01 oravg

==================================
其余须要的表空间也要分配相应的空间
lvcreate -L120M   -nlv_tools oravg
lvcreate -L120M   -nlv_indx oravg

vgchange -a y

[root@rac1 oracle]# lvscan
 ACTIVE            '/dev/oravg/lv_spfile' [12.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_control1' [100.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_control2' [100.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_control3' [100.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_redo1_1' [52.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_redo1_2' [52.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_redo1_3' [52.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_system01' [700.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_sysaux01' [700.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_undotbs01' [620.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_users01' [620.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_temp01' [500.00 MB] inherit
  ACTIVE            '/dev/oravg/lv_example01' [200.00 MB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol00' [17.94 GB] inherit
  ACTIVE            '/dev/VolGroup00/LogVol01' [1.94 GB] inherit


4.绑定到裸设备上
执行以下shell
raw /dev/raw/raw1 /dev/oravg/lv_spfile
raw /dev/raw/raw2 /dev/oravg/lv_control1
raw /dev/raw/raw3 /dev/oravg/lv_control2
raw /dev/raw/raw4 /dev/oravg/lv_control3
raw /dev/raw/raw5 /dev/oravg/lv_redo1_1
raw /dev/raw/raw6 /dev/oravg/lv_redo1_2
raw /dev/raw/raw7 /dev/oravg/lv_redo1_3
raw /dev/raw/raw8 /dev/oravg/lv_system01
raw /dev/raw/raw9 /dev/oravg/lv_temp01
raw /dev/raw/raw10 /dev/oravg/lv_users01
raw /dev/raw/raw11 /dev/oravg/lv_undotbs01
raw /dev/raw/raw12 /dev/oravg/lv_sysaux01
raw /dev/raw/raw13 /dev/oravg/lv_example01
raw –qa
5.修改/etc/sysconfig/rawdevices文件以下,以开机时自动加载裸设备
(注意:Red Hat 5已经没有rawdevices服务,须要将raw /dev/raw/raw13 /dev/oravg/lv_example01等命令放入/etc/rc.local在开机时执行一遍)

/dev/raw/raw1 /dev/oravg/lv_spfile
/dev/raw/raw2 /dev/oravg/lv_control1
/dev/raw/raw3 /dev/oravg/lv_control2
/dev/raw/raw4 /dev/oravg/lv_control3
/dev/raw/raw5 /dev/oravg/lv_redo1_1
/dev/raw/raw6 /dev/oravg/lv_redo1_2
/dev/raw/raw7 /dev/oravg/lv_redo1_3
/dev/raw/raw8 /dev/oravg/lv_system01
/dev/raw/raw9 /dev/oravg/lv_temp01
/dev/raw/raw10 /dev/oravg/lv_users01
/dev/raw/raw11 /dev/oravg/lv_undotbs01
/dev/raw/raw12 /dev/oravg/lv_sysaux01
/dev/raw/raw13 /dev/oravg/lv_example01
6.将卷组及设备属主(也须要加入启动文件/etc/rc.local)
chown oracle:oinstall /dev/oravg
chown oracle:oinstall /dev/raw/*
chmod +xwr /dev/raw/*
chmod +xrw /dev/raw/
vgchange -a y                       ----启动时自动激活全部卷组

7.建立裸设备映射文件DBCA_RAW_CONFIG.txt并加入环境变量以下:
spfile=/dev/raw/raw1
control1=/dev/raw/raw2
control2=/dev/raw/raw3
control3=/dev/raw/raw4
redo1_1=/dev/raw/raw5
redo1_2=/dev/raw/raw6
redo1_3=/dev/raw/raw7
system=/dev/raw/raw8
temp=/dev/raw/raw9
users=/dev/raw/raw10
undotbs1=/dev/raw/raw11
example=/dev/raw/raw13
sysaux=/dev/raw/raw12

export DBCA_RAW_CONFIG=/home/oracle/DBCA_RAW_CONFIG.txt
export LANG=zh_CN

8.运行DBCA建立数据库(注意选择裸设备建立数据库及数据文件略小于裸设备定义大小)

9.将vgchange -a y加到/etc/rc.local中,启动时自动激活全部卷组


10.扩大数据文件大小

a)扩大逻辑卷
lvextend -L100M /dev/oravg/lv_undo

b)扩大数据文件
SQL> alter database datafile '/dev/raw/raw11' resize 90m;

总结:

我基本上是参照这份文档来完成安装的,可是在安装的过程当中也遇到了几个问题:

一、绑定裸设备的问题:

文中使用将绑定裸设备命令写入开机启动文件,实际上除了使用命令绑定以后,还能够经过服务绑定,也即在/etc/sysconfig/rawdevices中绑定,并经过启动绑定服务实现servcie rawdevices start,经过服务绑定的好处在于能够一次启动终身绑定。呵呵。

二、软连接

许多文档都把这个做为可选,实际上应该是必选内容。

否则面对一个个裸设备,哪晓得这些裸设备对应的都是些什么存储内容?

而关于创建软连接,方式有所不一样,有取名为*.dbf的(汗,这块我当时也闹不明白是要干吗,觉得非得这么起别名,以为这么起名字也没以为有多方便),最后无奈求助才明白怎么回事,呵呵。

三、DBCA_RAW_CONFIG环境变量

在网上找到了相关说明,说是要配置该变量并出现选择使用裸设备仍是文件系统格式建立数据库的对话框才算OK,为了这个,我也折腾了一些时间。结果我仍困惑于DBCA_RAW_CONFIG.txt文件所说的映射,在个人观念里以为既然创建了软连接,而且在这个文本文件里有显示(至关于mapping效果),结果在出现了上面说的对话框后,全部的文件地址都是裸设备(又费劲了老半天,觉得哪出错了),当时没管这些了,直接手动给改了(这要不是有老手,还想不到要这么个弄法)。最后在后边搭建rac的时候才发现mapping是有效果的,只要不给export DBCA_RAW_CONFIG,固然就出现不了上面的选择对话框,但“奇妙”的是文本文件中的mapping实现了,全部的以前裸设备在的位置都给映射成相应的软连接名字了 。