1.
ASM
简介
ASM 不是一个通用的文件系统,并只能用于 Oracle数据文件、重做日志以及控制文件,是一种用于管理磁盘的工具
由于操作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复操作的唯一途径就是通过恢复管理器 (RMAN)。
ASM从OracleDatabase 11g R2开始,ASM与Oracle GridInfrastrueture集成在一起。
系统和存储管理员大多喜欢使用ASMCMD使用工具来管理ASM。
ASM可以自动管理磁盘组并提供有效的数据冗余功能。
2. 安装配置 ASM磁盘
ASMlib是一个存储管理界面
下载并配置asmlib所需要的软件包
一共需要3个包可供使用,两个基本的rpm包是: oracleasmlib包,它提供实际ASM库
还有oracleasm-support包,它提供用于配置和启动ASM驱动程序的实用工具。第三个包最关键的包kmod-oracleasm,它为ASM库提供核心驱动程序。
http://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel6-1940776.html
以上地址只可以下载到oracleasmlib、 oracleasm-support两个包,还有一个最关键的包kmod-oracleasm需要以下方式下载:
下载kmod-oracleasm软件包
下载oracle提供的yum配置文件,从Oracle服务器上安装kmod-oracleasm文件:
[root@racnode1yum.repos.d]# wget http://public-yum.oracle.com/public-yum-ol6.repo
wgethttp://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
yuminstall kmod-oracleasm -y
[root@rac1 src]# rpm -ivhoracleasmlib-2.0.4-1.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:oracleasmlib ########################################### [100%]
[root@rac1 src]# rpm -ivhoracleasm-support-2.1.8-1.el6.x86_64.rpm
Preparing... ########################################### [100%]
1:oracleasm-support ###########################################[100%]
注意:全部安装完成后需要重启机器才不会报错
3. 配置ASM驱动(ASMlib)
[root@racnode1~]#oracleasm configure -i
Configuringthe Oracle ASM library driver.
Thiswill configure the on-boot properties of the Oracle ASM library
driver. The following questions will determinewhether the driver is
loadedon boot and what permissions it will have. The current values
willbe shown in brackets ('[]'). Hitting<ENTER> without typing an
answerwill keep that current value. Ctrl-Cwill abort.
Defaultuser to own the driver interface []: grid
Default group to own the driverinterface []: asmadmin
StartOracle ASM library driver on boot (y/n) [n]: y
Scanfor Oracle ASM disks on boot (y/n) [y]: y
WritingOracle ASM library driver configuration: done
初始化
[root@racnode1~]#oracleasm init
Creating/dev/oracleasm mount point: /dev/oracleasm
Loadingmodule "oracleasm": oracleasm
Configuring"oracleasm" to use device physical block size
MountingASMlib driver filesystem: /dev/oracleasm
创建ASM磁盘
[root@racnode1~]# oracleasmcreatedisk asmdisk1 /dev/sdb1
Writingdisk header: done
Instantiatingdisk: done
[root@racnode1~]# oracleasmcreatedisk asmdisk2 /dev/sdc1
Writingdisk header: done
Instantiatingdisk: done
如果有多个就继续创建。完成后执行oracleasmscandisks:
[root@racnode1~]# oracleasm scandisks
Reloadingdisk partitions: done
Cleaningany stale ASM disks...
Scanningsystem for ASM disks...
查看asm 磁盘
[root@racnode1~]#oracleasm listdisks
ASMDISK1
ASMDISK2
4. 安装Oracle GridInfrastrueture集群
这里我们创建ASM disk group,给一个名字“DATA” ,选择Redundancy External。不镜像ASM中的数据,使用外部存储阵列提供冗余。
三种不同的冗余方式如下:(对文件进行镜像)
高度冗余(high redundancy):表示Oracle提供3份镜像来保护数据,以提高性能和数据的安全,最少需要三块磁盘(三个failuregroup);有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。(有两个镜像副本)。
默认冗余(normal redundancy):表示Oracle提供2份镜像来保护数据,有效磁盘空间是所有磁盘设备大小之和的1/2 (使用最多)(有一个镜像副本)。
外部冗余(external redundancy):表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术;有效磁盘空间是所有磁盘设备空间的大小之和。
如果底层存储不受RAID配置的保护,就应当为ASM磁盘组选择正确的冗余!!!
给ASM的两个默认用户SYS、ASMSNMP配置为相同的口令,注意的是密码为强度密码!!
数据库管理员(OSDBA,一般为 dba)
单独的 ASM OSDBA 组 (asmdba),其成员包括 grid 和 oracle,拥有对Oracle ASM 的访问权限。
数据库操作员组(OSOPER,一般为 oper)
单独的 ASM OSOPER 组 (asmoper),其成员包括 grid,拥有有限的 Oracle ASM 管理员权限(包括启动和停止 Oracle ASM 实例的权限)。
自动存储管理组(一般为 asmadmin)必须要有
单独的 OSASM 组 (asmadmin),其成员拥有 SYSASM 权限,可以管理 Oracle Clusterware 和 Oracle ASM。
5. ASM启动和关闭操作选项
启动和关闭ASM实例
ASM实例的启动和关闭操作与RDBMS数据库实例类似的选项:
执行STARTUP操作
FORCE,这个选项强行关闭,执行的是SHUTDOWNABORT操作,然后再启动;
MOUNT,执行启动ASM实例并挂载参数ASM_DISKGROUPS指定的磁盘组操作;
NOMOUNT,执行启动ASM实例操作但是不挂载任何磁盘组;
OPEN,注意,ASM实例没有OPEN这个选项操作,实际上是MOUNT之后OPEN的。
执行SHUTDOWN操作
NORMAL,ASM实例等待所有的连接退出后才关闭实例;
IMMEDIATE,不等待会话退出但是等待会话完成后关闭;
TRANSACTIONAL,与IMMEDIATE等同;
ABORT,立即关闭。
6. ASMCMD管理工具的使用命令
在Oracle 环境下,使用grid帐号执行
运行asmcmd进入asm命令模式,如:
[grid@oradb-node1~]$ asmcmd
ASMCMD>
ASMCMD>du //显示指定的ASM目录下ASM文件占用的所有磁盘空间
ASMCMD>ls -ls //列出ASM目录下的内容及其属性、磁盘空间占用
ASMCMD>pwd //查看当前路径
ASMCMD>cd ../DATA //切换目录
ASMCMD>lsct //列出当前ASM客户端的信息
ASMCMD>lsdg //列出所有磁盘组及其属性
ASMCMD>lsof //列出数据文件信息
ASMCMD>lsdsk //列出盘的信息
ASMCMD> rm -f *.dbf //删除当前所有扩展名为 .dbf 文件
ASMCMD> rm -fr orcldemo //删除当前 orcldemo 目录
磁盘组管理命令
chdg 修改磁盘组(增加磁盘,删除磁盘,调整磁盘大小,重新平衡磁盘组,基于XML配置文件的)
chkdg 检查或修复磁盘组
dropdg 删除磁盘组
iostat 显示磁盘IO统计,信息来源于V$ASM_DISK_IOSTAT视图
lsattr 显示磁盘组属性,信息来源于V$ASM_ATTRIBUTE视图
lsdg 显示已挂载的磁盘组和他们的信息,与ls -ls输出结果一样,信息来源于V$ASM_DISKGROUP_STAT视图,如果指定了--discovery,则查询V$ASM_DISKGROUP
lsdsk 显示ASM磁盘,信息来源于V$ASM_DISK_STAT视图;连接模式查询V$ASM_DISK_STAT and V$ASM_DISK返回信息;非连接模式通过扫描磁盘头来返回信息
lsod 显示已打开的设备
md_backup 创建已挂载的磁盘组元数据备份
md_restore 恢复磁盘组元数据备份
mkdg 创建磁盘组,基于XML配置文件创建。注意:mkdg创建的磁盘组只挂载在本地节点
mount 挂载磁盘组
offline 使磁盘或失效磁盘组离线
online 使磁盘或失效磁盘组上线
rebal 重新平衡磁盘组
remap 重定位数据在磁盘上的物理块的范围内
setattr 设置磁盘组属性
umount 卸载磁盘组