ASM安装及使用
一,ASM安装
下载asmlib包,对应系统内核版本
[root@10gr2_asm ~]# uname -a Linux 10gr2_asm.oracle.com 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 i686 i386 GNU/Linux |
*红色的就是linux系统内核版本号,可以去oracle官网上去下载对应的asmlib。
[root@10gr2_asm 2.6.18-164.el5]# ls oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm oracleasm-2.6.18-164.el5debug-2.0.5-1.el5.i686.rpm oracleasm-2.6.18-164.el5-debuginfo-2.0.5-1.el5.i686.rpm oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686.rpm oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm oracleasmlib-2.0.4-1.el5.i386.rpm oracleasm-support-2.1.7-1.el5.i386.rpm |
*上面这些就是下载的asmlib包
安装asmlib:
用root用户安装
安装顺序:1,oracleasm-support-2.1.7-1.el5.i386.rpm (必装)
2,oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm (必装)
3,oracleasmlib-2.0.4-1.el5.i386.rpm (必装)
4,oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm 依赖kernel-xen包(可选)
5,oracleasm-2.6.18-164.el5-debuginfo-2.0.5-1.el5.i686.rpm (可选)
6,oracleasm-2.6.18-164.el5debug-2.0.5-1.el5.i686.rpm依赖kernel-debug包(可选)
7,oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686.rpm 依赖kernel-PAE包(可选)
二,配置ASM
1,磁盘分区:
[root@10gr2_asm 2.6.18-164.el5]# ls /dev/sd* /dev/sda /dev/sda2 /dev/sdb /dev/sdd /dev/sda1 /dev/sda3 /dev/sdc /dev/sde |
*黄色标底的是需要分区的磁盘设备。
可以使用fdisk来进行分区
[root@10gr2_asm ~]# fdisk /dev/sdb |
查看分区:
[root@10gr2_asm ~]# ls /dev/sd* /dev/sda /dev/sda2 /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sda1 /dev/sda3 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 |
*黄色标底为划分后的设备
2,进行oracleasm的配置
[root@10gr2_asm ~]# /etc/init.d/oracleasm configure Configuring the Oracle ASM library driver. This will configure the on-boot properties of the Oracle ASM library driver. The following questions will determine whether the driver is loaded on boot and what permissions it will have. The current values will be shown in brackets ('[]'). Hitting without typing an answer will keep that current value. Ctrl-C will abort. Default user to own the driver interface []: oracle Default group to own the driver interface []: dba Start Oracle ASM library driver on boot (y/n) [n]: y Scan for Oracle ASM disks on boot (y/n) [y]: Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ] |
3,创建asm磁盘
[root@10gr2_asm ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1 Marking disk "VOL1" as an ASM disk: [ OK ] [root@10gr2_asm ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1 Marking disk "VOL2" as an ASM disk: [ OK ] [root@10gr2_asm ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1 Marking disk "VOL3" as an ASM disk: [ OK ] [root@10gr2_asm ~]# /etc/init.d/oracleasm createdisk VOL4 /dev/sde1 Marking disk "VOL4" as an ASM disk: [ OK ] |
4,扫描磁盘,让系统发现ASM磁盘
[root@10gr2_asm ~]# /etc/init.d/oracleasm scandisks Scanning the system for Oracle ASMLib disks: [ OK ] |
5,列出ASM磁盘
[root@10gr2_asm ~]# /etc/init.d/oracleasm listdisks VOL1 VOL2 VOL3 VOL4 |
6,初始化ASM磁盘驱动
[root@10gr2_asm ~]# /etc/init.d/oracleasm enable Writing Oracle ASM library driver configuration: done Initializing the Oracle ASMLib driver: [ OK ] Scanning the system for Oracle ASMLib disks: [ OK ] |
三,利用DBCA使用ASM创建数据库
关键点是在发现asm磁盘的页面。
四,使用asm的数据库的起停
关闭:先停数据库实例再停asm实例
启动:先启asm实例再启数据库实例
五,使用asmcmd
[oracle@10gr2_asm ~]$ export ORACLE_SID=+ASM [oracle@10gr2_asm ~]$ asmcmd ASMCMD> help asmcmd [-p] [command] The environment variables ORACLE_HOME and ORACLE_SID determine the instance to which the program connects, and ASMCMD establishes a bequeath connection to it, in the same manner as a SQLPLUS / AS SYSDBA. The user must be a member of the SYSDBA group. Specifying the -p option allows the current directory to be displayed in the command prompt, like so: ASMCMD [+DATAFILE/ORCL/CONTROLFILE] > [command] specifies one of the following commands, along with its parameters. Type "help [command]" to get help on a specific ASMCMD command. commands: -------- cd du find help ls lsct lsdg mkalias mkdir pwd rm rmalias |
从帮助中可以看出其大致操作方式和linux相同,毕竟asm是为了解决裸设备的管理复杂性和文件系统的效率而产生的一个折中的产物,所以命令和文件系统大致一致。
ASMCMD> ls DATA/ ASMCMD> cd DATA ASMCMD> pwd +DATA ASMCMD> ls TEST/ ASMCMD> mkdir test_dir ASMCMD> ls TEST/ test_dir/ ASMCMD> du TEST Used_MB Mirror_used_MB 1056 2121 ASMCMD> lsdg State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name MOUNTED NORMAL N N 512 4096 1048576 36850 34567 8189 13189 0 DATA/ |
State:asm状态
Type:asm类型
Sector:扇区大小
Block:asm块大小
AU:分配单元
Total_MB:总容量
Free_MB:空闲容量
Offline_disks:离线的磁盘
Name:asm磁盘组的名称
这些数据也可以从动态性能视图v$asm_diskgroup中获得
SQL>select GROUP_NUMBER, NAME,SECTOR_SIZE, BLOCK_SIZE, ALLOCATION_UNIT_SIZE from v$asm_diskgroup; GROUP_NUMBER NAME SECTOR_SIZE BLOCK_SIZE ALLOCATION_UNIT_SIZE ------------ ------------------------------ ----------- ---------- -------------------- 1 DATA 512 4096 1048576 |
五,查看关于asm的动态性能视图(在ASM实例和数据库实例中查询有些是不同的)
V$ASM_DISKGROUP | 在asm实例中, 描述了asm磁盘组的一些信息。 在数据库实例中, 包含了一条关于各个磁盘组信息的记录。 |
V$ASM_DISK | 在ASM实例中,这个视图可以包含每个磁盘的信息以及没有被分配磁盘组的磁盘的信息。 在数据库实例中, 此视图只包含在这个数据库实例中使用的磁盘。 |
V$ASM_DISKGROUP_STAT | 和V$ASM_DISKGROUP视图类似。 |
V$ASM_DISK_STAT | 和V$ASM_DISK类似 |
V$ASM_FILE | 在asm实例中,包含了每个挂载的磁盘组中的文件的信息。 在数据库实例中,这个视图没有数据。 |
V$ASM_ALIAS | 在一个asm实例中,包含了每个文件或者文件夹的别名。 数据库实例中没有记录。 |
V$ASM_OPERATION | 在ASM实例中,显示正在运行的asm长时间的操作。 在数据库实例中,这个视图没有记录。 |
V$ASM_CLIENT | 在asm实例中,标识哪个数据库的磁盘组在被这个asm实例管理。 在数据库实例中,标识哪个asm实例管理本数据库所使用的磁盘组。 |
六,添加删除磁盘(放在系统空闲的时候做,因为平衡负载是很消耗资源的)
删除磁盘
SQL> column path format a12; SQL> column label format a5; SQL> select GROUP_NUMBER,DISK_NUMBER,LABEL,PATH from v$asm_disk; GROUP_NUMBER DISK_NUMBER LABEL PATH ------------ ----------- ----- ------------ 1 0 VOL1 ORCL:VOL1 1 1 VOL2 ORCL:VOL2 1 2 VOL3 ORCL:VOL3 1 3 VOL4 ORCL:VOL4 1 5 VOL5 ORCL:VOL5 1 4 VOL6 ORCL:VOL6 6 rows selected. SQL> alter diskgroup DATA drop disk VOL6; Diskgroup altered. SQL> select GROUP_NUMBER,DISK_NUMBER,LABEL,PATH from v$asm_disk; GROUP_NUMBER DISK_NUMBER LABEL PATH ------------ ----------- ----- ------------ 0 4 VOL6 ORCL:VOL6 这个磁盘已经不属于磁盘组1 1 0 VOL1 ORCL:VOL1 1 1 VOL2 ORCL:VOL2 1 2 VOL3 ORCL:VOL3 1 3 VOL4 ORCL:VOL4 1 5 VOL5 ORCL:VOL5 6 rows selected. |
添加磁盘
SQL> select GROUP_NUMBER,DISK_NUMBER,LABEL,PATH from v$asm_disk; GROUP_NUMBER DISK_NUMBER LABEL PATH ------------ ----------- ----- ------------ 0 0 VOL6 ORCL:VOL6 1 0 VOL1 ORCL:VOL1 1 1 VOL2 ORCL:VOL2 1 2 VOL3 ORCL:VOL3 1 3 VOL4 ORCL:VOL4 1 5 VOL5 ORCL:VOL5 6 rows selected. SQL> alter diskgroup DATA add disk 'ORCL:VOL6'; Diskgroup altered. SQL> select GROUP_NUMBER,DISK_NUMBER,LABEL,PATH from v$asm_disk; GROUP_NUMBER DISK_NUMBER LABEL PATH ------------ ----------- ----- ------------ 1 0 VOL1 ORCL:VOL1 1 1 VOL2 ORCL:VOL2 1 2 VOL3 ORCL:VOL3 1 3 VOL4 ORCL:VOL4 1 5 VOL5 ORCL:VOL5 1 4 VOL6 ORCL:VOL6 这个磁盘又挂到磁盘组1上了 6 rows selected. |
七,添加删除磁盘组
SQL> alter diskgroup DATA drop disk VOL5; Diskgroup altered. SQL> alter diskgroup DATA drop disk VOL6; Diskgroup altered. SQL> select GROUP_NUMBER,NAME,STATE from v$asm_diskgroup; GROUP_NUMBER NAME STATE ------------ ------------------------------ ----------- 1 DATA MOUNTED SQL> create diskgroup test normal redundancy disk 'ORCL:VOL5','ORCL:VOL6'; Diskgroup created. SQL> select GROUP_NUMBER,NAME,STATE from v$asm_diskgroup; GROUP_NUMBER NAME STATE ------------ ------------------------------ ----------- 1 DATA MOUNTED 2 TEST MOUNTED |
删除磁盘组:
SQL> drop diskgroup test; Diskgroup dropped. SQL> select GROUP_NUMBER,NAME,STATE from v$asm_diskgroup; GROUP_NUMBER NAME STATE ------------ ------------------------------ ----------- 1 DATA MOUNTED |
八,asm的一些理论知识
镜像和条带化:
ASM扩展了OMF的功能,在数据库的文件被建立和管理的时候,我们可以自动去使用OMF去管理这些文件。而ASM可以提供冗余和条带化。
ASM划分文件为1M的区段并且均衡的分散每个文件的区段到磁盘组中的磁盘上。这种优化和磁盘的利用,大大降低了手动的IO性能调优。
ASM镜像是比操作系统镜像更灵活的一种方式,因为ASM可以指定基于每个文件的冗余级别。因此两个文件可以共享一个磁盘组,其中一个可以被镜像而另外一个可以不被镜像。这个镜像发生在区块(extent)级别。如果一个文件被镜像,则依赖于冗余级别去设置这些文件的镜像,每个区块(extent)有1个及以上的镜像拷贝,并且这些镜像被永远的保存在这个磁盘组的不同磁盘组上。
现在可以看看不同的冗余策略
Normal:支持2路镜像,3路镜像和无保护的模式,默认为2路镜像
High:支持3路镜像,默认为3路镜像
External:支持无保护模式,默认为无保护模式。
九,ASM的初始化参数
SQL> show parameter asm NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ asm_diskgroups string DATA, TEST 这个参数是指这个ASM实例有哪些磁盘组 asm_diskstring string 磁盘的列表,空则表明使用了默认路径 asm_power_limit integer 1 Disk重新负载均衡的后台进程数,默认为1 |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24212278/viewspace-708298/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24212278/viewspace-708298/