百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

ASM介绍及管理(二)--ASM 实例(进程、参数、视图、权限)

sinye56 2024-10-03 00:40 9 浏览 0 评论

ASM 实例

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

每次启动ASM 或数据库时,都会分配名为系统全局区(SGA) 的共享内存区域并启动Oracle ASM 或数据库后台进程。

后台进程和SGA 的组合称为Oracle ASM 实例或Oracle DB 实例。

ASM 实例中的SGA 与数据库实例中的SGA 在内存分配和使用方面是不同的。

ASM 实例中的SGA 分为四个主要区域,如下所示:

? 共享池:用于元数据信息

? 大型池:用于并行操作

? ASM 高速缓存:用于在重新平衡操作期间读取和写入块

? 空闲内存:可用的未分配内存


ASM 的建议最低内存量为256 MB。ASM 实例默认启用自动内存管理,该功能将动态优化各个SGA 内存组件的大小。

ASM 实例所需的内存量将取决于ASM 管理的磁盘空间量。

ASM 实例的第二部分是后台进程。ASM 实例可以具有许多后台进程;并不是所有进程始终都会出现。

ASM 组件:ASM 实例 - 主要进程

ASM 功能的后台进程分为必需和可选两种。其中一些进程如下所示:

? ARCn:归档进程

? CKPT:检查点进程

? DBWn:数据库写进程

? DIAG:诊断进程

? Jnnn:作业队列进程

? LGWR:日志写进程

? PMON:进程监视器进程

? PSP0:进程衍生进程

? QMNn:队列监视器进程

? RECO:恢复器进程

? SMON:系统监视器进程

? VKTM:虚拟计时器进程

? MMAN:内存管理器进程

以上进程列表不是完整列表。对于ASM 实例,这些进程并不总是执行它们在数据库实例中执行的任务。

例如,数据库实例中的LGWR进程负责将更改向量从SGA 的日志缓冲区部分复制到磁盘上的联机重做日志。

ASM 实例的SGA 中不包含日志缓冲区,该实例也不使用联机重做日志。

ASM 实例中的LGWR进程将事件记录信息复制到ASM 磁盘组。

如果ASM 是以集群方式建立的,则将在ASM 实例中运行与集群管理相关的附加进程。

其中一些进程如下所示:

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

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

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

? LCKn:锁定进程

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

ASM 实例使用专用的后台进程完成其大部分功能。

RBAL进程在自动存储管理实例中协调磁盘组的重新平衡活动。它负责对自动存储管理磁盘执行全局打开操作。

ARBn进程在自动存储管理实例中执行实际的重新平衡数据区移动。可能同时存在多个这样的进程,这些进程名为ARB0、ARB1等等。

GMON进程维护ASM 磁盘组中的磁盘成员资格。在向脱机磁盘写入失败后,MARK进程将ASM 分配单元标记为过时。

Onnn进程表示客户机/服务器连接的服务器端。启动实例时将出现这些进程,之后它们将消失。

它们形成与ASM 实例的一组连接,用于交换消息,仅在需要时才出现。

PZ9n进程表示一个或多个并行从属进程,当ASM 同时在多台计算机上以集群配置运行时,可以使用该进程提取数据。

ASM 实例初始化参数

INSTANCE_TYPE = ASM

ASM_POWER_LIMIT = 1

ASM_DISKSTRING = '/dev/sda1','/dev/sdb*'

ASM_DISKGROUPS = DATA2, FRA

ASM_PREFERRED_READ_FAILURE_GROUPS = DATA.FailGroup2

DIAGNOSTIC_DEST = /u01/app/oracle

LARGE_POOL_SIZE = 12M

REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE


ASM 实例由参数文件控制,其方式与常规数据库实例相同。通常设置的参数包括:

? INSTANCE_TYPE应该设置且必须为ASM,表示ASM 实例,标识要启动的实例是ASM,而不是数据库实例。这是唯一一个必须定义的参数。对于数据库实例,该参数值设置为RDBMS。

? ASM_POWER_LIMIT:控制重新平衡操作的速度即指定磁盘rebalance的程度。值的范围从1 到11,11 表示最快。如果省略,该值默认为1。指定的级别越高,则rebalance的操作就会越快被完成,当然这也意味着这个时间段内将占用更多的资源,指定级别较低的话,随人rebalance操作会耗时更久,但对当前系统的IO及负载影响会更少,这需要根据实际情况衡量。另外,这个参数指定的只是一个默认值,在操作过程中,即可以随时动态更改,也可以在语句级命令行时指定power,覆盖该默认值。

修改ASM实例初始化参数文件的命令规则与数据库初始化参数完全相同,比如说:

SQL> alter system set asm_power_limit=5;

System altered.


? ASM_DISKSTRING是一个与操作系统相关的值,ASM 使用它来限制搜索时考虑的磁盘集即是设置ASM启动时检查的磁盘,该选项可以同时指定多个值,并且支持通配符。比如只检查/DEV/SD*。默认值为空字符串,为空的话,表示ASM将查找系统中所有ASM拥有读写权限的设备。这在大多数情况下就足够了。如上所示的约束性更强的值可以减少ASM 执行搜索所需的时间,从而提高磁盘组装载次数。

? ASM_DISKGROUPS:是ASM 实例启动时或使用ALTER DISKGROUP ALL MOUNT命令时,ASM 实例要装载的磁盘组的名称列表。如果为空的话,那么实际就仅仅启动到nomount状态。如果使用SPFILE的话,该参数一般不需要手动修改,ASM能够自动更新该初始化参数中的值。

Oracle Restart 会装载列为相关磁盘组的磁盘组,即使这些磁盘组未与ASM_DISKGROUPS参数列在一起也是如此。该参数没有默认值。

? ASM_PREFERRED_READ_FAILURE_GROUPS指定包含首选读取磁盘的故障组。对于包含数据的镜像副本且有一个副本非常接近于服务器的扩展或延伸集群数据库,该参数非常有用。

? DIAGNOSTIC_DEST指定自动诊断资料档案库(ADR) 主目录的位置。此目录下有跟踪文件、预警日志、核心文件和意外事件文件。此参数的默认值由ORACLE_BASE的值派生。

? LARGE_POOL_SIZE指定大型池分配堆的大小(以字节表示)。大型池分配堆用于共享服务器系统中的会话内存,供消息缓冲区的并行执行和磁盘I/O 缓冲区的备份进程使用。ASM 实例使用自动内存管理,所以此参数用作大型池不能低于的最小大小。

? REMOTE_LOGIN_PASSWORDFILE指定Oracle 软件是否检查口令文件。默认值为EXCLUSIVE。

上面列出的八个参数是需要为ASM 实例创建的唯一几个非默认参数。ASM 实例与数据库实例不同,因为并不是所有的数据库参数都对ASM 实例有效。在全部344 个数据库实例参数中,大约有74 个参数可以用于ASM 实例。对于上面未列出的其它参数,虽然其默认值对于大多数安装来说应该已经足够了,但也可以根据需要进行设置。

注:ASM 实例默认启用自动内存管理,即使未明确设置MEMORY_TARGET参数也是如此。

该参数是全面ASM 内存管理唯一需要设置的参数。Oracle Corporation 强烈建议对ASM 实例使用自动内存管理。

数据库实例与ASM 之间的交互

文件创建过程可以很好地说明数据库实例与ASM 之间发生的交互。文件创建过程如下所示:

1. 数据库请求创建文件。

2. ASM 前台进程创建一个持续操作目录(COD) 条目并在磁盘组中为新的文件分配空间。

3. ASMB 数据库进程接收新文件的区映射。

4. 现在文件处于打开状态,数据库进程直接初始化该文件。

5. 初始化后,数据库进程请求提交文件创建。这会导致ASM 前台进程清除COD 条目并将文件标记为已创建。

6. 文件提交确认会隐式关闭该文件。将来发生I/O 时,数据库实例需要重新打开该文件。

此示例强调了关于ASM 体系结构的重要两点:

? 数据库实例和ASM 实例协同工作。数据库实例必须与ASM 交互,以便将数据库文件映射到ASM 区。

数据库实例还接收与ASM 操作(例如磁盘组重新平衡)相关的持续消息流,这类操作可能锁定或移动ASM 区。

? 数据库I/O 不通过ASM 实例来传输。实际上,数据库直接根据ASM 文件执行I/O 操作,如步骤4 所示

ASM 实例:动态性能视图

对于任何实例而言,其主要功能之一就是存储基于内存的元数据表。这些表以前缀X$开头并且通常不进行记录。

以前缀V$开头的一系列动态性能视图用于以定制形式显示X$内存表中包含的数据。这类信息以只读方式提供,仅具有权限的管理员可以访问。

使用SQL 语言从ASM 检索这类信息。

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

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

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

sys@mesdbbackup> select * from dict where table_name like 'V$ASM_%';

TABLE_NAME COMMENTS

------------------------------ --------------------------------------------------

V$ASM_ACFSSNAPSHOTS Synonym for V_$ASM_ACFSSNAPSHOTS

V$ASM_ACFSVOLUMES Synonym for V_$ASM_ACFSVOLUMES

V$ASM_ACFS_ENCRYPTION_INFO Synonym for V_$ASM_ACFS_ENCRYPTION_INFO

V$ASM_ACFS_SECURITY_INFO Synonym for V_$ASM_ACFS_SECURITY_INFO

V$ASM_ALIAS Synonym for V_$ASM_ALIAS--记录文件别名信息

V$ASM_ATTRIBUTE Synonym for V_$ASM_ATTRIBUTE

V$ASM_CLIENT Synonym for V_$ASM_CLIENT--返回当前连接的客户端实例信息

V$ASM_DISK Synonym for V_$ASM_DISK---V$ASM_DISK*相关视图中记录的是ASM管理的磁盘及磁盘组信息

V$ASM_DISKGROUP Synonym for V_$ASM_DISKGROUP

V$ASM_DISKGROUP_STAT Synonym for V_$ASM_DISKGROUP_STAT

V$ASM_DISK_IOSTAT Synonym for V_$ASM_DISK_IOSTAT

V$ASM_DISK_STAT Synonym for V_$ASM_DISK_STAT

V$ASM_FILE Synonym for V_$ASM_FILE

V$ASM_FILESYSTEM Synonym for V_$ASM_FILESYSTEM

V$ASM_OPERATION Synonym for V_$ASM_OPERATION--记录当前磁盘的操作信息

V$ASM_TEMPLATE Synonym for V_$ASM_TEMPLATE

V$ASM_USER Synonym for V_$ASM_USER

V$ASM_USERGROUP Synonym for V_$ASM_USERGROUP

V$ASM_USERGROUP_MEMBER Synonym for V_$ASM_USERGROUP_MEMBER

V$ASM_VOLUME Synonym for V_$ASM_VOLUME

V$ASM_VOLUME_STAT Synonym for V_$ASM_VOLUME_STAT

21 rows selected.

如下:

sys@mesdbbackup> select GROUP_NUMBER ,NAME ,STATE,TYPE from v$asm_diskgroup;

GROUP_NUMBER NAME STATE TYPE

------------ ------------------------------ ----------- ------

1 DATA CONNECTED NORMAL

2 RECOVERY MOUNTED NORMAL

sys@mesdbbackup> select GROUP_NUMBER,DISK_NUMBER,NAME,PATH,STATE from v$asm_disk;

GROUP_NUMBER DISK_NUMBER NAME PATH STATE

------------ ----------- ------------------------------ --------------- --------

2 0 RECOVERY_0000 /dev/asm-diskd NORMAL

2 1 RECOVERY_0001 /dev/asm-diske NORMAL

1 1 DATA_0001 /dev/asm-diskc NORMAL

1 0 DATA_0000 /dev/asm-diskb NORMAL

上面列出了包含ASM 相关元数据的最常用动态性能视图。还有数百个其它动态性能视图,但是其中大多数视图都是空的,因为它们需要数据库实例装载数据库控制文件。ASM 实例不装载数据库控制文件。

ASM 系统权限

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

ASM 实例没有数据字典,所以连接ASM 实例只能使用以下三种系统权限之一:SYSASM、SYSDBA或 SYSOPER。

下面的列表讲述了这些ASM 系统权限。

? SYSASM:该权限提供对ASM 实例的全部管理权限。

? SYSDBA:该权限授予对ASM 中存储的数据的访问权限,在当前版本中还授予SYSASM管理权限。

? SYSOPER:该权限授予使用一组非破坏性ALTER DISKGROUP命令以及启动和停止ASM 实例的权限。不允许使用CREATE DISKGROUP等其它命令。


安装ASM 时,使用操作系统组对 SYSASM、SYSDBA和 SYSOPER权限进行验证。

Oracle Universal Installer (OUI) 实用程序将这些组分别称为OSASM、OSDBA和 OSOPER组,即OSASM组是授予了 SYSASM权限的操作系统组。

OSASM、OSDBA和 OSOPER组值的建议名称分别为 asmadmin、asmdba和 asmoper。

因此,SYSASM是数据库使用的名称,OSASM是OUI 实用程序使用的名称,而 asmadmin是操作系统使用的名称。它们都是指同一组用户。

第一次创建ASM 实例时,只定义sys和 asmsnmp这两个ASM 用户。

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

相关推荐

linux 查看当前应用内存状况,以及内存参数含义

1、查看进程号ps-ef|greptomcat2、查看当前内存分配,200ms打印一次jstat-gc进程号2001jstat-gc344802001S0CS1C...

如何显示 Linux 系统上的可用内存?这几个命令很好用!

在Linux系统中,了解可用内存是优化系统性能、故障排查以及资源管理的重要一环。本文将详细介绍如何在Linux系统上显示可用内存,包括多种方法和工具的使用。在讨论可用内存之前,我们需要了解一些...

Linux 下查看内存使用情况方法总结

Q:我想监视Linux系统的内存使用情况,在Linux下有哪些视图或者命令行工具可用呢?在做Linux系统优化的时候,物理内存是其中最重要的一方面。自然的,Linux也提供了非常多的方法来监控宝贵的内...

2、linux命令-用户管理

linux命令-用户管理用户切换[root@eric~]#sueric#切换到用户eric[eric@ericroot]$[eric@ericroot]$su#切换到rootPas...

Centos 7 进入单用户模式详解

1、开机在启动菜单按e进入编辑模式找到linux16行,在最后添加init=/bin/sh编辑完后,按ctrl+x退出2、进单用户模式后,使用passwd修改密码,提示以下错误:passwd:Aut...

每日一个Linux命令解析——newusers

newusers:在Linux系统中,newusers是一个用于批量创建用户的命令。它从一个文件中读取多行用户信息,每行描述一个用户的详细信息,并根据这些信息创建多个用户或对现有用户进行批量修改。一...

openEuler操作系统管理员指南:管理用户与用户组

在Linux中,每个普通用户都有一个账户,包括用户名、密码和主目录等信息。除此之外,还有一些系统本身创建的特殊用户,它们具有特殊的意义,其中最重要的是管理员账户,默认用户名是root。同时Linux也...

Linux用户管理

1、用户信息文件/etc/passwdroot:x:0:0:root:/root:/bin/bash第一列:用户名第二列:密码位第三列:用户ID0超级用户UID。如果用户UID...

centos7基础-用户、组、权限管理

用户和组(1)用户、组、家目录的概念linux系统支持多用户,除了管理员,其他用户一般不应该使用root,而是应该向管理员申请一个账号。组类似于角色,系统可以通过组对有共性的用户进行统一管理。每个用户...

LINUX基础 ----------组及用户的概念

在Linux中,用户和组都是非常重要的概念,可以控制文件访问权限和资源的管理。用户是标识一个进程、应用程序或系统管理员的账号,Linux中每个用户用一个用户ID(UID)来标识。对于一个...

从零入门Linux(四)用户与权限管理

在Linux系统中,用户和权限管理是系统安全的重要组成部分。通过合理配置用户和权限,可以确保系统的安全性和资源的合理分配。以下是一些与用户和权限管理相关的常用命令和概念。1.用户管理1.1添加...

如何在 Linux 中管理用户?

在Linux系统中,用户是系统资源的主要使用者,每个用户都有一个唯一的标识符(用户ID)。为了更好地组织和管理用户,Linux还引入了用户组的概念。用户组是用户的集合,有助于更有效地分配权限和资...

在 Linux 中将用户添加到特定组的四种方法

在Linux多用户操作系统中,用户组管理是系统安全架构的基石。通过合理的组权限分配,管理员可以实现:精确控制文件访问权限(chmod775project/)简化批量用户权限管理(setfacl-...

我不是网管 - 如何在Ubuntu Linux下创建sudo用户

Sudo用户是Linux系统的普通用户,具有一定的管理权限,可以对系统执行管理任务。在Linux中,root是超级用户,拥有完全的管理权限,但不建议将root凭证授予其他用户或作为r...

Linux创建普通用户,为密钥方式登录做准备

Hi,我是聪慧苹果8,就是江湖上人见人爱、花见花开,土到掉榨的Linux爱好者,一起学习吧!上一篇关于SSH安全加固的文字,有网友点评通过密钥登录更加安全,先创建一个普通用户,拒绝直接使用密码登录,这...

取消回复欢迎 发表评论: