六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 86|回复: 0

linux创建lvm裸设备 安装 oracle

[复制链接]

升级  48%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
24
 楼主| 发表于 2013-1-15 08:07:59 | 显示全部楼层 |阅读模式
引用http://bluewind.oracle.com.cn/viewthread.php?tid=156445&extra=page%3D3下面是在虚拟机上添加一块新硬盘,并创建lvm裸设备给oracle使用的过程,和大家一起学习,有不正确的地方希望指导,谢谢。linux系统是 AS4 update 7实验前,先了解一些基本概念,如下:LVM(Logicl Volume Manager),逻辑卷管理器,通过使用逻辑卷管理器对硬盘存储设备进行管理,可以实现硬盘空间的动态划分和调整。一、 基本概念1、 物理卷-----PV(Physical Volume)物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘。2、 卷组--------VG(Volumne Group)卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。3、 逻辑卷-----LV(Logical Volume)逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。4、 物理区域--PE(Physical Extent)物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。5、 逻辑区域—LE(Logical Extent)逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。6、 卷组描述区域-----(Volume Group Descriptor Area)卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。二、实战操作1.在虚拟机上添加一块硬盘,进入系统创建分区[root@rles ~]# fdisk -l  --查看现在有分区Disk /dev/hda: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes   Device Boot      Start         End      Blocks   Id  System/dev/hda1   *           1        1912    15358108+  83  Linux/dev/hda2            1913        2173     2096482+  82  Linux swap/dev/hda3            2174        2610     3510202+  83  LinuxDisk /dev/hdb: 2147 MB, 2147483648 bytes                --可以看到这个设备还没有分区16 heads, 63 sectors/track, 4161 cylindersUnits = cylinders of 1008 * 512 = 516096 bytesDisk /dev/hdb doesn't contain a valid partition table[root@rles ~]# df -hFilesystem            Size  Used Avail Use% Mounted on/dev/hda1              15G  7.5G  6.3G  55% /none                  553M     0  553M   0% /dev/shm/dev/hda3             3.3G   98M  3.1G   4% /tmp[root@rles ~]# [root@rles ~]# [root@rles ~]# [root@rles ~]# fdisk /dev/hdb                --为设备分区,下面是分区的过程Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel. Changes will remain in memory only,until you decide to write them. After that, of course, the previouscontent won't be recoverable.The number of cylinders for this disk is set to 4161.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs   (e.g., DOS FDISK, OS/2 FDISK)Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)Command (m for help): mCommand action   a   toggle a bootable flag   b   edit bsd disklabel   c   toggle the dos compatibility flag   d   delete a partition   l   list known partition types   m   print this menu   n   add a new partition   o   create a new empty DOS partition table   p   print the partition table   q   quit without saving changes   s   create a new empty Sun disklabel   t   change a partition's system id   u   change display/entry units   v   verify the partition table   w   write table to disk and exit   x   extra functionality (experts only)Command (m for help): l                -输入字母L查看分区类型0  Empty           1e  Hidden W95 FAT1 75  PC/IX           be  Solaris boot   1  FAT12           24  NEC DOS         80  Old Minix       bf  Solaris        2  XENIX root      39  Plan 9          81  Minix / old Lin c1  DRDOS/sec (FAT-3  XENIX usr       3c  PartitionMagic  82  Linux swap      c4  DRDOS/sec (FAT-4  FAT16 <32M      40  Venix 80286     83  Linux           c6  DRDOS/sec (FAT-5  Extended        41  PPC PReP Boot   84  OS/2 hidden C:  c7  Syrinx         6  FAT16           42  SFS             85  Linux extended  da  Non-FS data    7  HPFS/NTFS       4d  QNX4.x          86  NTFS volume set db  CP/M / CTOS / .8  AIX             4e  QNX4.x 2nd part 87  NTFS volume set de  Dell Utility   9  AIX bootable    4f  QNX4.x 3rd part 8e  Linux LVM       df  BootIt         a  OS/2 Boot Manag 50  OnTrack DM      93  Amoeba          e1  DOS access     b  W95 FAT32       51  OnTrack DM6 Aux 94  Amoeba BBT      e3  DOS R/O        c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor      e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a0  IBM Thinkpad hi eb  BeOS fs        f  W95 Ext'd (LBA) 54  OnTrackDM6      a5  FreeBSD         ee  EFI GPT        10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/11  Hidden FAT12    56  Golden Bow      a7  NeXTSTEP        f0  Linux/PA-RISC b12  Compaq diagnost 5c  Priam Edisk     a8  Darwin UFS      f1  SpeedStor      14  Hidden FAT16 <3 61  SpeedStor       a9  NetBSD          f4  SpeedStor      16  Hidden FAT16    63  GNU HURD or Sys ab  Darwin boot     f2  DOS secondary  17  Hidden HPFS/NTF 64  Novell Netware  b7  BSDI fs         fd  Linux raid auto18  AST SmartSleep  65  Novell Netware  b8  BSDI swap       fe  LANstep        1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid ff  BBT            1c  Hidden W95 FAT3Command (m for help): nCommand action   e   extended   p   primary partition (1-4)                --这里让输入主分区或者扩展分区,我输入p,表示主分区pPartition number (1-4): 4First cylinder (1-4161, default 1):                 --第几个主分区,这里应该输入1,不过测试也没关系Using default value 1Last cylinder or +size or +sizeM or +sizeK (1-4161, default 4161): Using default value 4161Command (m for help): w                        --这里输入w表示write table to disk and exitThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.2.查看系统信息,并创建pv[root@rles ~]# fdisk -lDisk /dev/hda: 21.4 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes   Device Boot      Start         End      Blocks   Id  System/dev/hda1   *           1        1912    15358108+  83  Linux/dev/hda2            1913        2173     2096482+  82  Linux swap/dev/hda3            2174        2610     3510202+  83  LinuxDisk /dev/hdb: 2147 MB, 2147483648 bytes16 heads, 63 sectors/track, 4161 cylindersUnits = cylinders of 1008 * 512 = 516096 bytes   Device Boot      Start         End      Blocks   Id  System/dev/hdb4               1        4161     2097112+  83  Linux[root@rles ~]# pvcreate /dev/hdb4    --创建pv  Physical volume "/dev/hdb4" successfully created[root@rles ~]# pvdisplay /dev/hdb4    --查看pv信息  "/dev/hdb4" is a new physical volume of "2.00 GB"  --- NEW Physical volume ---  PV Name               /dev/hdb4  VG Name                 PV Size               2.00 GB  Allocatable           NO  PE Size (KByte)       0  Total PE              0  Free PE               0  Allocated PE          0  PV UUID               SPLedg-E05Q-nmXf-kwz9-Wbd9-Ci0a-0gwliT   [root@rles ~]# ls -l /dev/hdb4brw-rw----  1 root disk 3, 68 Jun  5 20:48 /dev/hdb43.创建vg[root@rles ~]# vgcreate oradata /dev/hdb4  Volume group "oradata" successfully created[root@rles ~]# ls -l /dev/hdb4           brw-rw----  1 root disk 3, 68 Jun  5 20:48 /dev/hdb4[root@rles ~]# 4.创建lv[root@rles ~]# lvcreate -n system01 -L 2040M oradata  Logical volume "system01" created[root@rles ~]# ls -l /dev/hdb4brw-rw----  1 root disk 3, 68 Jun  5 20:48 /dev/hdb4[root@rles ~]# ls -l /dev/oradata/total 0lrwxrwxrwx  1 root root 28 Jun  5 22:54 system01 -> /dev/mapper/oradata-system01[root@rles ~]# [root@rles ~]# lvremove /dev/oradata/system01   --删除lvDo you really want to remove active logical volume "system01"? [y/n]: y  Logical volume "system01" successfully removed[root@rles ~]# [root@rles ~]# ls -l /dev/oradata/            ls: /dev/oradata/: No such file or directory[root@rles ~]# lvcreate -n system01 -L 2040M oradata  Logical volume "system01" created[root@rles ~]# ls -l /dev/oradata/                  total 0lrwxrwxrwx  1 root root 28 Jun  5 22:55 system01 -> /dev/mapper/oradata-system01[root@rles ~]# [root@rles ~]# 5.绑定裸设备[root@rles oradata]# raw /dev/raw/raw1 /dev/mapper/oradata-system01 --注意,之前是没有/dev/raw目录的,执行后会自动创建/dev/raw/raw1:  bound to major 253, minor 0[root@rles oradata]# [root@rles oradata]# ls -l /oradata/total 4drwxr-xr-x  2 root root 4096 Jun  5 23:21 system01[root@rles oradata]# raw -qa  --查询裸设备/dev/raw/raw1:  bound to major 253, minor 06.为了保证重启后,可以挂载裸设备,修改下面文件,添加内容[root@rles oradata]# cat /etc/sysconfig/rawdevices # This file and interface are deprecated.# Applications needing raw device access should open regular# block devices with O_DIRECT.# raw device bindings# format:  <rawdev> <major> <minor>#          <rawdev> <blockdev># example: /dev/raw/raw1 /dev/sda1#          /dev/raw/raw2 8 5/dev/raw/raw1 /dev/mapper/oradata-system017.重启裸设备服务,验证是否能挂载[root@rles oradata]# /etc/init.d/rawdevices restart  --重启裸设备服务Assigning devices:            /dev/raw/raw1  -->   /dev/mapper/oradata-system01/dev/raw/raw1:  bound to major 253, minor 0done[root@rles oradata]# [root@rles oradata]# ls -l /dev/mapper/total 0crw-------  1 root root  10, 63 Jun  5 23:24 controlbrw-rw----  1 root disk 253,  0 Jun  5 23:24 oradata-system01[root@rles oradata]# 8.切换到oracle用户,测试在是否能在裸设备上创建表空间[root@rles oradata]# su - oracle[oracle@rles ~]$ sqlplus '/as sysdba'SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 5 23:41:39 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area  159383552 bytesFixed Size                  1218268 bytesVariable Size             142608676 bytesDatabase Buffers           12582912 bytesRedo Buffers                2973696 bytesDatabase mounted.Database opened.SQL> set linesize 121SQL> select * from v$tablespace;       TS# NAME                           INC BIG FLA ENC---------- ------------------------------ --- --- --- ---         0 SYSTEM                         YES NO  YES        11 UNDOTBS01                      YES NO  YES         2 SYSAUX                         YES NO  YES         4 USERS                          YES NO  YES         6 EXAMPLE                        YES NO  YES        19 DEMO                           YES NO  YES         8 STATSPACK                      YES NO  YES         3 TEMP                           NO  NO  YES        25 TESTING_LMT_ASSM               YES NO  YES         9 TEST                           YES NO  YES        27 TEST_UNIFORM                   YES NO  YES11 rows selected.SQL> create tablespace raw datafile '/dev/mapper/oradata-system01';                --这里看来不能用这个名字create tablespace raw datafile '/dev/mapper/oradata-system01'                  *ERROR at line 1:ORA-02216: tablespace name expectedSQL> create tablespace raw_test datafile '/dev/mapper/oradata-system01';  --这里报错可以看到是权限不足,下面我们修改权限create tablespace raw_test datafile '/dev/mapper/oradata-system01'*ERROR at line 1:ORA-01119: error in creating database file '/dev/mapper/oradata-system01'ORA-27041: unable to open fileLinux Error: 13: Permission deniedAdditional information: 1SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options[oracle@rles ~]$ exitlogout[root@rles oradata]#9.给新创建的裸设备增加权限,以使oracle能使用[root@rles oradata]# cd /dev/mapper/[root@rles mapper]# ls -ltotal 0crw-------  1 root root  10, 63 Jun  5 23:24 controlbrw-rw----  1 root disk 253,  0 Jun  5 23:24 oradata-system01[root@rles mapper]# ls -l /dev/rawtotal 0crw-rw----  1 root disk 162, 1 Jun  5 23:34 raw1[root@rles mapper]# chown -R oracle:oinstall /dev/mapper/oradata-system01 [root@rles mapper]# ls -ltotal 0crw-------  1 root   root      10, 63 Jun  5 23:24 controlbrw-rw----  1 oracle oinstall 253,  0 Jun  5 23:24 oradata-system01[root@rles mapper]# ls -l /dev/rawtotal 0crw-rw----  1 root disk 162, 1 Jun  5 23:34 raw1[root@rles mapper]# [root@rles mapper]# su - oracle[oracle@rles ~]$ sqlplus '/as sysdba'SQL*Plus: Release 10.2.0.1.0 - Production on Sat Jun 5 23:48:50 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> set linesize 121SQL> create tablespace raw_test datafile '/dev/mapper/oradata-system01';  --有了权限后,可以创建了Tablespace created.SQL> SQL> col file_name format a50SQL> col tablespace_name format a15SQL> select file_name,tablespace_name,bytes/1024/1024 "TBS_Size" from dba_data_files where tablespace_name='RAW_TEST';FILE_NAME                                          TABLESPACE_NAME   TBS_Size-------------------------------------------------- --------------- ----------/dev/mapper/oradata-system01                       RAW_TEST        2039.99219SQL> SQL> select * from v$tablespace;       TS# NAME                           INC BIG FLA ENC---------- ------------------------------ --- --- --- ---         0 SYSTEM                         YES NO  YES        11 UNDOTBS01                      YES NO  YES         2 SYSAUX                         YES NO  YES         4 USERS                          YES NO  YES         6 EXAMPLE                        YES NO  YES        19 DEMO                           YES NO  YES         8 STATSPACK                      YES NO  YES         3 TEMP                           NO  NO  YES        25 TESTING_LMT_ASSM               YES NO  YES        30 RAW_TEST                       YES NO  YES         9 TEST                           YES NO  YES       TS# NAME                           INC BIG FLA ENC---------- ------------------------------ --- --- --- ---        27 TEST_UNIFORM                   YES NO  YES12 rows selected.SQL> drop tablespace raw_test;  --裸设备上drop表空间,不需要带including ... and ... ,否则会连裸设备也删除了Tablespace dropped.SQL> select * from v$tablespace;       TS# NAME                           INC BIG FLA ENC---------- ------------------------------ --- --- --- ---         0 SYSTEM                         YES NO  YES        11 UNDOTBS01                      YES NO  YES         2 SYSAUX                         YES NO  YES         4 USERS                          YES NO  YES         6 EXAMPLE                        YES NO  YES        19 DEMO                           YES NO  YES         8 STATSPACK                      YES NO  YES         3 TEMP                           NO  NO  YES        25 TESTING_LMT_ASSM               YES NO  YES         9 TEST                           YES NO  YES        27 TEST_UNIFORM                   YES NO  YES11 rows selected.SQL>  上面例子在重启后,raw权限会失效,下面是解决方法下面主要修改了两个文件:1./etc/rc.local2./etc/udev/permissions.d/50-udev.permissions[root@rles ~]# raw -qa/dev/raw/raw1:  bound to major 3, minor 68[root@rles ~]# raw /dev/raw/raw1 0 0                --取消绑定/dev/raw/raw1:  bound to major 0, minor 0[root@rles ~]# [root@rles ~]# raw -qa[root@rles ~]# [root@rles ~]# raw /dev/raw/raw1 /dev/mapper/oradata-system01 /dev/raw/raw1:  bound to major 253, minor 0[root@rles ~]# /etc/init.d/rawdevices restartAssigning devices:            /dev/raw/raw1  -->   /dev/mapper/oradata-system01/dev/raw/raw1:  bound to major 253, minor 0done[root@rles ~]# cat /etc/sysconfig/rawdevices |grep system01/dev/raw/raw1 /dev/mapper/oradata-system01 [root@rles ~]# raw -qa/dev/raw/raw1:  bound to major 253, minor 0[root@rles ~]# [root@rles permissions.d]# cat 50-udev.permissions | grep raw/        --这一步使 /dev/raw/raw1 在重启后权限不变raw/*:oracle:oinstall:0660[root@rles mapper]# raw -qa/dev/raw/raw1:  bound to major 253, minor 0[root@rles mapper]# vgdisplay   --- Volume group ---  VG Name               oradata  System ID               Format                lvm2  Metadata Areas        1  Metadata Sequence No  4  VG Access             read/write  VG Status             resizable  MAX LV                0  Cur LV                1  Open LV               0  Max PV                0  Cur PV                1  Act PV                1  VG Size               2.00 GB  PE Size               4.00 MB  Total PE              511  Alloc PE / Size       510 / 1.99 GB  Free  PE / Size       1 / 4.00 MB  VG UUID               RkMm1h-oDyk-14E5-VmB5-24Vn-3VTY-46AjFe   [root@rles mapper]# lvdisplay   --- Logical volume ---  LV Name                /dev/oradata/system01  VG Name                oradata  LV UUID                WWtAI3-Jn1o-kGG0-n8dL-3guH-Zk1j-jXOViT  LV Write Access        read/write  LV Status              available  # open                 0  LV Size                1.99 GB  Current LE             510  Segments               1  Allocation             inherit  Read ahead sectors     auto  - currently set to     256  Block device           253:0   [root@rles mapper]# ls -l /dev/mapper/total 0crw-------  1 root   root      10, 63 Jun  7 19:04 controlbrw-rw----  1 oracle oinstall 253,  0 Jun  7 19:04 oradata-system01[root@rles mapper]# ls -l /dev/oradata/total 0lrwxrwxrwx  1 root root 28 Jun  7 19:04 system01 -> /dev/mapper/oradata-system01[root@rles mapper]# ls -l /dev/rawtotal 0crw-rw----  1 oracle oinstall 162, 1 Jun  7 19:29 raw1[root@rles mapper]# [root@rles mapper]# chown oracle:oinstall /dev/mapper/oradata-system01 [root@rles mapper]# ls -l /dev/mapper/total 0crw-------  1 root   root      10, 63 Jun  7 19:04 controlbrw-rw----  1 oracle oinstall 253,  0 Jun  7 19:04 oradata-system01[root@rles mapper]# su - oracle[oracle@rles ~]$ sqlplus '/as sysdba'SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jun 7 19:43:10 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> create tablespace raw_test datafile '/dev/mapper/oradata-system01';Tablespace created.SQL> drop tablespace raw_test;Tablespace dropped.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options--下面修改/etc/rc.local文件,修改后如下[root@rles ~]# cat /etc/rc.local | grep systemchown oracle:oinstall /dev/mapper/oradata-system01[root@rles ~]# --下面重启测试权限问题是否解决[root@rles ~]# su - oracle[oracle@rles ~]$ sqlplus '/as sysdba'SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jun 7 19:53:27 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.SQL> exitDisconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options[oracle@rles ~]$ exitlogout[root@rles ~]# rebootBroadcast message from root (pts/0) (Mon Jun  7 19:54:38 2010):The system is going down for reboot NOW![root@rles permissions.d]# ls -l /dev/mapper/                --查看权限total 0crw-------  1 root   root      10, 63 Jun  7 19:56 controlbrw-rw----  1 oracle oinstall 253,  0 Jun  7 19:56 oradata-system01[root@rles permissions.d]# ls -l /dev/oradata/        --查看权限,说明这个对使用没有影响total 0lrwxrwxrwx  1 root root 28 Jun  7 19:56 system01 -> /dev/mapper/oradata-system01[root@rles permissions.d]# [root@rles permissions.d]# su - oracle[oracle@rles ~]$ sqlplus '/as sysdba'SQL*Plus: Release 10.2.0.1.0 - Production on Mon Jun 7 20:01:31 2010Copyright (c) 1982, 2005, Oracle.  All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area  159383552 bytesFixed Size                  1218268 bytesVariable Size             142608676 bytesDatabase Buffers           12582912 bytesRedo Buffers                2973696 bytesDatabase mounted.Database opened.SQL> SQL> create tablespace raw_test datafile '/dev/mapper/oradata-system01';Tablespace created.SQL> col file_name format a40SQL> SQL> select file_name,bytes/1024/1024 from dba_data_files where tablespace_name='RAW_TEST';FILE_NAME                                BYTES/1024/1024---------------------------------------- ---------------/dev/mapper/oradata-system01                  2039.99219SQL>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表