LVM(Logical Volume Manager(逻辑卷管理))是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。
本文不创建文件系统,直接在裸设备上创建数据库。
关于LVM原理的教程很多,大家可以参考一下百度文库的《LVM原理》,这里不再赘述。
为了完成本实验,在系统中增加了两块硬盘(没有进行分区和格式化):/dev/sde /dev/sdf
- [root@myhost ~]# df -h /dev/sde
-
Filesystem 容量 已用 可用 已用% 挂载点
-
- 252M 200K 252M 1% /dev
-
[root@myhost ~]# df -h /dev/sdf
-
Filesystem 容量 已用 可用 已用% 挂载点
-
- 252M 200K 252M 1% /dev
#用fdisk工具对磁盘进行分区,只需要注意分区类型选择8e,即LVM。且为了方便,我们每个盘都只有一个分区就可以了。
分区后结果如下: - [root@myhost ~]# fdisk -l /dev/sde
- Disk /dev/sde: 10.7 GB, 10737418240 bytes
- 255 heads, 63 sectors/track, 1305 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
- /dev/sde1 1 1305 10482381 8e Linux LVM
- [root@myhost ~]# fdisk -l /dev/sdf
- Disk /dev/sdf: 10.7 GB, 10737418240 bytes
- 255 heads, 63 sectors/track, 1305 cylinders
- Units = cylinders of 16065 * 512 = 8225280 bytes
- Device Boot Start End Blocks Id System
-
/dev/sdf1 1 1305 10482381 8e Linux LVM
#创建物理卷
- [root@myhost ~]# pvcreate /dev/sde1 /dev/sdf1
-
/dev/cdrom: open failed: 只读文件系统
-
Attempt to close device '/dev/cdrom' which is not open.
-
Physical volume "/dev/sde1" successfully created
-
Physical volume "/dev/sdf1" successfully created
#创建卷组
- [root@myhost ~]# vgcreate oradata /dev/sde1 /dev/sdf1
-
Volume group "oradata" successfully created
#激活卷组 vgchange –a n oradata 为取消激活
- [root@myhost ~]# vgchange -a y oradata
-
0 logical volume(s) in volume group "oradata" now active
#创建逻辑卷。
- [root@myhost ~]# lvcreate -L 60M -n control03 oradata
-
Logical volume "control03" created
-
……
-
[root@myhost ~]# lvscan
-
ACTIVE '/dev/oradata/system01' [600.00 MB] inherit
-
ACTIVE '/dev/oradata/undotbs1' [600.00 MB] inherit
-
ACTIVE '/dev/oradata/temp' [600.00 MB] inherit
-
ACTIVE '/dev/oradata/users' [600.00 MB] inherit
-
ACTIVE '/dev/oradata/spfile' [12.00 MB] inherit
-
ACTIVE '/dev/oradata/redo01' [12.00 MB] inherit
-
ACTIVE '/dev/oradata/redo02' [60.00 MB] inherit
-
ACTIVE '/dev/oradata/sysaux' [600.00 MB] inherit
-
ACTIVE '/dev/oradata/control01' [60.00 MB] inherit
-
ACTIVE '/dev/oradata/control02' [60.00 MB] inherit
-
ACTIVE '/dev/oradata/control03' [60.00 MB] inherit
#创建Oracle 裸设备文件
我们直接创建的裸设备,在下次启动以后会失效,所以我们直接将这些配置增加到系统配置文件。
- [root@localhost oracle]#vi /etc/sysconfig/rawdevices
-
-
添加以下内容到/etc/sysconfig/rawdevices
-
-
/dev/raw/raw1 /dev/oradata/system
-
/dev/raw/raw2 /dev/oradata/sysaux
-
/dev/raw/raw3 /dev/oradata/temp
-
/dev/raw/raw4 /dev/oradata/undotbs
-
/dev/raw/raw5 /dev/oradata/redoa1
-
/dev/raw/raw6 /dev/oradata/redoa2
-
/dev/raw/raw7 /dev/oradata/redoa3
-
/dev/raw/raw8 /dev/oradata/control01
-
/dev/raw/raw9 /dev/oradata/control02
-
/dev/raw/raw10 /dev/oradata/control03
执行 /etc/init.d/rawdevices restart 使配置文件中的裸设备生效.
执行 /sbin/chkconfig rawdevices on 保证机器启动的时候裸设备能够加载。 #将裸设备授权给oracle 用户,更改裸设备的属主
修改/etc/udev/permissions.d/50-udev.permissions文件 将/etc/udev/permissions.d/50-udev.permissions的113行 从 raw/*:root:disk:0660 修改为 raw/*:oracle:oinstall:0660
这个的意思是修改裸设备的默认属主为oracle:oinstall,默认的mode是0660
这样在每次重启创建裸设备的时候,默认的属主就为oracle:oinstall。 #刷新裸设备(这样系统在下次启动时,会重新建立需要的raw设备名)
[root@myhost raw]# start_udev启动 udev: [ 确定 ][root@myhost raw]#init 6 重启系统,查看裸设备是否存在。
- [root@myhost oradata]# raw -a
-
/dev/raw/raw1: bound to major 253, minor 8
-
/dev/raw/raw2: bound to major 253, minor 9
-
/dev/raw/raw3: bound to major 253, minor 10
-
/dev/raw/raw4: bound to major 253, minor 5
-
/dev/raw/raw5: bound to major 253, minor 6
-
/dev/raw/raw6: bound to major 253, minor 0
-
/dev/raw/raw7: bound to major 253, minor 7
-
/dev/raw/raw8: bound to major 253, minor 1
-
/dev/raw/raw9: bound to major 253, minor 2
-
/dev/raw/raw10: bound to major 253, minor 3
-
/dev/raw/raw11: bound to major 253, minor 4
到这里,我们已经创建了安装数据库所需裸设备文件。 |