文章目录
一、引言
ASM作为Oracle数据库的关键组件,提供了高性能、可靠性和便捷性的存储管理服务,解决了存储管理上的许多难题。它可以在不同的数据库环境中使用,并提供丰富的功能和选项来满足各种需求。
-
便于管理和高性能的集群文件系统:ASM提供了一个方便管理的文件系统,可以有效地管理大量的Oracle数据文件、日志文件和控制文件。它可以在集群环境中提供高性能的存储管理服务。
-
自动管理Oracle数据文件、日志文件、控制文件等:ASM可以自动管理数据库的各种文件,包括数据文件、日志文件和控制文件。它会自动将这些文件分散在不同的磁盘上,以提供更好的性能和可靠性。
-
自动将数据在不同的磁盘间负载均衡:ASM可以自动将数据在存储设备之间平衡分布,从而实现负载均衡。它会根据容量、性能等因素自动调整数据的分布,以提高存储效率。
-
提供完整的磁盘镜像(故障组 数据冗余):ASM通过使用故障组来提供数据冗余和高可用性。它会将数据文件复制到不同的磁盘上,以提供完整的磁盘镜像。如果一个磁盘出现故障,ASM可以自动将数据从镜像磁盘中恢复。
-
解决存储管理上的难题(共享存储、负载均衡):ASM解决了存储管理中的一些难题,比如共享存储和负载均衡。它可以在集群环境中实现共享存储,并根据负载情况自动调整数据的分布,提高系统的性能和可用性。
-
可用于单实例或RAC数据库:ASM可以用于单实例数据库或Real Application Cluster (RAC) 数据库。它能够适应不同的数据库环境,并提供相应的存储管理服务。
-
使用OMF模式:ASM支持使用Oracle Managed Files (OMF) 模式。OMF可以简化数据库管理操作,自动为数据库对象生成适当的文件名,并自动管理文件的位置和大小。
二、ASM初始化参数
Oracle Automatic Storage Management (ASM) 是 Oracle数据库的一个特性,它提供了一个统一、高性能的存储解决方案。在使用 ASM 进行磁盘管理之前,理解其初始化参数至关重要。这些参数决定了 ASM 的行为和性能。
1.INSTANCE_TYPE参数:当该参数设置为 ASM 时,表示这是一个 ASM 实例。当该参数设置为 RDBMS 时,则表示这是一个数据库实例。
如:
2.asm_power_limit参数:该参数控制 ASM 重新平衡操作速度。它的值范围为 1 到 11,其中 1 表示速度最慢,11 表示速度最快。默认值为 1。
3.asm_diskstring参数:该参数是一个与操作系统相关的值,在启动 ASM 实例时使用。它限制了 ASM 搜索磁盘时所考虑的磁盘集。磁盘集主要用于创建 ASM 磁盘组。在使用磁盘集里的磁盘创建 ASM DISK GROUP 时,需要满足一些条件,如属组、权限和磁盘映射是否正确等。
4.asm_diskgroups参数:该参数指定了 ASM 实例要装载的磁盘组的名称列表。当 ASM 实例启动时或使用 ALTER DISKGROUP ALL MOUNT
命令时,ASM 实例将装载这些磁盘组。该参数没有默认值,通常由 ASM 自动维护。
5.asm_preferred_read_failure_groups: 指定包含首选读取磁盘的故障组
6.large_pool_size: 该参数指定 ASM 实例用于大内存请求的内存池的大小,单位为字节。默认情况下,该参数的值为 12 MB,但是可以更改为一个较大的值以适应 ASM 实例的实际需求。
如:
ALTER SYSTEM SET asm_large_pool_size= SCOPE=SPFILE;
7.remote_login_passwordfile:指定ORACLE软件是否检查密码文件。默认值是’EXCLUSIVE’
8.ASM memory_max_target:该参数定义了 ASM 实例可以使用的最大内存量,单位为字节。这个参数可以控制 ASM 实例的整体内存使用,包括 SGA 和 PGA。ASM 实例将根据需要自动调整 SGA 和 PGA 的大小,以提供合适的内存资源。
9.memory_target:该参数定义了 ASM 实例对于所有 SGA 和 PGA 内存的总体分配目标,单位为字节。与 ASM memory_max_target 类似,memory_target 也可以自动调整 SGA 和 PGA 的大小,以适应实际的内存需求。
这两个参数可以在 ASM 实例启动时或者动态地进行修改。需要注意的是,修改这些参数可能需要对 ASM 实例进行重启或者重新启动相关的内存组件。
可以使用以下 SQL 命令来修改这些参数:
ALTER SYSTEM SET ASM_MEMORY_MAX_TARGET=<value> SCOPE=SPFILE; 静态参数
ALTER SYSTEM SET MEMORY_TARGET=<value> SCOPE=both;
三、ASM三大系统权限
在 Oracle ASM 中,有三个重要的系统权限,也被称为 ASM 三大系统权限,它们是:
SYSASM:SYSASM 是用于管理 ASM 实例和磁盘组的最高权限角色。持有 SYSASM 权限的用户可以创建、配置、启动和停止 ASM 实例,创建和管理磁盘组,以及执行涉及 ASM 实例和磁盘组的管理任务。
SYSDBA:SYSDBA 是数据库的最高权限角色,也拥有对 ASM 实例的管理权限。SYSDBA 用户具有与 SYSASM 相似的权限,可以执行对 ASM 实例和磁盘组的管理操作。
SYSOPER:SYSOPER 是一种较低级别的权限角色,用于执行一些常见的操作,如启动和关闭数据库、备份和恢复数据库等。SYSOPER 角色也可以访问 ASM 实例,并执行一些限制的 ASM 管理操作,如启动和关闭 ASM 实例,创建和删除磁盘组。
四、ASM实例的启停
1.Oracle ASM的启停可以通过两种方式进行
srvctl启动ASM实例
使用srvctl实用程序。这是Oracle Grid Infrastructure (GI) 提供的一个命令行工具,可以用来管理包括ASM在内的多个Oracle组件。
启动ASM实例的命令
srvctl start asm
srvc