一. 查看ASM空间使用情况

1. lsdg: 查看磁盘组的信息,和磁盘空间大小

ASMCMD> lsdg

State    Type    Rebal  Block   AU       Total_MB  Free_MB  Usable_file_MB  Offline_disks  Voting_files  Name

MOUNTED  EXTERN  N       4096  1048576     5739     5339             5339             0            Y    DATA/

MOUNTED  EXTERN  N       4096  1048576     5739     3669             3669             0            N   DATADG01/


2. 查看磁盘组,(空间情况)

SQL> select name name2,state,type,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;

NAME2               STATE    TYPEFREE_MB Total_MB  USABLE_FILE_MB

--------------- ----------- ---------------- ---------- -----------

DATAMOUNTED         EXTERN   5339       5,739         5339

DATADG01MOUNTED     EXTERN   3669       5,739         3669


3.查看及修改asm重新平衡粒度

SQL> show parameter power

NAME                   TYPE      VALUE

----------------------------------------

asm_power_limit      integer      4


SQL> show parameter asm


NAME                        TYPE  VALUE

------------------------------------ -------------

asm_diskgroups            string  DATADG01

asm_diskstring            string

asm_power_limit           integer  4

asm_preferred_read_failure_groups  string


4.查看asm实例操作变化(只记录结构变化操作)

select * from v$asm_operation;

注意:执行以下命令要用grid 用户 用sqlplus / as sysasm 这个权限登录

$ export ORACLE_SID=+ASM1

$ sqlplus / as sysasm  


二、ASM磁盘组的创建删除挂载

1.asm磁盘组创建

asmca(11g),10g(dbca) 图形界面

sql>create diskgroup datadg01 external redundancy disk '/dev/raw/raw1';


2.asm 磁盘组删除

sql>drop diskgroup datadg01;


3.asm磁盘组添加磁盘

sql>alter diskgroup datadg01 add disk '/dev/raw/raw2';


4.asm磁盘组删除磁盘

sql>select name,path from v$asm_disk;查询到名称


NAME            PATH

-----------------------------

DATA_0000       /dev/raw/raw1

DATA_0001       /dev/raw/raw2

DATA_0002       /dev/raw/raw3

DATADG01_0000   /dev/raw/raw5

DATADG01_0001   /dev/raw/raw6

DATADG01_0002   /dev/raw/raw7


sql>alter diskgroup datadg drop disk 'DATADG01_0001'; --这里是磁盘名称,而不是'/dev/raw/raw1'


5.挂载

Sql>alter diskgroup datadg01 mount;

or

Sql>alter diskgroup all mount;


6.卸载

Sql>alter diskgroup datadg01  dismount;

or

Sql>alter diskgroup all dismount;


7.删除

Sql>drop diskgroup datadg01;

说明:删除磁盘组时,磁盘组必须被挂载(mount)


三. ASM磁盘组目录管理

1.asm磁盘组增加目录

SQL> alter diskgroup datadg01 add directory '+datadg01/datafile';


2.Asm磁盘组重命名目录

SQL> alter diskgroup datadg01 rename directory '+datadg01/datafile' to '+datadg01/datafile01';


3.Asm磁盘组增加多层目录,必须一层一层添加


--首先添加zw

SQL> alter diskgroup datadg01 add directory '+datadg01/zw/';


然后添加datafile

SQL> alter diskgroup datadg01 add directory '+datadg01/zw/datafile';


4.Asm磁盘组删除

SQL> alter diskgroup datadg01 drop directory '+datadg01/datafile';


四. ASM磁盘组文件管理

数据文件添加别名

sql>alter diskgroup datadg01 add alias '+datadg01/node/datafile/users.dbf' for '+datadg01/node/datafile/users.266.987885487';


重新命名别名

SQL> alter diskgroup datadg01 rename alias '+datadg01/node/datafile/users.dbf' to '+datadg01/node/datafile/users01.dbf';


查询别名

SQL> select name,group_number,file_number,alias_index,alias_directory,system_created from v$asm_alias where file_number=266;


删除别名

SQL> alter diskgroup datadg01 drop alias '+datadg01/node/datafile/users01.dbf'; 


五. ASM几个重要参数

asm_power_limit当加入磁盘后磁盘组的各个磁盘之间做均衡进程

asm_disktring  指定asm启动时候查找磁盘路径

Linux 自动搜索:/dev/raw/ 和/dev下的设备文件

aix 自动搜索:/dev/下设备文件

hp-ux:由于hp-ux下的磁盘路径在/dev/rdsk/下边,需要设置


磁盘组的重新平衡:当磁盘组中的磁盘发生变化时,磁盘组将自动进行重新平衡

平衡级别为0-11,当手工进行重新平衡时,可以指定平衡级别

可用的最高级别通过初始化参数asm_power_limit 指定

SQL>alter diskgroup datadg01 rebalance  power 3;

SQL>alter diskgroup datadg01 rebalance  power 3 wait ;


六.ASM相关视图


v$asm_disk(_stat)      --查看磁盘及其状态信息

v$asm_diskgroup(_stat) --查看磁盘组及其状态信息

v$asm_operation        --查看当前磁盘的操作信息

v$asm_client           --返回当前连接的客户端实例信息

v$asm_file             --返回asm文件的相关信息

v$asm_template         --返回asm文件样本的相关信息

v$asm_alias            --返回asm文件的别名信息



七.添加数据文件

如果是数据库文件

sql>create tablespace test datafile'+datadg01' size 100M;


如果归档日志:

sql>alter system set log_archive_dest_1='location=+datadg01' scope=both;