技术干货 | DBA系列之管理数据库实例

Posted 海文国际

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术干货 | DBA系列之管理数据库实例相关的知识,希望对你有一定的参考价值。

ASM的优点

ASM的概念

ASM的主要功能和优点

对文件而不是逻辑卷进行条带化

提供联机磁盘重新配置和动态重新平衡功能

允许调整重新平衡速度

以每个文件为基础提供冗余

只支持Oracle DB文件

可识别支持集群环境

可自动安装

使用ASM可以免除

I/O性能优化

数据文件移动和重新组织

文件名管理

逻辑卷管理

文件系统管理

集群文件系统管理

裸设备管理

使用ASM可以显著减少

–逻辑单元号(LUN)管理

–逻辑单元数量较少,大小较大

–数据库管理员对系统管理员的依赖性

–手动执行维护任务时可能发生的错误


管理ASM实例

ASM实例

ASM实例是ASM的进程和内存组件的组合

技术干货 | DBA系列之管理数据库实例

ASM实例

ASM实例的第二部分是后台进程。

其中一些进程如下所示

ARCn:归档进程

CKPT:检查点进程

DBWn:数据库写进程

DIAG:诊断进程

Jnnn:作业队列进程

LGWR:日志写进程

PMON:进程监视器

PSP0:进程衍生进程

QMNn:队列监视器

RECO:恢复器进程

SMON:系统监视器

VKTM:虚拟计时器进程

MMAN:内存管理器进程

若ASM是以集群的方式建立的,则ASM实例中运行与集群管理相关的进程

LMON:全局入队服务监视器进程

LMDn:全局入队服务守护程序

LMSn:全局高速缓存服务进程

LCKn:锁定进程

ASM实例-主要进程

ASM实例的主要进程负责与ASM相关的活动

技术干货 | DBA系列之管理数据库实例

ASM实例-初始化参数

ASM实例使用数据库实例初始化参数中的一个小的子集。

技术干货 | DBA系列之管理数据库实例

ASM实例-初始化参数

上面列出的八个参数需要为ASM实例创建的唯一几个非默认参数。

ASM实例与数据库实例不同,在全部的344个数据库实例初始化参数中,只有大约74个参数可以用于ASM实例。

除上述8个参数以外的参数,对于大多数情况下,默认值即可满足。也可以根据需要进行设置。

ASM实例使用AMM内存管理,即使未设置MEMORY_TARGET参数也是如此。

INSTANCE_TYPE:

必须设置为ASM,标识启动的实例是ASM,而不是数据库实例。

这是唯一一个必须定义的参数。对于数据库实例,该参数应设置为RDBMS。

ASM_POWER_LIMIT:

控制重新平衡操作的速度,即指定磁盘rebalance的程度。值的范围从1到11,11表示最快,也意味着占用更多的资源。默认值为1,表示最慢,意味着占用的最少的资源,对当前系统的I/O及负载影响最小,rebalance耗时最长。

这个参数的设置要根据实际情况衡量。

该参数设置的只是默认值,该参数可以在实例运行过程中,动态的修改。

ASM实例修改初始化参数的方式与数据库实例完全相同:alter system set asm_power_limit=5;

ASM_DISKSTRING:

是一个与操作系统相关的参数值。ASM使用它来限制搜索时考虑的磁盘集,即设置ASM启动时需要检查的磁盘。

该选项可以同时指定多个值,且支持通配符,比如检查/dev/sd*。

默认值为空字符,为空的话,表示ASM查找系统中所有ASM拥有读写权限的所有设备。

设置合理的值,可以减少ASM启动搜索磁盘的时间。

注:该参数一般不需要手动的修改。ASM能够自动更新该初始化参数。

ASM_DISKGROUPS:

是ASM实例启动时或使用ALTER DISKGROUP ALL MOUNT命令时,ASM实例要挂载的磁盘组的名称列表。

如果为空的话,那么ASM实例启动时就仅仅启动到nomount状态。

如何ASM实例使用SPFILE的话,该参数一般不需要手动修改,ASM能够自动更新该初始化参数

Oracle Restart会自动挂载所有相关的磁盘组,即使该初始化参数未设置。

该参数没有默认值。

LAGRE_POOL_SIZE:

该参数指定大型池分配的大小(以字节表示)。大型池用于ASM实例的并行操作。

ASM实例内存管理使用AMM,所以此参数用作大型池分配时,不能低于的最小大小。

REMOTE_LOGIN_PASSWORDFILE:

该参数指定Oracle软件是否检查口令文件。

默认值是EXCLUSIVE。

上面列出的八个参数需要为ASM实例创建的唯一几个非默认参数。

ASM实例与数据库实例不同,在全部的344个数据库实例初始化参数中,只有大约74个参数可以用于ASM实例。

除上述8个参数以外的参数,对于大多数情况下,默认值即可满足。也可以根据需要进行设置。

ASM实例使用AMM内存管理,即使未设置MEMORY_TARGET参数也是如此。

数据库实例请求创建Oracle DB文件的过程

技术干货 | DBA系列之管理数据库实例

ASM实例:动态性能视图

ASM实例托管基于内存的元数据表,这些表通过动态性能视图呈现。

ASM实用程序使用SQL语言访问这些表来检索仅含元数据的信息

包含许多专用的ASM相关视图,例如:

技术干货 | DBA系列之管理数据库实例

ASM系统权限

ASM实例没有数据字典,所以连接ASM只能使用下列系统权限。

创建SYS用户时,会自动为其分配SYSASM权限。

技术干货 | DBA系列之管理数据库实例

使用EM管理ASM用户

技术干货 | DBA系列之管理数据库实例

使用SQL*Plus启动和停止ASM实例

使用SQL*Plus启动和停止ASM实例与启动和停止数据库实例方式相似。

技术干货 | DBA系列之管理数据库实例

使用SQL*Plus启动和停止ASM实例

使用SQL*Plus启动和停止ASM实例与启动和停止数据库实例方式相似。

技术干货 | DBA系列之管理数据库实例

使用SQL*Plus启动和停止ASM实例

使用SQL*Plus启动和停止ASM实例与启动和停止数据库实例方式相似。

技术干货 | DBA系列之管理数据库实例

使用SRVCTL启动和停止ASM实例。

可以使用Server Control实用程序(srvctl)启动和停止ASM实例以及由GIGrid Infrastructure)管理的其它资源。该程序位于GRID安装目录下。

技术干货 | DBA系列之管理数据库实例

报告ASM实例的状态

技术干货 | DBA系列之管理数据库实例

启动和停止ASM实例使用asmcmd

asmcmd实用程序提供了一个访问ASM的命令行界面,无需使用SQL语言。

技术干货 | DBA系列之管理数据库实例

启动和停止ASM实例使用asmcmd

asmcmd实用程序提供了一个访问ASM的命令行界面,无需使用SQL语言。

技术干货 | DBA系列之管理数据库实例


管理ASM磁盘组

磁盘组概览

技术干货 | DBA系列之管理数据库实例

磁盘组概览

磁盘组:是一个或多个磁盘的逻辑分组。ASM将其作为一个集合来管理。每个磁盘组都包含与自身相关联的元数据。

在磁盘组内分配文件空间。磁盘组中存储的文件的内容将在该磁盘组的磁盘中平均分布或条带化,以便消除热点并在各磁盘上提供一致的性能。

每个ASM文件都完全包含在一个磁盘组中。但是一个磁盘组可以包含属于多个数据的文件。而一个数据库可以使用来自多个磁盘组的没文件。

磁盘组的关键属性是它的冗余设置。有三种冗余设置:

外部冗余:ASM不提供任何数据镜像。

正常冗余:ASM提供数据双向镜像。

高冗余:ASM提供三向镜像。

ASM磁盘

是为ASM磁盘组预配的存储设备

通过正常O/S接口访问

必须可由ASM所有者读写

必须可由集群中所有节点访问

在不同的节点上可以有不同的O/S名称或路径

可以是:

整个物理盘或物理磁盘的分区

存储阵列中的磁盘或分区

逻辑卷LV或逻辑单元LUN

网络连接文件NFS 

ASM分配单元

ASM磁盘划分为分配单元(AU):

在创建磁盘组时可以配置AU大小。

AU默认大小为1MB:

能够被数据库缓存;能够提供高效的后续访问

允许的AU大小:

1、2、4、8、16、32或64MB

在超大型数据库(VLDB)中或使用专门的存储硬件时,较大的AU可能非常有用。

ASM文件

由AU组成的ASM区的集合

可变大小的区支持大型文件

对数据库内核显示为普通文件

文件名以“+”开头

例如:+DATA/orcl/datafile/system.256.689832921

磁盘组中的磁盘上平均分布

根据磁盘组中定义的策略进行镜像

区映射

–文件区与分配单元的关系

•0~19999区:1个AU大小

•20000~39999区:4个AU大小

•40000区以上:16个AU大小

–任何两上连续分配的分配单元一定不在同一块磁盘上

技术干货 | DBA系列之管理数据库实例

条带化

技术干货 | DBA系列之管理数据库实例

条带化

什么是条带化

条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到不同磁盘上的方法。简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法。

条带深度和条带宽度

条带深度

也叫条带大小,指的是条带的大小

减小条带的大小,更小的数据块分散到更多的磁盘上,提高写入性能,增加寻址时间。

增大条带的大小,更大的数据块,降低写入性能,提高了寻址能力

设置多大的条带深度比较好,要根据应用的实际需求

条带宽度

是指同时可以并发读或写的条带数量,例如,条带深度为128K,条带宽度为8,一次读写128K*8=1MB

更高的条带宽度,提供更好的传输性能,例如818G的硬盘做条带化,要优于436G硬盘做条带化。

•条带化粒度

–在ASM中,条带化主要有两种粒度:

•不可调粗粒度(磁盘组的所有磁盘中执行I/O负载平衡)

–一个条带就是一个AU

–条带深度是1M–条带宽度一直是1•可调细粒度(改善I/O等待时间)

–条带深度默认为128K–条带宽度和条带深度受下面两个

参数控制

•_asm_stripewidth

•_asm_stripesize

•默认为8

–条带深度最大为1MB

技术干货 | DBA系列之管理数据库实例

失败组(Failure Group

技术干货 | DBA系列之管理数据库实例

初始化参数ASM_PREFERRED_READ_GROUP的作用

技术干货 | DBA系列之管理数据库实例

ASM的扩展性

最多支持63个磁盘组

最多支持10000个磁盘

最大支持4PB/磁盘

最大支持40 Exabyte/ASM存储

最大支持1W个文件/磁盘组

单个文件最大大小

外部冗余时最大35TB

标准冗余时最大5.8TB

高冗余度时最大3TB

管理磁盘组

ASM实例主要目的是管理磁盘组和保护数据

ASM实例将文件分布传送到数据库实例。

通过ASM实例,使用SYSASMSYSDBA权限来管理磁盘组。

添加新磁盘组

修改现有磁盘组来添加、删除磁盘以及其它磁盘操作

删除磁盘组

技术干货 | DBA系列之管理数据库实例

•使用SQL*Plus创建和删除磁盘组

–首先要指定磁盘组名称

–指定冗余度

•HIGH:高冗余(三路)

•NORMAL:标准冗余(两路)

•EXTERNAL:外部冗余

–指定失败组

•非EXTERNAL冗余度时必须指定

–指定磁盘组中的磁盘成员

•ASM能够自动检测出磁盘容量

•可手动限制使用空间

•添加磁盘时,ASM会自动检查磁盘头以确定该磁盘

是否已经加入其它磁盘组,通过FORCE参数强制添加。

–删除磁盘组及其所有文件

•若磁盘组内除ASM元数据外还包含其它文件,则必须指定INCLUDING CONTENTS选项。•必须先挂载磁盘组才能将其删除,确保未打开任何磁盘组文件后,删除该组及其所有驱动器,并清除磁盘的标头中的ASM格式信息和元数据。

技术干货 | DBA系列之管理数据库实例向磁盘组添加磁盘

当发生添加/删除磁盘组中的磁盘操作时,ASM能够自动平衡。

普通的删除操作(FORCE)选项,被删除的磁盘上面的数据在被有效处理前并不会立该释放。

新增磁盘时,在重新平衡完成前,该盘也不会比承担I/O的负载。

使用V$ASM_OPERATION视图查询相关状态。

ALTERDISKGROUP语句附加REBALANCE WAIT子句,这样该语句会等再平衡操作,直至所有操作完成才返回结果,在等待期间,使用CTRL+C可以取消终端的等待,平衡操作不受影响,在后台继续进行。

技术干货 | DBA系列之管理数据库实例

向磁盘组添加磁盘

使用搜索通配符可以使ASM在提供的路径及通配符规则下自动搜索可用磁盘(具有读取权限的RAW),并将该磁盘添加到目标磁盘组。

ASM会自动检测出符合通配符,且没有包含在任何一个磁盘组的可用磁盘(每个已经加入磁盘组的磁盘的标头都有ASM元数据信息)。

技术干货 | DBA系列之管理数据库实例

向磁盘组添加磁盘

ASM确保磁盘是可寻址、可用的之后,对磁盘进行格式化和重新平衡。

再平衡期间,会将所有的文件的区移至新磁盘。

再平衡不会阻止任何数据库操作。再平衡过程主要影响系统的I/O负载。

再平衡能力越高,对系统的I/O施加的负载越多,可用于数据库的I/O带宽就越少。

技术干货 | DBA系列之管理数据库实例

其它ALTER命令

技术干货 | DBA系列之管理数据库实例

其它ALTER命令

技术干货 | DBA系列之管理数据库实例

其它ALTER命令

技术干货 | DBA系列之管理数据库实例

其它ALTER命令

技术干货 | DBA系列之管理数据库实例

其它ALTER命令

技术干货 | DBA系列之管理数据库实例

使用OEM管理ASM

技术干货 | DBA系列之管理数据库实例

ASM的兼容性

每个磁盘组的兼容性都可以分别控制,这是支持包含Oracle Database 10g11g磁盘组异构环境所必需的。

ASM兼容性控制磁盘上ASM元数据结构磁盘组的ASM兼容性级别必须始终高于或等于同一磁盘组的RDBMS兼容性级别。

ASM兼容性只与ASM元数据的格式有关,ASM文件的内容取决于数据库实例。

例如:

将某个磁盘组的ASM兼容性设置为11.0,而将该磁盘组的RDBMS兼容性设置为10.1,这意味着该磁盘组只能由软件版本为11.0或更高的ASM软件管理,而软件版本高于10.1或者等于10.1的数据库都可以使用该磁盘组。

RDBMS兼容性是指RDBMS实例的最低兼容版本此设置确定了ASM实例和RDBMS实例之间交换消息的格式每个实例的数据库兼容版本设置必须高于或等于该数据库使用的所有磁盘组的RDBMS兼容性。

ADVM兼容性确定磁盘组是否可以包含ORACLE ASM该值必须设置为11.2或更高,设置该属性前,必须确保ASM兼容性为11.2或更高。

设置磁盘组兼容性的操作是不可逆的。

ASM的兼容性

技术干货 | DBA系列之管理数据库实例

ASM磁盘组属性

技术干货 | DBA系列之管理数据库实例

使用OEM编辑ASM磁盘组属性

技术干货 | DBA系列之管理数据库实例

使用SQL*Plus检索ASM元数据

技术干货 | DBA系列之管理数据库实例

使用asmcmd

技术干货 | DBA系列之管理数据库实例

Oracle 10g

Oracle10g不支持快速镜像恢复

一旦磁盘组有磁盘异常离线立即开始再平衡,消耗大量的I/O

技术干货 | DBA系列之管理数据库实例

技术干货 | DBA系列之管理数据库实例

ASM快速镜像重新同步概览

参数Disk_repair_time指定磁盘组等待脱机磁盘的时间

指定了Disk_repair_time后,ASM会使用其它联机磁盘记录脱机磁盘上所有AU的变化向量

在指定的Disk_repaid_time时间内,脱机磁盘重新上线,会利用其它磁盘上记录的AU的变化向量恢复脱机磁盘上不一致的数据

学习最新热门IT技术

找一份自己满意的高薪工作

升职加薪就是它了技术干货 | DBA系列之管理数据库实例技术干货 | DBA系列之管理数据库实例技术干货 | DBA系列之管理数据库实例

技术干货 | DBA系列之管理数据库实例

免费领取甲骨文内部学习资料

海文八月免费试听课预约

在这等你来试听哦~

技术干货 | DBA系列之管理数据库实例

【点击“阅读原文”预约报名海文8月免费试听课程。】

以上是关于技术干货 | DBA系列之管理数据库实例的主要内容,如果未能解决你的问题,请参考以下文章

DBA系列技术干货 | 数据库维护

DBA日常管理之-查看日志

技术干货 从DBA视角看数据库运维管理平台

Oracle体系结构和用户管理

JS之常用算法实例

轻松精通数据库管理之道——运维巡检之五(实例级参数)