当前位置: 移动技术网 > IT编程>数据库>Oracle > (Les05 ASM Instance)[20180208]

(Les05 ASM Instance)[20180208]

2018年02月09日  | 移动技术网IT编程  | 我要评论

鸳鸯织就欲双飞,悠乐奢旅,筹建中的城南中学需720套单人课桌椅

学习目标
    描述使用ASM的好处
    管理ASM实例
    创建和删除ASM磁盘组
    扩展ASM磁盘组
    通过使用各种实用程序检索ASM元数据
 

 

 

 

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
        
            数据库实例与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/区单位)将多个分配单元连接起来使用
                    
                   
                
                    细粒度条带化
                        细粒度条带化在分配单元组中放置128KB条带单元
                            -磁盘组具有8个磁盘和外部冗余
                            -使用默认的AU大小:1MB
                            -第一个1MB区在8个AU中以128KB条带形式写入
                            
                            
                        注意:控制文件和联机重做日志文件只能使用细粒度条带化
 
                ASM故障组
                    -共享需要容错的一项公用资源的一组磁盘
                    -镜像的区副本存储在不同的故障组中
                    
                           故障组可以用于避免单个磁盘/磁盘控制器/I/O网络组件以及甚至整个存储系统的故障。
                            
                                条带化镜像和故障组示例
                                
                              故障演练
                                
 
 
      
    管理磁盘组
            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卷
        设置磁盘组兼容性的操作时不可逆的
            
            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
      
               

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网