欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

(Les05 ASM Instance)[20180208]

程序员文章站 2022-07-02 16:29:03
学习目标 描述使用ASM的好处 管理ASM实例 创建和删除ASM磁盘组 扩展ASM磁盘组 通过使用各种实用程序检索ASM元数据 ASM对于管理员的好处 使用ASM可以免除: -I/O性能优化:ASM采用条带化和镜像所有数据的策略,且执行自动重新平衡操作。 -数据文件移动和重新组织:不再需要更改数据文 ......
学习目标
    描述使用ASM的好处
    管理ASM实例
    创建和删除ASM磁盘组
    扩展ASM磁盘组
    通过使用各种实用程序检索ASM元数据
 (Les05 ASM Instance)[20180208]

 (Les05 ASM Instance)[20180208]

 

(Les05 ASM Instance)[20180208]

 

ASM对于管理员的好处
    使用ASM可以免除:
        -I/O性能优化:ASM采用条带化和镜像所有数据的策略,且执行自动重新平衡操作。
        -数据文件移动和重新组织:不再需要更改数据文件的位置来满足性能要求和空间约束条件。
        -文件名管理:不再需要定义和强制执行文件命名策略
        -逻辑卷/文件系统/集群文件系统/裸设备管理:不再需要这些存储元素
    使用ASM可以减少下列工作:
        -逻辑单元号(LUN)管理工作减少,ASM通常需要的逻辑单元较少且大小较大
        -数据库原理员与系统管理员之间的依赖性大大减少,如迁移磁盘组不再需要系统管理员干预。
        -减少手动执行维护任务时发生的错误。如新增数据文件文件命名不规范,导致数据库的其余部分不支持。
 
ASM实例
    每次启动ASM或数据库时,都会分配名为系统全局区(SGA)的共享内存区域并启动Oracle ASM和数据库后台进程,。后台进程和SGA的组称为Oracle ASM实例或Oracle DB实例。
    ASM实例中的SGA分为四个主要区域:
        -共享池:用于元数据
        -大型池:用于并行
        -ASM高速缓存:用于在重平衡操作期间读取和写入块
        -空闲内存:可用的未分配内存
        ASM的建议最低内存为256M。ASM实例默认启用自动内存管理,该功能将动态优化各个SGA内存组件的大小。ASM实例所需的内存量将取决于ASM管理的磁盘空间量。ASM实例的第二部分是后台进程。ASM实例可以具有多个后台进程,并不是所有进程始终都会出现。
        ASM组件
                -ARCn:归档进程
                -SMON:系统监控进程
                -PMON:程式监控进程
                -DBWn:数据库写入进程
                -LGWR:日志写入进程
                -CKPT:检查点进程
                -DIGA:诊断进程
                -Jnnn:作业队列进程
                -QMNn:队列监控进程
                -PSP0:进程衍生进程
                -RECO:恢复器进程
                -VKTM:虚拟计时器进程
                -MMAN:内存管理器进程
                ASM在RAC集群中的进程
                -LMON:全局入队服务监控进程
                -LMDn:全局入队服务守护程序
                -LMSn:全局高速缓存服务进程
                -LCKn:锁定进程
 
            ASM实例-主要进程
                -RBAL:协调重新平衡活动
                -ARBn:一个或多个从属进程,用于执行重平衡活动
                -GMON:负责管理磁盘级活动,如删除或脱机以及提高ASM磁盘组兼容性
                -MARK:根据需要将ASM分配单元标记为过时
                -Onnn:一个或多个ASM从属进程,形成与ASM实例的一组连接,用于交换消息
                -PZ9n:一个或多个并行从属进程,用于从GV$视图提取有关集群ASM安装的数据
 
        ASM实例初始化参数
                -INSTANCE_TYPE:设置ASM,这是唯一一个必须定义的参数。对于数据库实例,该参数值设置为RDBMS
                -ASM_POWER_LIMIT:控制重平衡操作的速度。值的范围从1到11(默认值为1)。
                -ASM_DISKSTRING:是一个与操作系统相关的值,ASM使用它来限制搜索时考虑的磁盘集(默认为空,表示所有)。
                -ASM_DISKGROUPS:ASM实例需要装载的磁盘组的名称列表。该参数没有默认值。
                -ASM_PREFERRED_READ_FAILURE_GROUPS:指定包含首选读取磁盘的故障组。
                -DIAGNOSTIC_DEST:指定自动诊断存储(ADR)主目录。跟踪文件/预警日志/核心文件和意外事件文件。该参数的默认值由ORACLE_BASE派生
                -LARGE_POOL_SIZE:指定大型池分配堆的大小(以字节表示)
                -REMOTE_LOGIN_PASSWORDFILE:指定Oracle软件是否检查密码文件。默认值为EXCLUSIVE
        (Les05 ASM Instance)[20180208]
            数据库实例与ASM之间的交互
                1.数据库请求创建文件
                2.ASM前台进程创建一个持续操作目录(COD) 条目并在磁盘组中为新的文件分配空间。
                3.ASM数据库进程接收新文件的区映射
                4.现在文件处于打开状态,数据库进程直接初始化该文件。
                5.初始化后,数据库进程请求提交文件创建。这会导致ASM前台进程清除COD条目并将文件标记为已创建。
                6.文件提交确认会隐式关闭该文件。将来发生I/O时,数据库实例需要重新打开该文件。
                --数据库实例和ASM实例协同工作。数据库实例必须与ASM交互,以便将数据库文件映射到ASM区。
                --数据库I/O不通过ASM实例来传输。实际上,数据库直接根据ASM文件执行I/O操作。
 
ASM实例:动态性能视图
            -ASM实用程序使用SQL语言访问这些表来检索仅含元数据的信息
            -包含许多专用的ASM相关视图
                V$ASM_ALIAS V$ASM_ATTRIBURE V$ASM_CLIENT
                V$ASM_DISK  V$ASM_DISK_IOSTAT V$ASM_DISK_STAT
                V$ASM_DISKGROUP V$ASM_DISKGROUP_STAT V$ASM_FILE
                V$ASM_OPERATION V$ASM_TEMPLATE
 
 
ASM系统权限
    -ASM实例没有数据字典
        SYSASM--OSASM(asmadmin)---全部管理权限
        SYSDBA--OSDBA(asmdba)---可访问ASM中存储的数据,在当前版本中还具有SYSASM权限
        SYSOPER--OSOPER(asmoper)---受限权限,可使用一组非破坏ALTER DISKGROUP命令以及启动和停止ASM实例
 
启动和停止ASM实例使用SQL*Plus
    $sqlplys / as sysasm
        SQL>startup
            ALTER DISKGROUP ... MOUNT;
        SQL>shutwon abort
        【OPEN】
        -FORCE:在重新启动ASM实例之前向它发出SHUTDOWN ABORT
        -MOUNT或OPEN:装载ASM_DISKGROUPS初始化参数中指定的磁盘组
        -NOMOUNT:启动ASM实例而不装载任何磁盘组
        -RESTRICT:在受限模式下启动实例。RESTRICT可以与MOUNT/NOMOUNT/OPEN组合使用(受限模式下数据库实例不能对磁盘进行操作)
        【SHUTDOWN】
        -NORMAL(默认关闭模式):ASM在卸载所有磁盘组并关闭ASM实例之间,等待正在进行的SQL操作完成,等待当前连接的用户从该实例断开。不会接受新的连接
        -IMMEDIATE或TRANSACTIONAL:ASM在卸载所有磁盘组并关闭实例之前,等待正在进行的SQL操作完成,不会等待当前连接的用户断开连接。
        -ABORT:ASM实例立即关闭,而不是按顺序卸载磁盘组。这将导致下次启动ASM时进行恢复操作。如果有任何数据库实例与ASM实例连接,则该数据库实例也将终止。
      
 
启动和停止ASM实例使用srvctl
        $srvctl start asm -o mount
        $srvctl stop asm -f
        $srvctl status asm
               
        启动ASM实例
            srvctl start asm [-o <start_option>] 
                <start_option>启动选项 (FORCE/MOUNT/OPEN/NOMOUNT或RESTRICT)
        停止ASM实例
            srvctl stop asm [-o <stop_option> ] -f
                <stop_option>关闭选项 NORMAL/IMMEDIATE/TRANSACTIONAL或ABORT
                -f是强制
        ASM实例的状态
            srvctl status asm
 
启动和停止ASM实例使用asmcmd
        ASMCMD>startup
        ASMCMD>shutdown --abort
        
        启动选项
            --nomount 不装载磁盘组的情况下启动ASM实例
            --restrict 启动ASM实例并限制数据库使用
            -pfile <pfile.ora> 使用定制pfile启动ASM实例
        关闭选项
            --immediate 立即执行关闭
            --abort 中止所有现有操作
 
 
磁盘组
        磁盘组是一个或多个磁盘的逻辑分组,ASM将其作为一个集合来管理。每个磁盘组都包含与自身相关联的元数据。在概念上,ASM磁盘组类似于典型存储区域网络中的逻辑卷。
        一个磁盘组可以包含属于多个数据库的文件,而一个数据库可以使用来自多个磁盘组的不同文件。
        
        磁盘组的冗余设置:
            -外部冗余,其中ASM不提供任何镜像,磁盘都是假设为高度可靠。
            -正常冗余,其中ASM默认支持双向镜像,从而保证在较不可靠的存储上实现数据完整性。
            -高冗余,其中ASM默认支持三向镜像,从而更改地保证数据完整性。
            ASM最多支持创建63个磁盘组。
 
        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.68912343
                -可以与可选的文件名别名相关联
                    -例如,+DATA/datafile/mydb/system01.dbf
                -在磁盘组中的磁盘中平均分布
                -根据磁盘组中定义的策略进行镜像
 
        ASM区映射
                ASM文件-->区映射-->磁盘组
                ASM通过称为区映射的元数据跟踪文件的分布。区映射是一个表,将文件中的数据区映射到磁盘上的分配单元。
 
                文件区与分配单元之间的关系:
                    -一个AU用于前20,000个区(0-19999)
                    -4个AU用于接下来的20,000个区(20000-39999)
                    -16个AU用于40,000以上的区
        条带化粒度
            ASM用于负载平衡的条带化策略与用于等待时间的条带化策略不同
            条带化主要用途:
                        -在磁盘组的所有磁盘中执行I/O负载平衡
                        -改善I/O等待时间
                -对于负载平衡,粗粒度条带化(AU/区单位)将多个分配单元连接起来使用
                    (Les05 ASM Instance)[20180208]
                   
                
                    细粒度条带化
                        细粒度条带化在分配单元组中放置128KB条带单元
                            -磁盘组具有8个磁盘和外部冗余
                            -使用默认的AU大小:1MB
                            -第一个1MB区在8个AU中以128KB条带形式写入
                            (Les05 ASM Instance)[20180208]
                            (Les05 ASM Instance)[20180208]
                        注意:控制文件和联机重做日志文件只能使用细粒度条带化
 
                ASM故障组
                    -共享需要容错的一项公用资源的一组磁盘
                    -镜像的区副本存储在不同的故障组中
                    
                           故障组可以用于避免单个磁盘/磁盘控制器/I/O网络组件以及甚至整个存储系统的故障。
                            (Les05 ASM Instance)[20180208]
                                条带化镜像和故障组示例
                                (Les05 ASM Instance)[20180208]
                              故障演练
                                (Les05 ASM Instance)[20180208]
 
 
      
    管理磁盘组
            CREATE DISKGROUP
            DROP DISKGROUP
            ALTER DISKGROUP
            ASM实例主要目的是管理磁盘组和保护器数据。ASM实例还将文件分布传送到数据库实例。这里,数据库实例就可以直接访问磁盘组中存储的文件。
            执行这些命令都需要SYSASM或SYSDBA权限,且必须从ASM实例发出。
 
            CREATE DISKGROUP dgroupA NORAML REDUNDANCY
                FAILGROUP controller1 DISK
                    '/devices/A1' NAME diskA1 size 120G FORCE,
                    '/devices/A2'
                FAILGROUP controller2 DISK
                    '/devices/B1',
                    '/devices/B2';
 
            DROP DISKGROUP dgroupA INCLUDING CONTENTS;
 
 
            ALTER DISKGROUP dgroupA ADD DISK
                '/dev/sde1' NAME A5,
                '/dev/sdf1' NAME A6,
                '/dev/sdg1' NAME A7,
                '/dev/sdh1' NAME A8;
 
            ALTER DISKGROUP dgroupA ADD DISK '/devices/A*';
 
            ALTER DISKGROUP dgroupA DROP DISK A5;
 
            ALTER DISKGROUP dgroupA DROP DISK A6
                    ADD FAILGROUP controller3 DISK '/dev/sdi1' NAME A9;
            
            ALTER DISKGROUP dgroupA UNDROP DISKS;
 
            ALTER DISKGROUP dgroupA REBALANCE POWER 5;--手动开始重平衡
            ALTER DISKGROUP dgroupA DISMOUNT;--卸载dgroupA磁盘组
 
ASM磁盘组兼容性
        每个磁盘组的兼容性都可以分别控制:
            -ASM兼容性控制磁盘上ASM元数据结构
            -RDBMS兼容性控制最低使用者客户端级别
            -ADVM兼容性确定磁盘组是否可以包含Oracle ASM卷
        设置磁盘组兼容性的操作时不可逆的
            (Les05 ASM Instance)[20180208]
            DB实例 >=ASM磁盘组(RDBMS<=ASM>=ADVM)<=ASM实例
 
    ASM磁盘组属性
        -au_size,ASM允许使用在创建磁盘组时指定的不同分配单元(AU)大小。1/2/4/8/16/32或64MB
        -compatible.rdbms,RDBMS数据库版本,数据库与ASM之间交换的消息的格式
        -compatible.asm,ASM实例版本,磁盘上ASM元数据结构的格式
        -compatible.advm,ADVM兼容性 ASM实例版本,允许在磁盘中包含Oracle ASM卷
        -disk_repair_time,0M到2^32D,磁盘脱机之后删除此磁盘之间的时间量,默认值3.6H,ALTER DISKGROUP ...DISK OFFLINE;
        -template.tname.redundancy,UNPROTECT|MIRROR|HIGH,指定模板的冗余
        -template.tname.stripe,COARSE|FINE,指定模板的条带化属性
 
        对于每个已定义的磁盘组,可以通过V$ASM_ATTRIBUTE固定视图查看所有已定义的属性。
 
    检索ASM元数据
        
    SELECT f.TYPE,
       f.redundancy,
       f.striped,
       f.modification_date,
       a.system_created,
       a.name
      FROM v$asm_alias a, v$asm_file f
     WHERE     a.file_number = f.file_number
       AND a.group_number = f.group_number
       AND TYPE = 'DATAFILE';
 
    ASMCMD>ls -l +DATA/orcl/datafile