系统:linux-as3 x86 oracle10.2
1.检查内核版本
uname -a
2.下载相应的asm程序
下载地址;根据自己内核版本,下载相应程序
http://www.oracle.com/technology/software/tech/linux/asmlib/rhel3.html
3.安装模块
下载的模块共3个:
oracleasm-support-2.0.3-1.i386.rpm
oracleasmlib-2.0.2-1.i386.rpm
oracleasm-2.4.21-37.EL-1.0.5-1.i686.rpm
用rpm安装:
# rpm -Uvh oracleasm-support-2.0.3-1.i386.rpm
# rpm -Uvh oracleasm-2.4.21-37.EL-1.0.5-1.i686.rpm
# rpm -Uvh oracleasmlib-2.0.2-1.i386.rpm
4.配置ASMLib
# /etc/init.d/oracleasm configure,选默认值
5.确认ASMLib已经可以自动加载
#lsmod |grep oracleasm
#dmesg |grep oracleasm
6.为 ASM 配置磁盘
事前先准备好分区,然后添加.
# /etc/init.d/oracleasm createdisk VOL1 /dev/hda8
# /etc/init.d/oracleasm createdisk VOL1 /dev/hda9
# /etc/init.d/oracleasm createdisk VOL1 /dev/hda10
在添加时遇到一个问题,每次都fail,并提示hda8不是分区,搜一网上,有的朋友遇到这个问题,他们的原因是直接添加磁盘,这是不可的,必须 是分区.但我这里的问题不同,回头重新分区,发现分区时提示了问题原因.按照提示,重新启动,问题解决.
Command (m for help): p
Disk /dev/hda: 80.0 GB, 80060424192 bytes
255 heads, 63 sectors/track, 9733 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/hda1 * 1 1913 15361888+ 7 HPFS/NTFS
/dev/hda2 1914 2040 1020127+ 82 Linux swap
Partition 2 does not end on cylinder boundary.
/dev/hda3 2041 4463 19462747+ 83 Linux
/dev/hda4 4464 9733 42328912+ f Win95 Ext'd (LBA)
Partition 4 does not end on cylinder boundary.
/dev/hda5 4464 6376 15362361 c Win95 FAT32 (LBA)
/dev/hda6 6376 8288 15361888+ c Win95 FAT32 (LBA)
/dev/hda7 8289 8301 104391 83 Linux
/dev/hda8 8302 8363 497983+ 83 Linux
/dev/hda9 8364 8425 497983+ 83 Linux
/dev/hda10 8426 8487 497983+ 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table.
The new table will be used at the next reboot .
Syncing disks.
[root@john oracle]# /etc/init.d/oracleasm createdisk VOL1 /dev/hda8
Marking disk "/dev/hda8" as an ASM disk: [ OK ]
[root@john oracle]# /etc/init.d/oracleasm createdisk VOL1 /dev/hda9
Marking disk "/dev/hda9" as an ASM disk: asmtool: Unable to create ASM disk "VOL1": File exists
[FAILED]
[root@john oracle]# /etc/init.d/oracleasm createdisk VOL2 /dev/hda9
Marking disk "/dev/hda9" as an ASM disk: [ OK ]
[root@john oracle]# /etc/init.d/oracleasm createdisk VOL3 /dev/hda10
Marking disk "/dev/hda10" as an ASM disk: [ OK ]
[root@john oracle]# /etc/init.d/oracleadm listdisks
bash: /etc/init.d/oracleadm: No such file or directory
[root@john oracle]# /etc/init.d/oraclea3m listdisks
bash: /etc/init.d/oraclea3m: No such file or directory
查看asm磁盘
[root@john oracle]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
7.使用dbca创建asm实例和磁盘组,磁盘组名定为asmdisk
8.登陆asm实例
实例却省名为+ASM,登陆使用SQLPLUS,需要设置ORACLE_SID=+ASM
要关闭ASM实例,首先要关闭每一个数据库实例
% sqlplus /nolog
SQL> CONNECT / AS sysdba
Connected to an idle instance.
SQL> STARTUP
ASM instance started
Total System Global Area 71303168 bytes
Fixed Size 1069292 bytes
Variable Size 45068052 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
CRS 根据配置管理 Oracle 的群集资源,包括资源的启动、停止、监视和故障切换。
CSS 可管理 Oracle 群集成员并将其自身的组成员服务提供给 RAC 实例
[oracle@rac2 ~]$ crsctl check cssd
CSS appears healthy
9.使用asm创建表空间
登陆数据库instance
create tablespace asmtb datafile '+asmdisk' size 100m; +asmdisk为磁盘组名称
10.ASM限制
ASM imposes the following limits:
63 disk groups in a storage system
10,000 ASM disks in a storage system
4 petabyte maximum storage for each ASM disk
40 exabyte maximum storage for each storage system
1 million files for each disk group
Maximum files sizes as shown in the following table:
Disk Group Type Maximum File Size
External redundancy 35 TB
Normal redundancy 5.8 TB
High redundancy 3.9 TB
11、磁盘组管理
1)、创建磁盘组
SQL> STARTUP NOMOUNT
SQL> CREATE DISKGROUP dgroup1 NORMAL REDUNDANCY
2 FAILGROUP controller1 DISK
3 ‘/devices/diska1′,
4 ‘/devices/diska2′,
5 ‘/devices/diska3′,
6 ‘/devices/diska4′
7 FAILGROUP controller2 DISK
8 ‘/devices/diskb1′,
9 ‘/devices/diskb2′,
10 ‘/devices/diskb3′,
11 ‘/devices/diskb4′;
2)、添加磁盘
ALTER DISKGROUP dgroup1 ADD DISK
‘/devices/diska5′ NAME diska5,
‘/devices/diska6′ NAME diska6;
没有指定故障组,所以两个磁盘分别添加到自己的故障组
3).ASM中,创建一个目录
alter diskgroup boson add directory ‘+data/backup’;
在已经创建的目录中在创建目录
alter diskgroup boson add directory ‘+data/backup/archivelog’;
重命名一个目录
alter diskgroup boson rename directory ‘+data/backup’ to ‘+data/bak’;
删除一个目录
alter diskgroup boson drop directory ‘+data/bak’force
ASM文件别名的管理,相关视图v$asm_alias
ALTER DISKGROUP dgroup1 ADD ALIAS ‘+dgroup1/mydir/second.dbf’
FOR ‘+dgroup1/sample/datafile/mytable.342.3′;
重命名一个别名
ALTER DISKGROUP dgroup1 RENAME ALIAS ‘+dgroup1/mydir/datafile.dbf’
TO ‘+dgroup1/payroll/compensation.dbf’;
删除一个别名
ALTER DISKGROUP dgroup1 DROP ALIAS ‘+dgroup1/payroll/compensation.dbf’;
删除一个ASM文件
ALTER DISKGROUP dgroup1 DROP FILE ‘+dgroup1/payroll/compensation.dbf’;
删除一个磁盘从磁盘组中
ALTER DISKGROUP dgroup1 DROP DISK diska5;
ALTER DISKGROUP dgroup1 DROP DISK diska5
ADD FAILGROUP failgrp1 DISK ‘/devices/diska9′ NAME diska9;
修改磁盘组中的磁盘大小
修改一个磁盘组中所有的磁盘:
ALTER DISKGROUP dgroup1
RESIZE DISKS IN FAILGROUP failgrp1 SIZE 100G
手动调整字盘平衡速度
ALTER DISKGROUP dgroup2 REBALANCE POWER 5 WAIT
挂载所有磁盘组
ALTER DISKGROUP ALL DISMOUNT;
ALTER DISKGROUP dgroup1 DISMOUNT;
检查所有磁盘组的一致性
ALTER DISKGROUP dgroup1 CHECK ALL;
删除磁盘组
DROP DISKGROUP dgroup1;