一、ASM文件的管理

1、 ASM文件概述:

ASM文件的命名不同于普通文件的命名,它的文件名一般不直接指定,由ASM系统自

己生成,并且其管理方式是OMF。如果人为指定,则文件的管理方式就不再是OMF了。

使用ASM文件名的时机:

a. 引用ASM文件

b. 创建ASM文件


2、文件的命名规则:

(1)完全命名:

格式:+diskgroup_name/database_name/filetype/file_name.xxx.xxxx

作用:只能用于引用,不能在创建ASM文件时指定。

说明:xxx表示数字,是唯一的。

例如:+dgdata/info/datafile/system.256.78684974


(2)数字命名:

格式:file_name.xxx.xxxx

作用:只能用于引用,不能在创建ASM文件时指定。

说明:xxx表示数字,是唯一的。

例如:system.256.78684974


(3)不完全命名:

格式:+diskgroup_name

作用:用于创建ASM文件,在创建文件时指定,由ASM自动生成对应的文件名。

说明:文件是OMF。

例如:create tablespace test datafile ‘+dgdata’ size 100m;


(4)带模板的不完全命名:

格式:+diskgroup_name(template_name)

作用:用于创建ASM文件,在创建文件时指定,由ASM自动生成对应的文件名。

说明:文件是OMF。

例如:create tablespace test datafile ‘+dgdata(my_template)’ size 100m;


(5)别名命名:

格式:+diskgroup_name/directory1/…/directoryN/file_name.dbf

作用:用于创建ASM文件,在创建文件时指定。本质上它创建了一个别名和一

个ASM文件,并且这个别名指向这个ASM文件。

说明:如果以指定别名的方式创建文件,则文件不是OMF。

在ASM中目录不能递归创建,必须一层一层的创建。删除也是一样。

例如:create tablespace test

datafile ‘+dgdata/info/test_01.dbf’ size 150m;



二、ASM目录的管理(可被ASMCMD替代)

1、 ASM中也存在目录概念。

2、 + ------ 表示根目录

3、 ASM中目录不能递归创建

4、 ASM中不能直接删除非空目录,需要先删目录下的内容,然后再删上层目录。

5、 ASM中目录的操作:

a. 增加目录

命令:

alter diskgroup diskgroup_name

add directory ‘+diskgroup_name/directory1/directory_name’

说明:

增加目录时,上层目录必须存在,否则增加失败。

e.g.:

alter diskgroup dgdata1 add

add directory ‘+dgdata1/info/datafile’;


b、删除目录

命令:

alter diskgroup diskgroup_name

drop directory ‘+diskgroup_name/directory1/directory_name’

说明:

删除目录时,目录应为空,否则删除失败。

e.g.:

alter diskgroup dgdata1 add

drop directory ‘+dgdata1/info/datafile’;


三、ASM别名的管理(可被ASMCMD替代)

1、别名的添加:

命令:

alter diskgroup diskgroup_name

add alias alias_name for ‘asm_file’;

e.g.:

alter diskgroup dgdata1

add alias ‘+dgdata1/salse.dbf’ for ‘+dgdata1/info/datafile/system.256.78684974’;


2、别名的删除:

命令:

alter diskgroup diskgroup_name

drop alias alias_name;

e.g.:

alter diskgroup dgdata1

add alias ‘+dgdata1/salse.dbf’ ;


3、查看别名:

别名信息存放在视图v$asm_alias里。视图中

ALIAS_DIRECTORY-----表示别名是否为目录

SYSTEM_CREATED------表示别名是否由系统创建

默认每一个ASM文件都有别名,那就是自己。

使用下面命令查看:

select * from v$asm_alias;


4、别名只能针对文件,不能为目录建立别名。


四、ASMCMD的使用

ASMCMD是ASM提供的一个工具。它实现了ASM磁盘组上文件及目录的管理。具体可以实现以下功能:

1、 创建目录(mkdir)

2、 删除目录(rm)

3、 目录切换(cd)

4、 创建别名(mkalias)

5、 删除别名(rmalias)

6、 显示当前目录(pwd)

7、 显示文件条目(ls)

命令的使用:

ASMCMS中每个命令都有自己的帮助系统,使用方法为: help command

使用说明:

(1)创建目录(mkdir)

asmcmd> mkdir directory_name

e.g:

asmcmd> mkdir info

(2)删除目录(rm)

asmcmd >rm file_name

e.g:

asmcmd>rm test_01.dbf

asmcmd>rm *

(3)目录切换(cd)

asmcmd> cd directory_name

e.g:

asmcmd> cd info

(4)创建别名(mkalias)

asmcmd>mkalias asm_file_name alias_name

备注:不能对目录建立别名

e.g:

asmcmd>mkalias ‘+dgdata/info/datafile/system.256.78684974’ system.dbf

(5)删除别名(rmalias)

asmcmd> rmalias alias_name

asmcmd> rmalias system.dbf

备注:别名不能用【rm】命令删除,否则原文件将会被删除。

(6)显示当前目录(pwd)

asmcmd> pwd

(7)显示文件条目(ls)

asmcmd> ls


备注:

(1)ASM中目录不能递归创建,必须层层创建。删除时也不能删除非空目录,需先删除

目录下文件,然后方可删除目录。

(2)在ASMCMD中:

mkdir == alter diskgroup diskgroup_name add directory

rm directory_name == alter diskgroup diskgroup_name drop directory ‘xxxx’

mkalias == alter diskgroup diskgroup_name add alias

rmalias == alter diskgroup diskgroup_name drop alias

它们的表现形式不一样,但本质是一样的,有异曲同工之效。

(3)别名只对文件有效,不能对目录创建别名



五、其他

1、 修改ASM磁盘组重平衡的速度。

命令:

alter diskgroup diskgroup_name rebalance power N;(N=0、1、2、… 11)

说明:

字母 N 代表了重平衡的速度。0表示关闭重平衡功能;1速度最小,吞吐量也最小,

对用户影响也最小,11速度最快,吞吐量最大,对用户影响最大。默认为1.

e.g:

alter diskgroup dgdata2 rebalance power 3;

#修改磁盘组dgdata2的重平衡速度为3。


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html