ASM管理.docx
- 文档编号:9552883
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:22
- 大小:23.92KB
ASM管理.docx
《ASM管理.docx》由会员分享,可在线阅读,更多相关《ASM管理.docx(22页珍藏版)》请在冰豆网上搜索。
ASM管理
ASM磁盘、目录的管理
ASM磁盘是ASM体系结构的重要组成部分,ASM磁盘由ASM实例来定位、管理,本文主要讲述ASM磁盘组、故障组等等。
一、相关概念
1.ASM 磁盘组
ASM存储管理除了ASM实例之外,最大的组成部分就是ASM磁盘组。
一个ASM磁盘组由过多个ASM磁盘组成
一个磁盘组内可以存放多个数据文件,一个数据文件仅仅只能位于一个磁盘组内,不能跨磁盘组
多个数据库可以共享相同的或多个磁盘组
磁盘组的冗余类型可以分为三类:
标准冗余,高度冗余,外部冗余
对于已创建的磁盘组,不能够更改其冗余级别,如要更改,需要删除该磁盘组后再重新创建
2.ASM 磁盘
ASM磁盘通过标准的OS接口来访问,由Oracle用户来读写,在聚集的所有节点可以被访问
ASM磁盘在不同的节点可以使用不同的名字
ASM磁盘可以使网络文件系统
ASM磁盘上的对象被冗余保护
每一个ASM磁盘的第块用于定义磁盘的头部信息,ASM磁盘名字编号,创建的时间戳等
ASM文件会均匀分布在一个ASM组内的各个磁盘中
3.ASM 故障组
一个磁盘组可以由两个或多个故障组组成
一个故障组由一个或多个ASM磁盘组成
故障组提供了共享相同资源的冗余,我们可以这样来理解标准冗余
假定有磁盘组DG1,且创建了两个故障组fgroup1,fgroup2,每个故障组由个ASM磁盘组成,则对标准冗余而言,两个故障组互为镜像
failgroup1 -->asmdiskA,asmdiskB
failgroup2 -->asmdiskC,asmdiskD
假定文件datafileA大小为4MB,则个4extent均匀分布到asmdiskA,asmdiskB,同样asmdiskC,asmdiskD也包含该文件的至个extent
即只要有一个extent在故障组fgroup1中存在,必定有一个镜像的extent存在于fgroup2中,反之亦然,两个extent互为镜像。
当一个故障组中的某个磁盘损坏,假定为asmdiskA ,则asmdiskA中原来保存的extent将会从failgroup2中复制到asmdiskB中。
总之,故障组failgroup1和failgroup2必定有相同的extent副本
标准冗余至少需要2个故障组,高度冗余则至少需要3个故障组。
事实上对于未明确指定故障组的情况下,一个标准冗余至少需要2个
asm磁盘,而高度冗余至少需要3个asm磁盘
4.分配单元
ASM磁盘的最小粒度是分配单元,大小默认是1M,也可设置为128K进行细粒度访问
支持粗粒度和细粒度分配单元进行读写来实现装载平衡和减少延迟
ASM文件由一些分配单元的集合组成
5.ASM 文件
对Oracle自身而言,实际上与标准的文件并没有太多区别
ASM文件一般位于磁盘组内创建的子目录内,磁盘组以加号开头,相当于Linux系统的根目录
如+DG1/oradb/datafile/system.258.346542
ASM可以为控制文件,数据文件,联机日志文件,参数文件,归档日志,备份等
不支持trace文件,可执行文件,OCR,Votingdisk等,注:
Oracle11gR2可支持
使用extentmaps来记录文件到磁盘的映射
6.I/O分布
可以使用条带化和镜像来保护数据
文件被平均分布在一个组内的所有磁盘中
磁盘的添加与删除,ASM会自动重新分配AU,因此也不存在碎片的问题
将I/O分批到不同的磁盘控制器提高了读写数据
7.Rebalance
ASM 文件被均衡地分布在一个磁盘组的所有磁盘中
磁盘添加时,当前磁盘组加载的所有磁盘中共享的部分extent将会被移植到新的磁盘中,直到重新分布完成才正常提供I/O均衡
磁盘删除或故障时,删除磁盘或故障磁盘的extent将会被均匀的分布到剩余的磁盘中
未使用force关键字drop磁盘操作,该磁盘上所有数据rebalance完毕后才被释放.即完毕后磁盘脱机,置磁盘头部状态为former
总之,任意存储性质改变(磁盘增加,删除,故障)都将导致rebalance,且由asm自动完成,无需人工干预,在一个时间段通常会锁定一个盘区
8.ASM磁盘组的管理
通常建议创建两个磁盘组,一个用于保存数据文件,一个用于保存闪回,备份恢复使用
FlashRecoveryArea 的大小取决于闪回内容需要保留的时间长短
尽可能将数据区与闪回区使用不同的物理通道
尽可能一次性mount所有需要用到的磁盘
建议使用性能,磁盘大小相近的磁盘。
假定两个故障组FG1,FG2各使用一块磁盘,则FG1内的磁盘应保持与FG2内的磁盘大小相同,
否则会以最小的磁盘空间作为可使用空间
9.ASM磁盘组的管理方式
SQLPlus
OEM
DBCA
ASMCMD
二、ASM磁盘创建及管理
1.查看ASM配置磁盘搜索信息
SQL> showparameterinstance_type
NAME TYPE VALUE
-----------------------------------------------------------------------------
instance_type string ASM
SQL> showparameterasm_diskst
NAME TYPE VALUE
-----------------------------------------------------------------------------
asm_diskstring string /dev/oracleasm/disks/VOL*
2.使用oracleasm创建磁盘
[root@oradb~]# /etc/init.d/oracleasmcreatediskVOL1 /dev/sdd1
Marking disk "VOL1" as anASM disk:
[ OK ]
[root@oradb~]# /etc/init.d/oracleasmcreatediskVOL2 /dev/sdd2
Marking disk "VOL2" as anASM disk:
[ OK ]
[root@oradb~]# /etc/init.d/oracleasmcreatediskVOL3 /dev/sde1
Marking disk "VOL3" as anASM disk:
[ OK ]
[root@oradb~]# /etc/init.d/oracleasmcreatediskVOL4 /dev/sde2
Marking disk "VOL4" as anASM disk:
[ OK ]
[root@oradb~]# /etc/init.d/oracleasmlistdisks
VOL1
VOL2
VOL3
VOL4
3.创建磁盘组语法
CREATE DISKGROUPdiskgroup_name
[{HIGH|NORMAL|EXTERNAL}REDUNDANCY]
[FAILGROUPfailgroup_name]
DISK [NAMEdisk_name][SIZEsize_clause][FORCE|NOFORCE] ...;
4.创建磁盘组
SQL> create diskgroupDG1normalredundancy disk '/dev/oracleasm/disks/VOL1' name VOL1;
create diskgroupDG1normalredundancy disk '/dev/oracleasm/disks/VOL1' name VOL1
*
ERRORatline1:
ORA-15018:
diskgroupcannotbecreated --标准冗余至少需要两块磁盘
ORA-15072:
commandrequiresatleast2failuregroups, discoveredonly1
SQL> create diskgroupDG1normalredundancy
2 disk '/dev/oracleasm/disks/VOL1' name DG1_VOL1 ,'/dev/oracleasm/disks/VOL2' name DG1_VOL2;
SQL> create diskgroupDG2normalredundancy --使用标准冗余创建磁盘组DG2
2 failgroupFG1 disk '/dev/oracleasm/disks/VOL3' name DG2_FG1_VOL3
3 failgroupFG2 disk '/dev/oracleasm/disks/VOL4' name DG2_FG2_VOL4;
SQL> create diskgroupDG_ext external redundancy disk '/dev/oracleasm/disks/VOL10' name DG_ext_VOL10; --外部冗余
SQL> select group_numbergno,name,state,type,total_mb,free_mb, --查看创建的磁盘组
2 required_mirror_free_mbrmfmb,usable_file_mbufmb
3 from v$asm_diskgroup;
GNO NAME STATE TYPE TOTAL_MB FREE_MB RMFMB UFMB
----------------------------------------------------------------------------------
1DG1 MOUNTED NORMAL 3066 2964 0 1482
2DG2 MOUNTED NORMAL 3066 2964 0 1482
3DG_EXT MOUNTED EXTERN 100 50 0 50
SQL> select group_numbergno,name,failgroupfgno,state,total_mb,free_mb,header_status from v$asm_disk;
GNO NAME FGNO STATE TOTAL_MB FREE_MBHEADER_STATU
--------------------------------------------------------------------------------
2DG2_FG2_VOL4 FG2 NORMAL 1537 1486MEMBER
2DG2_FG1_VOL3 FG1 NORMAL 1529 1478MEMBER
1DG1_VOL2 DG1_VOL2 NORMAL 1537 1486MEMBER
1DG1_VOL1 DG1_VOL1 NORMAL 1529 1478MEMBER
3DG_EXT_VOL10 DG_EXT_VOL10 NORMAL 100 50MEMBER
5.磁盘组添加故障组和成员
--为非故障组添加成员
SQL> alter diskgroupDG1 add disk '/dev/oracleasm/disks/VOL5' name DG1_VOL5;
--为DG2添加一个故障组FG3及成员
SQL> alter diskgroupDG2
2 add failgroupFG3 disk '/dev/oracleasm/disks/VOL6' name DG2_FG3_VOL6; --添加故障组及成员
--为DG2的个故障组各添加一个成员
SQL> alter diskgroupDG2
2 add failgroupFG1 disk '/dev/oracleasm/disks/VOL7'
3 add failgroupFG2 disk '/dev/oracleasm/disks/VOL8'
4 add failgroupFG3 disk '/dev/oracleasm/disks/VOL9';
6.删除磁盘组中的磁盘,故障组中的成员,磁盘组
SQL> alter diskgroupDG1 drop disk DG1_VOL5; --删除磁盘组DG1中的磁盘VOL5
SQL> alter diskgroupDG2 drop disk DG2_0003; --删除故障组中的单个成员
SQL> alter diskgroupDG2 drop disks in failgroupFG3; --删除故障组及所有成员,注意此时为dropdisks 复数形式
SQL> alter diskgroupDG1 drop disk DG1_VOL4 --删除磁盘组中的磁盘,同时添加故障组FG3
add failgroupFG3 disk '/dev/oracleasm/disks/VOL9' name DG1_VOL11;
SQL> drop diskgroupDG1; --删除磁盘组
7.调整磁盘组的容量
----故障组FG3的容量将被调整到G,如果磁盘空间不足,则调整失败
SQL> alter diskgroupDG2 resizedisks in failgroupFG3 size 10G;
8.手动Rebalance
SQL> alter diskgroupDG2rebalance power 3wait;
9.磁盘组的加载与卸载及内部一致性检查
SQL> alter diskgroup all dismount;
SQL> alter diskgroupDG2mount;
SQL> alter diskgroupDG2 check all;
10.查看磁盘组的partner
SQL> select name,state,type from v$asm_diskgroup where group_number=3; --查看磁盘组DG3的信息
NAME STATE TYPE
--------------------------------
DG3 MOUNTED NORMAL
SQL> select grp,disk,number_kfdpartner from x$kfdpartner where grp=3;
GRP DISK NUMBER_KFDPARTNER
-------------------------------------
3 0 1 --磁盘组DG3使用了个磁盘,且冗余度为标准冗余
3 0 2 --磁盘组的partner 为磁盘组,2
3 1 0 --磁盘组的partner 为磁盘组,2
3 1 2
3 2 0 --磁盘组的partner 为磁盘组,1
3 2 1
三、磁盘组中目录、文件的管理
1.为磁盘组增加目录
SQL> alter diskgroupDG2 add directory '+DG2/datafile'; --为磁盘组增加目录
SQL> alter diskgroupDG2renamedirectory '+DG2/datafile' to '+DG2/dtfile'; --重命名目录
SQL> alter diskgroupDG2 drop directory '+DG2/dtfile'; --删除目录
SQL> alter diskgroupDG2 add directory '+DG2/asmdb/datafile'; --为磁盘组增加目录
alter diskgroupDG2 add directory '+DG2/asmdb/datafile'
*
ERRORatline1:
ORA-15032:
not all alterationsperformed
ORA-15173:
entry 'asmdb' does not exist in directory '/' --收到错误提示,asmdb目录不存在,必须要先创建
SQL> alter diskgroupDG2 add directory '+DG2/asmdb/'; --首先添加asmdb
SQL> alter diskgroupDG2 add directory '+DG2/asmdb/datafile'; --再次添加目录成功
2.为文件添加别名,重命名别名
SQL> alter diskgroupDG1 add alias '+DG1/asmdb/datafile/users.dbf' --添加别名
2 for '+DG1/asmdb/datafile/users.263.734885485' ;
SQL> select name,group_number,file_number,alias_index,alias_directory,system_created
2 from v$asm_alias where file_number=263;
NAME GROUP_NUMBERFILE_NUMBERALIAS_INDEXAS
-------------------------------------------------------------
USERS.263.734885485 1 263 215NY
users.dbf 1 263 216NN
SQL> alter diskgroupDG1renamealias '+DG1/asmdb/datafile/users.dbf' --重命名一个别名
2 to '+DG1/asmdb/datafile/users01.dbf';
SQL> select name,group_number,file_number,alias_index,alias_directory,system_created
2 from v$asm_alias where file_number=263;
NAME GROUP_NUMBERFILE_NUMBERALIAS_INDEXAS
-------------------------------------------------------------
USERS.263.734885485 1 263 215NY
users01.dbf 1 263 216NN
3.为文件删除别名
SQL> alter diskgroupDG1 drop alias '+DG1/asmdb/datafile/users01.dbf';
四、TEMPLATE的管理
TEMPLATE是一个模板,为数据库中新增的文件定义了缺省分配单元大小,以及冗余级别。
对于不同类型的文件,使用了不同的AUs以及
不同的冗余度。
如对控制文件采用高度冗余,条带使用精细化条带(128kb),而参数文件,数据文件则采用标准冗余,粗级别条带(1MB)。
这个特性正是Oracleasm 管理不同于外部冗余的特性,即可以基于文件的不同属性而使用不同级别的冗余度和不同大小的条带化分配单
元。
当然,我们可以根据不同的需求来修改该模板,使得创建新的文件时根据需要来应用其冗余和条带花特性。
系统管理人员能改变系统缺
省template, 但不能删除该删除,管理员能增加自己的template,然后在该模板上创建数据文件。
下面是缺省情况下DG1中新增文件所使用的缺省的条带化及其冗余级别
SQL> select * from v$asm_template where group_number=1;
GROUP_NUMBERENTRY_NUMBERREDUNDSTRIPES NAME
------------------------------------------------------------------------
1 0MIRRORCOARSEYPARAMETERFILE
1 1MIRRORCOARSEYDUMPSET
1 2HIGH FINE YCONTROLFILE
1 3MIRRORCOARSEYARCHIVELOG
1 4MIRRORFINE YONLINELOG
1 5MIRRORCOARSEYDATAFILE
1 6MIRRORCOARSEYTEMPFILE
1 7MIRRORCOARSEYBACKUPSET
1 8MIRRORCOARSEYAUTOBACKUP
1 9MIRRORCOARSEYXTRANSPORT
1 10MIRRORCOARSEYCHANGETRACKING
1 11MIRRORFINE YFLASHBACK
1 12MIRRORCOARSEYDATAGUARDCONFIG
1.创建TEMPLATE的语法
ALTER DISKGROUPdisk_group_name ADD TEMPLATEtemplate_name
ATTRIBUTES ([{MIRROR|HIGH|UNPROTECTED}][{FINE|COARSE}]);
2.添加TEMPLATE
SQL> alter diskgroupDG1 add templatetemplate_oneattributes (highfine);
SQL> alter diskgroupDG1 add templatetemplate_twoattributes (unprotected);
3.修改已存在的TEMPLATE
SQL> alter diskgroupDG1 alter templatetemplate_oneattributes (coarse);
4.删除TEMPLATE
SQL> alter diskgroupDG1 drop templatetemplate_two;
5.基于模板创建数据文件
SQL> create tablespacetestdatafile '+DG1/asmdb/datafile/test.dbf(template_one)' size 10M;
6.查看当前系统中文件使用的模板
SQL> select name,redundancy,striped
2 from v$asm_aliasa join v$asm_fileb
3 on a.file_number=b.file_number
4 and a.group_number=b.group_number
5 order by name;
NAME REDUNDSTRIPE
-----------------------------------------------
Current.256.734885363 HIGH FINE
SYSAUX.260.736463679 MIRRORCOARSE
TBS_RMAN.265.735409761 MIRRORCOARSE
TEMP.262.734885475 MIRRORCOARSE
SYSTEM.259.734885389 MIRRORCOARS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASM 管理