ASM磁盘基本管理与维护文档格式.docx
- 文档编号:22304748
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:13
- 大小:440.36KB
ASM磁盘基本管理与维护文档格式.docx
《ASM磁盘基本管理与维护文档格式.docx》由会员分享,可在线阅读,更多相关《ASM磁盘基本管理与维护文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
同时,ASM实例还可以向数据库实例传递有关文件布局的信息。
通过这种方式,数据库实例就可以直接访问磁盘组中存储的文件。
图2显示了ASM的一般体系结构。
从图2可以看出,ASM实例与数据库实例进行通信的桥梁是ASMB进程,此进程运行在每个数据库实例上,是两个实例间信息交换的通道。
ASMB进程先利用磁盘组名称通过CSS获得管理该磁盘组的ASM实例连接串,然后建立一个到ASM的持久连接,这样两个实例之间就可以通过这条连接定期交换信息,同时这也是一种心跳监控机制。
另外,在ASM实例中还存在另外一个新的进程,即RBAL,此进程负责规划和协调磁盘组的重新平衡活动。
除此之外,ASM实例还有一些与数据库实例中的进程相同的后台进程,例如LGWR、SMON、PMON、DBWR、CKPT等。
如果一个数据库实例使用ASM作为存储,那么它将多出两个后台进程,即RBAL和ASMB。
RBAL负责打开磁盘组中所有磁盘和数据,而ASMB负责和ASM实例进程通信。
三、管理ASM实例
在使用ASM作为数据存储时,ASM实例管理显得非常重要,Oracle提供了丰富的管理功能,对ASM实例进行管理需要具备SYSDBA权限,在Oracle11g中可以使用一个新角色,即SYSASM,此角色只用于管理ASM实例。
1.创建ASM实例
创建ASM实例有两种方法,第一种是利用dbca创建,这种方法只需运行DatabaseConfigurationAssistant(DBCA),然后根据提示即可创建一个ASM实例,此种方式在前面已有讲述,这里不再多说。
第二中方法是用命令行方式创建ASM实例,下面进行简单介绍。
(1)创建ASM磁盘
可以使用RAID划分的LUN、分区和裸设备等来创建ASM磁盘,但是在使用LUN、分区或裸设备时,要注意将属主和属组改为Oracle用户及其对应的组,这个在前面节已经讲述过,另外一种简单的方法就是使用Oracle提供的ASMLib来完成ASM磁盘的创建,下面将讲述这种方法。
在创建ASM实例之前,首先应该确保节点上已经安装了ASMlib包,同时确认ASMLib是否已经自动加载:
[root@node1~]#lsmod|greporacleasm
oracleasm
46356
1
然后,通过ASMlib提供的oracleasm将已经划分好的磁盘分区转化为ASM磁盘,例如:
[root@node1~]#/etc/init.d/oracleasmcreatediskASMDISK1/dev/sdc5
Markingdisk"
/dev/sdc5"
asanASMdisk[
OK
]
[root@node1~]#/etc/init.d/oracleasmcreatediskASMDISK2/dev/sdc6
/dev/sdc6"
[root@node1~]#/etc/init.d/oracleasmcreatediskASMDISK3/dev/sdc7
/dev/sdc7"
[root@node1~]#/etc/init.d/oracleasmcreatediskASMDISK4/dev/sdc8
/dev/sdc8"
[root@node1~]#/etc/init.d/oracleasmcreatediskASMdisk5/dev/sdc9
/dev/sdc9"
创建完ASM磁盘后,可以查看系统的/dev/oracleasm/disks/目录下是否已经生成磁盘设备,可以采用的命令如如下:
[root@node1~]#ll/dev/oracleasm/disks/ASMDISK*
brw-rw----1oracleoinstall8,21Sep1023:
40/dev/oracleasm/disks/ASMDISK1
brw-rw----1oracleoinstall8,22Sep1023:
40/dev/oracleasm/disks/ASMDISK2
brw-rw----1oracleoinstall8,23Sep1023:
36/dev/oracleasm/disks/ASMDISK3
brw-rw----1oracleoinstall8,24Sep1023:
40/dev/oracleasm/disks/ASMDISK4
brw-rw----1oracleoinstall8,25Sep1023:
40/dev/oracleasm/disks/ASMDISK5
也可以通过如下方式查看:
[root@node1~]#serviceoracleasmlistdisks
ASMDISK1
ASMDISK2
ASMDISK3
ASMDISK4
ASMDISK5
如果要删除ASM磁盘可通过以下命令:
[root@node1~]#/etc/init.d/oracleasmdeletediskASMDISK5
RemovingASMdisk"
ASMdisk5"
[
在RAC环境中,要注意另外一个节点是否能够发现对应的ASM磁盘,执行如下命令,让另外一个节点来获取这种变化。
[root@node2~]#/etc/init.d/oracleasmscandisks
到此位置,ASM磁盘已经创建完毕了。
(2)初始化参数
启动ASM实例只需要如下几个参数即可,利用这些参数可以实现ASM实例的内存的自动分配和自动管理。
下面介绍ASM实例初始化参数:
instance_type=asm
cluster_database=true
DB_UNIQUE_NAME=+ASM
ASM_POWER_LIMIT=1
large_pool_size=60M
asm_diskgroups='
FLASH_DISK'
'
ARCH_DISK'
DATA_DISK'
asm_diskstring='
/dev/oracleasm/disks/*'
每个参数的含义如下:
?
instance_type,指定实例的类型,对于ASM实例,应设置为ASM
cluster_database,指定是否是数据库集群,true表示是ASM集群
DB_UNIQUE_NAME,指定ASM实例的名称,默认是+ASM
ASM_POWER_LIMIT,该参数用来控制ASM中数据的负载均衡速度
large_pool_size,设置大池的大小,由于ASM文件的分配单元映射是从large_pool分配的,因此large_pool_size至少要8MB,建议越大越好
asm_diskgroups,指定实例启动时可用的ASM磁盘组,ASM实例将在启动时自动挂载这些磁盘组
asm_diskstring,用于限制ASM实例可用于创建磁盘组的磁盘设备。
如果该值为NULL,则ASM实例可见的所有磁盘都可以成为创建磁盘组的可选磁盘
(3)创建密码文件
[oracle@node1~]$su-oracle
[oracle@node1~]$cd$ORACLE_HOME/dbs
[oracle@node1~]$orapwdfile=orapw+ASMpassword=oracle
(4)创建目录结构
[oracle@node1~]$su–oracle
[oracle@node1~]$cd$ORACLE_HOME/dbs
[oracle@node1~]$mkdir–p$ORALCE_BASE/admin/+ASM/udump
[oracle@node1~]$mkdir–p$ORALCE_BASE/admin/+ASM/bdump
[oracle@node1~]$mkdir–p$ORALCE_BASE/admin/+ASM/adump
[oracle@node1~]$mkdir–p$ORALCE_BASE/admin/+ASM/cdump
2.启动ASM实例
无论在RAC环境中还是单实例环境,ASM实例都需要用到CSS进程,在RAC环境中,启动CRS后CSS已经运行,而在单实例环境下,需要以root用户运行脚本,初始化CSS服务,否则,在启动ASM实例时会报如下错误:
ORA-29701:
unabletoconnecttoClusterManager
执行初始化脚本的过程如下:
[root@node1~]#$ORACLE_HOME/bin/localconfigadd
/etc/oracledoesnotexist.Creatingitnow.
SuccessfullyaccumulatednecessaryOCRkeys.
CreatingOCRkeysforuser'
root'
privgrp'
..
Operationsuccessful.
ConfigurationforlocalCSShasbeeninitialized
CleaningupNetworksocketdirectories
SettingupNetworksocketdirectories
Addingtoinittab
Startupwillbequeuedtoinitwithin30seconds.
CheckingthestatusofnewOracleinitprocess...
ExpectingtheCRSdaemonstobeupwithin600seconds.
ClusterSynchronizationServicesisactiveonthesenodes.
node1
ClusterSynchronizationServicesisactiveonallthenodes.
OracleCSSserviceisinstalledandrunningunderinit(1M)
然后启动ASM实例:
[oracle@node1~]$exportORACLE_SID=+ASM
[oracle@node1~]$sqlplus/assysdba
SQL>
startup
ASMinstancestarted
TotalSystemGlobalArea
134217728bytes
FixedSize
1218124bytes
VariableSize
107833780bytes
ASMCache
25165824bytes
ORA-15110:
nodiskgroupsmounted
因为首次启动ASM实例并没有创建ASM磁盘组,所以显示15110错误是正常的。
3.管理ASM磁盘组
ASM磁盘组是作为逻辑单元进行统一管理的一组磁盘,在ASM实例中,可以创建和添加新的磁盘组,可以修改现有的磁盘组,在其中添加一个磁盘或者删除一个磁盘,也可以删除现有的磁盘组。
(1)添加磁盘组
creatediskgroupFLASH_DISKexternalredundancydisk'
/dev/oracleasm/disks/ASMDISK1'
nameflashdisk;
Diskgroupcreated.
creatediskgroupARCH_DISKexternalredundancydisk'
/dev/oracleasm/disks/ASMDISK2'
namearchdisk1;
creatediskgroupDATA_DISKnormalredundancydisk'
/dev/oracleasm/disks/ASMDISK4'
namedatadisk1,'
/dev/oracleasm/disks/ASMDISK5'
namedatadisk2;
(2)查看磁盘组状态
selectname,statefromv$asm_diskgroup;
NAME
STATE
-------------------
--------------
FLASH_DISK
MOUNTED
ARCH_DISK
DATA_DISK
(3)卸载FLASH_DISK磁盘组
alterdiskgroupFLASH_DISKdismount;
Diskgroupaltered.
---------------------------
-----------
DISMOUNTED
MOUNTED
(4)挂载FLASH_DISK磁盘组
alterdiskgroup
FLASH_DISKmount;
------------------------------
(5)查看磁盘名与裸设备对应关系
selectname,pathfromv$asm_disk_stat;
PATH
-------------------
--------------------------------------
/dev/oracleasm/disks/ASMDISK3
DATADISK2
/dev/oracleasm/disks/ASMDISK5
DATADISK1
/dev/oracleasm/disks/ASMDISK4
ARCHDISK1
/dev/oracleasm/disks/ASMDISK2
FLASHDISK
/dev/oracleasm/disks/ASMDISK1
(6)查看每个磁盘组的可用大小
selectname,allocation_unit_size,total_mbfromv$asm_diskgroup;
ALLOCATION_UNIT_SIZE
TOTAL_MB
------------------
--------------------------------
----------
1048576
3815
DATA_DISK
954
(7)向磁盘组中增加一个磁盘
ALTERDISKGROUPARCH_DISKADDDISK'
/dev/oracleasm/disks/ASMDISK3'
nameARCHDISK2;
查看每个磁盘组的可用大小
-------------------------------
----------
4292
----------------------------------------
/dev/oracleasm/disks/ASMDISK5
/dev/oracleasm/disks/ASMDISK4
ARCHDISK2
/dev/oracleasm/disks/ASMDISK3
/dev/oracleasm/disks/ASMDISK2
/dev/oracleasm/disks/ASMDISK1
可以看出,磁盘组ARCH_DISK的大小发生变化了,表明添加磁盘成功。
(8)从磁盘组中删除一个磁盘:
ALTERDISKGROUPARCH_DISKDROPDISKARCHDISK2;
(9)删除一个磁盘组:
dropdiskgroup
FLASH_DISK;
Diskgroupdropped.
当有数据库使用ASM的磁盘组时,是无法卸载和删除这个磁盘组的。
ASM实例如果宕掉,那么使用ASM的数据库实例也会宕掉。
在RAC环境中,在删除一个磁盘组之前,其他节点的ASM实例必须将这个要删除的磁盘组卸载。
4.关闭ASM实例
关闭ASM实例的命令和关闭数据库实例的命令相同,但只有在没有任何数据库实例连接到该ASM实例的情况下,才能正常关闭ASM实例,如果至少有一个数据库实例与之连接,会提示以下错误:
ORA-15097:
cannotSHUTDOWNASMinstancewithconnectedRDBMSinstance
此时,如果对该ASM实例强制执行SHUTDOWNABORT命令,那么ASM实例将被关闭,任何与之连接的数据库实例最终也将自动关闭,同时报以下错误:
ORA-15064:
communicationfailurewithASMinstance
ASM实例被强制关闭后,在下次启动时,会要求进行恢复。
5.
ASMCMD命令
Oracle在10g版本中提供了ASMCMD命令,通过这个命令可以管理存储在ASM磁盘中的数据。
下面简单介绍ASMCMD命令的使用方法。
在使用ASMCMD命令时必须启动ASM实例,然后指定ORACLE_HOME和ORACLE_SID,例如:
[oracle@node-rac1~]$exportORACLE_SID=+ASM1
[oracle@node-rac1~]$asmcmd
ASMCMD>
还可以使用“asmcmd-p”,加上“-p”参数可以显示当前路径。
下面是ASMCMD提供的一些可用命令,其中oracle11g新增的命令有cp、md_backup、md_restore。
?
commands:
--------
help
cd
cp
du
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ASM 磁盘 基本 管理 维护