Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

18

积分

1

好友

18

主题
1#
发表于 2013-8-15 20:15:54 | 查看: 3542| 回复: 2
Oracle ASM存储技术日益成熟和流行,ASM提供了逻辑卷管理、软RAID服务、支持条带化和磁盘镜像,从而在保护磁盘数据的基础上实现了添加或移除磁盘以及自动平衡I/O以删除热点的功能。
然而,要深刻理解ASM技术就必须先理解操作系统级别的磁盘管理技术。在工作和实践过程中,我熟悉了AIX的LVM管理,HP-UNIX的逻辑卷管理技术与AIX类似,其实linux也是从PV到VG到LV再到
裸设备或者文件系统的存储层次化管理,只是在平时可能用到的想对较少。以下在我虚拟机下的linux 5.4下介绍Linux的分区及逻辑卷管理技术。

Linux系统下一块磁盘支持1-4个主分区和扩展分区,扩展分区下面可以建多个逻辑分区,但是主分区和扩展分区之和小于等于4个。fdisk是linux的分区管理工具。
如下所示,我没有以LVM的方式安装操作系统,而是简易安装,fdisk -l查看包括以下三个分区:

[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          38      305203+  83  Linux
/dev/sda2              39        2349    18563107+  83  Linux
/dev/sda3            2350        2610     2096482+  82  Linux swap / Solaris
[root@localhost ~]#

3个都是主分区类型,sda表明磁盘是SCSI磁盘,其中sda3是swap分区。上面有个Id的列,在linux下每个分区都有一个识别码(Id),也称为分区类型,创建分区时必须设置正确的分区类型。
83是包含linux文件系统的分区的正确类型,82是linux swap分区的正确类型,8e为Linux LVM分区类型,系统中目前没有LVM的类型分区。

下面我在系统中加入一块sdb的磁盘,在sdb磁盘下创建逻辑卷和文件系统。如下所示,目前系统中有sda和sdb两块磁盘,Disk /dev/sdb doesn't contain a valid partition table表明sdb目前没有进行任何分区:
[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          38      305203+  83  Linux
/dev/sda2              39        2349    18563107+  83  Linux
/dev/sda3            2350        2610     2096482+  82  Linux swap / Solaris

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table
[root@localhost ~]#


通过fdisk /dev/sdb命令创建两个主分区/dev/sdb1和/dev/sdb2,在创建过程中通过 t   change a partition's system id选项设置分区类型为8e,即LVM类型:
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652): 200

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   ....
   
   
在创建完成之后,查看分区情况如下:
[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          38      305203+  83  Linux
/dev/sda2              39        2349    18563107+  83  Linux
/dev/sda3            2350        2610     2096482+  82  Linux swap / Solaris

Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         200     1606468+  8e  Linux LVM
/dev/sdb2             201         500     2409750   8e  Linux LVM
[root@localhost ~]#
上面的652 cylinders表明sdb磁盘有652个扇区,目前已经分配了500个。

创建PV:
[root@localhost ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@localhost ~]# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created
[root@localhost ~]# pvdisplay
  "/dev/sdb1" is a new physical volume of "1.53 GB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1.53 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               6LoD3D-93nO-BwfY-tvHT-y08F-42mq-kYbrOt
   
  "/dev/sdb2" is a new physical volume of "2.30 GB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name               
  PV Size               2.30 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               0bmrBM-k2xO-DfM0-DnTr-ijr0-Ud6D-GUoklJ

pvdisplay命令类似于AIX下的lspv。

创建VG,这里我们将上面两个PV放在同一个VG里:
[root@localhost ~]# vgcreate myvg01 /dev/sdb1 /dev/sdb2
  /dev/cdrom: open failed: Read-only file system
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  Volume group "myvg01" successfully created
[root@localhost ~]# vgdisplay
  --- Volume group ---
  VG Name               myvg01
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               3.83 GB
  PE Size               4.00 MB
  Total PE              980
  Alloc PE / Size       0 / 0   
  Free  PE / Size       980 / 3.83 GB
  VG UUID               1DD9e3-x6ue-N5mD-PvaH-XSQd-C4qW-O8Wz0B
   
[root@localhost ~]#

创建3个lv,myvg01即上面vg的name,在创建200M的lv时,敲错了vg名:
[root@localhost ~]# lvcreate -L 100M -n lv01 myvg01
  Logical volume "lv01" created
[root@localhost ~]# lvcreate -L 200M -n lv02 myvg02
  /dev/cdrom: open failed: Read-only file system
  Attempt to close device '/dev/cdrom' which is not open.
  Volume group "myvg02" not found
[root@localhost ~]# lvcreate -L 200M -n lv02 myvg01
  Logical volume "lv02" created
[root@localhost ~]# lvcreate -L 300M -n lv03 myvg01
  Logical volume "lv03" created
[root@localhost ~]#
lvdisplay类似于AIX的lslv命令,将列出系统中的所有lv信息.

以上已经建立了大小分别为100M、200M、300M的三个逻辑卷,这样的逻辑卷可以作为裸设备来挂oracle的数据文件等支持裸设备的文件类型,也可以在lv上面
创建文件系统。建裸设备数据库的这里不做介绍,下面我们将lv03的逻辑卷创建文件系统,并且mount到/lvfs01目录下:
[root@localhost ~]# mkfs -t ext3 /dev/myvg01/lv03
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
76912 inodes, 307200 blocks
15360 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67633152
38 block groups
8192 blocks per group, 8192 fragments per group
2024 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729, 204801, 221185

Writing inode tables: done                           
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]#

创建挂接目录/lvfs01,并挂接lv03:
[root@localhost ~]# mkdir /lvfs01
[root@localhost ~]# mount /dev/myvg01/lv03 /lvfs01
[root@localhost ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              18G  2.2G   15G  13% /
/dev/sda1             289M   16M  259M   6% /boot
tmpfs                 506M     0  506M   0% /dev/shm
/dev/hdc              5.9M  5.9M     0 100% /media/我的光盘
/dev/mapper/myvg01-lv03
                      291M   11M  266M   4% /lvfs01
[root@localhost ~]#

至此,已经在LV03上面成功创建了文件系统。如果要将新创建的文件开机自动挂载,则需要将其写入到/etc/fstab文件中。
2#
发表于 2013-8-16 09:17:47
好帖,顶~!

回复 只看该作者 道具 举报

3#
发表于 2013-8-16 22:06:13
clot09 发表于 2013-8-16 09:17
好帖,顶~!

谢谢你的肯定,继续努力!

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-6-2 19:51 , Processed in 0.047396 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569