yanhail 发表于 2013-1-15 08:07:59

linux创建lvm裸设备 安装 oracle

引用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.在虚拟机上添加一块硬盘,进入系统创建分区# 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   IdSystem/dev/hda1   *         1      1912    15358108+83Linux/dev/hda2            1913      2173   2096482+82Linux swap/dev/hda3            2174      2610   3510202+83LinuxDisk /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# df -hFilesystem            SizeUsed Avail Use% Mounted on/dev/hda1            15G7.5G6.3G55% /none                  553M   0553M   0% /dev/shm/dev/hda3             3.3G   98M3.1G   4% /tmp# # # # 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查看分区类型0Empty         1eHidden W95 FAT1 75PC/IX         beSolaris boot   1FAT12         24NEC DOS         80Old Minix       bfSolaris      2XENIX root      39Plan 9          81Minix / old Lin c1DRDOS/sec (FAT-3XENIX usr       3cPartitionMagic82Linux swap      c4DRDOS/sec (FAT-4FAT16 <32M      40Venix 80286   83Linux         c6DRDOS/sec (FAT-5Extended      41PPC PReP Boot   84OS/2 hidden C:c7Syrinx         6FAT16         42SFS             85Linux extendeddaNon-FS data    7HPFS/NTFS       4dQNX4.x          86NTFS volume set dbCP/M / CTOS / .8AIX             4eQNX4.x 2nd part 87NTFS volume set deDell Utility   9AIX bootable    4fQNX4.x 3rd part 8eLinux LVM       dfBootIt         aOS/2 Boot Manag 50OnTrack DM      93Amoeba          e1DOS access   bW95 FAT32       51OnTrack DM6 Aux 94Amoeba BBT      e3DOS R/O      cW95 FAT32 (LBA) 52CP/M            9fBSD/OS          e4SpeedStor      eW95 FAT16 (LBA) 53OnTrack DM6 Aux a0IBM Thinkpad hi ebBeOS fs      fW95 Ext'd (LBA) 54OnTrackDM6      a5FreeBSD         eeEFI GPT      10OPUS            55EZ-Drive      a6OpenBSD         efEFI (FAT-12/16/11Hidden FAT12    56Golden Bow      a7NeXTSTEP      f0Linux/PA-RISC b12Compaq diagnost 5cPriam Edisk   a8Darwin UFS      f1SpeedStor      14Hidden FAT16 <3 61SpeedStor       a9NetBSD          f4SpeedStor      16Hidden FAT16    63GNU HURD or Sys abDarwin boot   f2DOS secondary17Hidden HPFS/NTF 64Novell Netwareb7BSDI fs         fdLinux raid auto18AST SmartSleep65Novell Netwareb8BSDI swap       feLANstep      1bHidden W95 FAT3 70DiskSecure Mult bbBoot Wizard hid ffBBT            1cHidden 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# 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   IdSystem/dev/hda1   *         1      1912    15358108+83Linux/dev/hda2            1913      2173   2096482+82Linux swap/dev/hda3            2174      2610   3510202+83LinuxDisk /dev/hdb: 2147 MB, 2147483648 bytes16 heads, 63 sectors/track, 4161 cylindersUnits = cylinders of 1008 * 512 = 516096 bytes   Device Boot      Start         End      Blocks   IdSystem/dev/hdb4               1      4161   2097112+83Linux# pvcreate /dev/hdb4    --创建pvPhysical volume "/dev/hdb4" successfully created# pvdisplay /dev/hdb4    --查看pv信息"/dev/hdb4" is a new physical volume of "2.00 GB"--- NEW Physical volume ---PV Name               /dev/hdb4VG Name               PV Size               2.00 GBAllocatable         NOPE Size (KByte)       0Total PE            0Free PE               0Allocated PE          0PV UUID               SPLedg-E05Q-nmXf-kwz9-Wbd9-Ci0a-0gwliT   # ls -l /dev/hdb4brw-rw----1 root disk 3, 68 Jun5 20:48 /dev/hdb43.创建vg# vgcreate oradata /dev/hdb4Volume group "oradata" successfully created# ls -l /dev/hdb4         brw-rw----1 root disk 3, 68 Jun5 20:48 /dev/hdb4# 4.创建lv# lvcreate -n system01 -L 2040M oradataLogical volume "system01" created# ls -l /dev/hdb4brw-rw----1 root disk 3, 68 Jun5 20:48 /dev/hdb4# ls -l /dev/oradata/total 0lrwxrwxrwx1 root root 28 Jun5 22:54 system01 -> /dev/mapper/oradata-system01# # lvremove /dev/oradata/system01   --删除lvDo you really want to remove active logical volume "system01"? : yLogical volume "system01" successfully removed# # ls -l /dev/oradata/            ls: /dev/oradata/: No such file or directory# lvcreate -n system01 -L 2040M oradataLogical volume "system01" created# ls -l /dev/oradata/                  total 0lrwxrwxrwx1 root root 28 Jun5 22:55 system01 -> /dev/mapper/oradata-system01# # 5.绑定裸设备# raw /dev/raw/raw1 /dev/mapper/oradata-system01 --注意,之前是没有/dev/raw目录的,执行后会自动创建/dev/raw/raw1:bound to major 253, minor 0# # ls -l /oradata/total 4drwxr-xr-x2 root root 4096 Jun5 23:21 system01# raw -qa--查询裸设备/dev/raw/raw1:bound to major 253, minor 06.为了保证重启后,可以挂载裸设备,修改下面文件,添加内容# 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.重启裸设备服务,验证是否能挂载# /etc/init.d/rawdevices restart--重启裸设备服务Assigning devices:            /dev/raw/raw1-->   /dev/mapper/oradata-system01/dev/raw/raw1:bound to major 253, minor 0done# # ls -l /dev/mapper/total 0crw-------1 root root10, 63 Jun5 23:24 controlbrw-rw----1 root disk 253,0 Jun5 23:24 oradata-system01# 8.切换到oracle用户,测试在是否能在裸设备上创建表空间# su - oracle$ 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 Area159383552 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 NOYES      11 UNDOTBS01                      YES NOYES         2 SYSAUX                         YES NOYES         4 USERS                        YES NOYES         6 EXAMPLE                        YES NOYES      19 DEMO                           YES NOYES         8 STATSPACK                      YES NOYES         3 TEMP                           NONOYES      25 TESTING_LMT_ASSM               YES NOYES         9 TEST                           YES NOYES      27 TEST_UNIFORM                   YES NOYES11 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$ exitlogout#9.给新创建的裸设备增加权限,以使oracle能使用# cd /dev/mapper/# ls -ltotal 0crw-------1 root root10, 63 Jun5 23:24 controlbrw-rw----1 root disk 253,0 Jun5 23:24 oradata-system01# ls -l /dev/rawtotal 0crw-rw----1 root disk 162, 1 Jun5 23:34 raw1# chown -R oracle:oinstall /dev/mapper/oradata-system01 # ls -ltotal 0crw-------1 root   root      10, 63 Jun5 23:24 controlbrw-rw----1 oracle oinstall 253,0 Jun5 23:24 oradata-system01# ls -l /dev/rawtotal 0crw-rw----1 root disk 162, 1 Jun5 23:34 raw1# # su - oracle$ 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 NOYES      11 UNDOTBS01                      YES NOYES         2 SYSAUX                         YES NOYES         4 USERS                        YES NOYES         6 EXAMPLE                        YES NOYES      19 DEMO                           YES NOYES         8 STATSPACK                      YES NOYES         3 TEMP                           NONOYES      25 TESTING_LMT_ASSM               YES NOYES      30 RAW_TEST                     YES NOYES         9 TEST                           YES NOYES       TS# NAME                           INC BIG FLA ENC---------- ------------------------------ --- --- --- ---      27 TEST_UNIFORM                   YES NOYES12 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 NOYES      11 UNDOTBS01                      YES NOYES         2 SYSAUX                         YES NOYES         4 USERS                        YES NOYES         6 EXAMPLE                        YES NOYES      19 DEMO                           YES NOYES         8 STATSPACK                      YES NOYES         3 TEMP                           NONOYES      25 TESTING_LMT_ASSM               YES NOYES         9 TEST                           YES NOYES      27 TEST_UNIFORM                   YES NOYES11 rows selected.SQL>上面例子在重启后,raw权限会失效,下面是解决方法下面主要修改了两个文件:1./etc/rc.local2./etc/udev/permissions.d/50-udev.permissions# raw -qa/dev/raw/raw1:bound to major 3, minor 68# raw /dev/raw/raw1 0 0                --取消绑定/dev/raw/raw1:bound to major 0, minor 0# # raw -qa# # raw /dev/raw/raw1 /dev/mapper/oradata-system01 /dev/raw/raw1:bound to major 253, minor 0# /etc/init.d/rawdevices restartAssigning devices:            /dev/raw/raw1-->   /dev/mapper/oradata-system01/dev/raw/raw1:bound to major 253, minor 0done# cat /etc/sysconfig/rawdevices |grep system01/dev/raw/raw1 /dev/mapper/oradata-system01 # raw -qa/dev/raw/raw1:bound to major 253, minor 0# # cat 50-udev.permissions | grep raw/      --这一步使 /dev/raw/raw1 在重启后权限不变raw/*:oracle:oinstall:0660# raw -qa/dev/raw/raw1:bound to major 253, minor 0# vgdisplay   --- Volume group ---VG Name               oradataSystem ID               Format                lvm2Metadata Areas      1Metadata Sequence No4VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                1Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               2.00 GBPE Size               4.00 MBTotal PE            511Alloc PE / Size       510 / 1.99 GBFreePE / Size       1 / 4.00 MBVG UUID               RkMm1h-oDyk-14E5-VmB5-24Vn-3VTY-46AjFe   # lvdisplay   --- Logical volume ---LV Name                /dev/oradata/system01VG Name                oradataLV UUID                WWtAI3-Jn1o-kGG0-n8dL-3guH-Zk1j-jXOViTLV Write Access      read/writeLV Status            available# open               0LV Size                1.99 GBCurrent LE             510Segments               1Allocation             inheritRead ahead sectors   auto- currently set to   256Block device         253:0   # ls -l /dev/mapper/total 0crw-------1 root   root      10, 63 Jun7 19:04 controlbrw-rw----1 oracle oinstall 253,0 Jun7 19:04 oradata-system01# ls -l /dev/oradata/total 0lrwxrwxrwx1 root root 28 Jun7 19:04 system01 -> /dev/mapper/oradata-system01# ls -l /dev/rawtotal 0crw-rw----1 oracle oinstall 162, 1 Jun7 19:29 raw1# # chown oracle:oinstall /dev/mapper/oradata-system01 # ls -l /dev/mapper/total 0crw-------1 root   root      10, 63 Jun7 19:04 controlbrw-rw----1 oracle oinstall 253,0 Jun7 19:04 oradata-system01# su - oracle$ 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文件,修改后如下# cat /etc/rc.local | grep systemchown oracle:oinstall /dev/mapper/oradata-system01# --下面重启测试权限问题是否解决# su - oracle$ 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$ exitlogout# rebootBroadcast message from root (pts/0) (Mon Jun7 19:54:38 2010):The system is going down for reboot NOW!# ls -l /dev/mapper/                --查看权限total 0crw-------1 root   root      10, 63 Jun7 19:56 controlbrw-rw----1 oracle oinstall 253,0 Jun7 19:56 oradata-system01# ls -l /dev/oradata/      --查看权限,说明这个对使用没有影响total 0lrwxrwxrwx1 root root 28 Jun7 19:56 system01 -> /dev/mapper/oradata-system01# # su - oracle$ 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 Area159383552 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>
页: [1]
查看完整版本: linux创建lvm裸设备 安装 oracle