zoukankan      html  css  js  c++  java
  • oracle10G新特性之ASM的应用

    racle10G新特性之ASM的应用

    ASM的应用:
    1、ASM的特点:
    不是镜像整个硬盘而是镜像数据库对象,如果在硬件级别上做了raid则不可以分段对象
    自动平衡:增加额外的硬盘时,ASM会将一定比列的文件从一个或多个硬盘上移动到新硬盘上,从而维持所有磁盘之间整体的I/O平衡
    ASM有自己独有的实例来提供oracle实例和文件系统之间的接口。有两个新的oracle后台进程支持ASM实例,RBAL和ORBn .
    RBAL协调磁盘组的磁盘活动,而ORBn(n是0-9之间的数字)执行磁盘组中磁盘之间的实际盘区移动
    ASM实例也有两个后台进程:OSMB和RBAL。OSMB执行数据库和ASM实例之间的通信。RBAL执行代表数据库的磁盘组中磁盘的打开和关闭
    ASM有它自己的初始化文件和密码文件,但是没有数据字典,ASM实例都通过SYS或SYSTEM连接并使用操作系统验证,ASM只能处于nomount或mount状态,不存在open状态
    作为sysdba连接ASM实例可以执行所有 ASM操作,而sysoper则只提供用来执行已配置的和稳定的ASM实例的例程操作。

    2、ASM初始化参数说明:
    instance_type:ASM实例具有ASM特有的值,传统的ORACLE实例默认值为rdbms
    db_unique_name:默认值是+ASM,它是集群中或单节点上ASM实例组的唯一名称
    asm_power_limit:用于控制重新平衡操作发生的速度。值的范围1-11,默认是1(较低的I/O开销)
    asm_diskstring:指定一个或多个串,这些串与操作系统有关,用于限制可用于创建磁盘组的磁盘设备。如过为NULL,则表示所有可见的所有磁盘都可以做为创建磁盘组的候选项
    asm_diskgroups:指定一个包含磁盘组名称的列表,可以在启动时由ASM实例自动安装这些磁盘组,或者通过alter diskgroup all mount命令安装
    large_pool_size:表示所有的ASM程序包都在该池中执行,因此最少要设置8M

    3、ASM实例的启动和关闭:
    startup默认为startup mount;
    startup nomount 只启动实例,不安装任何ASM磁盘
    startup restrict 临时防止数据库实例连接到ASM实例而安装磁盘组
    shutdown

    4、ASM的动态性能视图:
    v$asm_disk:磁盘信息
    v$asm_diskgroup:磁盘组信息
    v$asm_file:磁盘组上文件信息
    v$asm_operation:ASM上正在执行或长期运行的操作
    v$asm_template:磁盘组中的模板
    v$asm_client:ASM与数据库的连接信息
    v$asm_alias:磁盘组的别名

    5、ASM文件名称格式:
    1)、完全限定的名称 +group/dbname/file type/tag.file.incarnation 如:+data2/rac/datafile/users3.311.1
    2)、数字名称:+DATA2.311.1
    3)、别名:alter diskgroup data2 add alias '+data2/purch/users.dbf' for '+data2/rac/datafile/users3.311.1';
    4)、具有模板名称的别名:create tablespace users4 datafile '+data2/user_spare(datafile)';
    5)、不完整的名称:create tablespace users5 datafile '+data2';
    6)、具有模板的不完整名称:create tablespace users6 datafile '+data2(datafile)';

    6、管理ASM磁盘组:
    粗糙分段:在磁盘上对磁盘组中的文件分段。以每个1M为单位将文件扩展到所有的磁盘。适合于OLTP高度并发的小I/O请求系统
    细密分段:以128K为单位扩展文件到磁盘组中所有磁盘上。适合于并发性低的OLTP系统或传统的数据仓库
    如果要定义磁盘组的镜像必须先定义磁盘的故障组,可用于磁盘组中的故障组的数量可以限制可用于磁盘组的镜像类型。
    有三中镜像类型:
    外部冗余:只需要一个故障组,一般是由raid卡提供冗余
    普通冗余:磁盘组中需要两个故障组
    高度冗余:磁盘组中需要至少三个故障组
    普通和高度冗余镜像的是盘区而不是硬盘,同时每个磁盘将具有每个磁盘上主要的和镜像的盘区
    举例:
    新增一个具有高度冗余的磁盘组:
    查看使用v$asm_disk查看初始化参数asm_diskstring发现的所有可以用于创建磁盘组的磁盘,以及这些磁盘的状态
    select group_number,disk_number,name,failgroup,create_date,path from v$asm_disk;
    查看已存在的磁盘组的信息:
    select group_number,name,type,total_mb,free_mb from v$asm_diskgroup;
    创建高度冗余的磁盘组,如果是普通的话,high redundancy 改成normal,并只建立两个故障组
    create diskgroup data2 high redundancy
    failgroup fg1 disk '/dev/raw/raw3' name d2a
    failgroup fg2 disk '/dev/raw/raw4' name d2b
    failgroup fg3 disk '/dev/raw/raw5' name d2c;

    如果用两块硬盘组成一个故障组
    ALTER DISKGROUP data2
    ADD FAILGROUP fg1 disk '/dev/raw/raw6' name d2a1;
    为了确保镜像有足够的空间,因此故障组fg2,fg3也应该加上一个磁盘。
    建完以后再查看下磁盘组的信息和磁盘的信息,确认已经将相关磁盘完成创建好磁盘组
    select group_number,name,type,total_mb,free_mb from v$asm_diskgroup;
    select group_number,disk_number,name,failgroup,create_date,path from v$asm_disk;

    删除磁盘组:
    drop diskgroup date2 (including contents);如果里面已经有数据
    完成创建磁盘组后,可以新建表空间来存放相关数据
    create tablespace user datafile '+data2';

    增加一块硬盘到磁盘组中
    ALTER DISKGROUP data2
    ADD FAILGROUP fg4 disk '/dev/raw/raw6' name d2d;
    可以通过v$asm_operation视图来查看正在进行的操作,因为默认的重新平衡初始化参数值asm_power_limit是1,可以改变该值以便重新平衡操作的功率
    alter diskgroup data2 rebalance power 8;
    执行完后再看正在进行的操作:
    select group_number,operation,state,power,actual,sofar,est_work,est_rate,est_minutes from v$asm_operation;
    EST_WORK是要移动的单元的总数,SOFAR是重新平衡操作中到目前为止已移动的单元的数量。EST_RATE是重新平衡操作每分钟移动的单元的当前数量,EST_MINUTES给出剩余时间的估计值(以分钟计)。
    如果是普通冗余,增加了一个故障组,但是还是普通冗余,由于磁盘组中有额外的盘区副本,因此可以改进针对磁盘组中对象的SELECT语句的I/O性能。

    执行ALTER DISKGROUP DROP命令可以从盘组中删除磁盘。但是要注意,要删除的磁盘的磁盘名应是Oracle生成的ASM磁盘名,
    不是添加该磁盘时所用的操作系统盘名。要确定删除磁盘时使用的正确名字,可查询V$ASM_DISK。在LABEL列找到操作系统磁盘名,
    再使用NAME列中相应的ASM磁盘名:
    ALTER DISKGROUP data2
    DROP DISK d2d;
    从磁盘组中删除所有想删的磁盘后,执行ALTER DISKGROUP REBALANCE命令初始化重新平衡操作。然后等待ASM移去被删除磁盘上的所有数据。
    监视V$ASM_OPERATION视图来观察该过程,或观察V$ASM_DISK视图的STATUS列。当重新平衡完成后,你可以删除或重新使用该驱动器。

    对磁盘组修改的所有相关命令:
    alter diskgroup ... drop disk
    alter diskgroup ... drop ...add
    alter diskgroup ... mount
    alter diskgroup ... dismount
    alter diskgroup ... check all

  • 相关阅读:
    C# vb实现浮雕特效滤镜效果
    一张图看懂SharpImage
    C#控制操控操作多个UVC摄像头设备
    C#读写修改设置调整UVC摄像头画面-缩放
    继承多态绕点 Java篇
    继承多态绕点 C#篇
    lock关键字理解
    关于C#迭代器
    关于排列组合中组合结果
    C#与Java中相等关系
  • 原文地址:https://www.cnblogs.com/datalife/p/1985497.html
Copyright © 2011-2022 走看看