博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DBA2 第十二章:自动存储管理

Posted on 2011-09-24 11:20  little健健  阅读(483)  评论(0编辑  收藏  举报

自动存储管理

  • 概述
    • 可移植的高性能集群文件系统
    • 管理 Oracle DB 文件
    • 数据分布到各个磁盘中以平衡负载
    • 跨磁盘的集成镜像
    • 解决许多存储管理问题
  • ASM 常规体系结构
    • 要使用 ASM,在启动数据库实例之前,必须启动一个名为 ASM 实例的特殊实例。ASM 实例不会装载数据库,而是管理使 ASM 文件可用于普通数据库实例所必需的那些元数据。
    • 数据库实例直接访问 ASM 文件的内容,它们与ASM 实例通信的目的只是为了获取这些文件的布局信息
    • ASM 实例包含两个新的后台进程
      • RBAL:负责协调磁盘组的重新平衡活动
      • ARB0、ARB1,……:负责执行实际的重新平衡分配单元移动操作。在同一时刻可以存在许多此类进程
  • ASM 实例任务
    • 创建 ASM 实例
      • DBCA--->配置自动存储管理
      • 配置 ASM 实例后,DBCA 会创建 ASM 实例参数文件和ASM 实例口令文件
    • ASM 实例初始化参数
      • INSTANCE_TYPE:对于 ASM 实例,该参数应设置为ASM。
      • DB_UNIQUE_NAME:该参数指定此 ASM 实例为其管理磁盘组的服务提供程序的名称。默认值为+ASM。仅当在同一节点上运行多个ASM 实例时才须修改默认值。
      • ASM_POWER_LIMIT:该参数控制重新平衡操作的速度。值的范围在1 到 11 之间,11 表示速度最快。如果省略,该值将默认为 1。
      • ASM_DISKSTRING:该参数是一个与操作系统相关的值,由ASM 用来限制搜索中涉及的磁盘集。
      • ASM_DISK_GROUPS:列出 ASM 实例启动时或者使用ALTER DISKGROUP ALL MOUNT命令时装载的磁盘组的名称
    • 数据库实例参数更改
      • 如果 LOG_ARCHIVE_DEST 设置为不完整的 ASM 文件名(例如+dGroupA),则将忽略
      • LOG_ARCHIVE_FORMAT。如果LOG_ARCHIVE_DEST 设置为 ASM 目录(例如,
      • +dGroupA/myarchlogdir/),则将使用 LOG_ARCHIVE_FORMAT,并且文件是非
      • OMF 文件。
      • 以下参数允许将 ASM 文件名的多文件创建上下文格式作为目标
        • DB_CREATE_ONLINE_LOG_DEST_n
        • DB_CREATE_FILE_DEST
        • DB_RECOVERY_FILE_DEST 
        • CONTROL_FILES
        • LOG_ARCHIVE_DEST_n
        • LOG_ARCHIVE_DEST
        • STANDBY_ARCHIVE_DEST
    • 启动 ASM 实例
      • $ export ORACLE_SID='+ASM‘   --更改ORACLE_SID
        $ echo $ORACLE_SID --查看当前ORACLE_SID
        $ sqlplus / as sysdba
        sql>startup --启动ASM实例


    • 访问 ASM 实例
      • AS SYSDBA:所有操作
      • AS SYSOPER:非破坏性操作
        • STARTUP/SHUTDOWN 
        • ALTER DISKGROUP MOUNT/DISMOUNT 
        • ALTER DISKGROUP ONLINE/OFFLINE DISK 
        • ALTER DISKGROUP REBALANCE 
        • ALTER DISKGROUP CHECK 
        • SELECT all V$ASM_* views
    • 关闭 ASM 实例
      • 尝试关闭处于 NORMAL、IMMEDIATE 或 TRANSACTIONAL 模式下的ASM 实例时,只有在没有任何数据库实例连接到该ASM 实例的情况下,操作才会成功。
  • ASM 存储
    • 概览
      • 任何单个ASM 文件只能包含在一个磁盘组中
      • 一个磁盘组中可以包含属于多个数据库的多个文件,并且单个数据库可以使用来自多个磁盘组的存储空间
    • ASM 磁盘组
      • 作为逻辑单元管理的磁盘组
      • 将磁盘总空间划分为统一大小的单元
      • 将各个文件平均分配到所有磁盘中
      • 根据文件类型使用粗粒度或细粒度的条带化
      • 管理的是磁盘组而非文件
    • 故障组
      • 故障组是某个特定磁盘组中的一组磁盘,共享一个需要容错的公用资源。
    • 磁盘组镜像
      • 类型
        • 外部冗余:不提供镜像。延迟硬件镜像
        • 正常冗余:支持双向镜像
        • 高冗余:提供三向镜像
    • 磁盘组动态重新平衡
      • 无论存储配置何时发生更改,都会自动联机重新平衡
      • 仅按相应比例将数据移至添加的存储
      • 无需手动优化 I/O 
      • 联机移植到新的存储
      • 可在系统上使用ASM_POWER_LIMIT配置负载
    • 管理磁盘组
      • ASM 实例
        • CREATE DISKGROUP
        • DROP DISKGROUP
      • 数据库实例
        • ALTER DISKGROUP
    • 创建和删除磁盘组
      • 磁盘组状态
        • CANDIDATE:该磁盘以前从未分配给任何一个 ASM 磁盘组。
        • FORMER:该磁盘以前曾分配给 ASM 磁盘组,但目前处于未分配状态。
        • PROVISIONED:正在使用 ASMLib,并且此磁盘尚未分配给磁盘组。
      • 创建
        • CREATE DISKGROUP dgroupA NORMAL REDUNDANCY --默认冗余
          FAILGROUP controller1 DISK

          '/devices/A1' NAME diskA1 SIZE 120G FORCE, --FORCE 表示,即使指定磁盘已作为 ASM 磁盘组的成员格式化,也应该将该磁盘添加到指定磁盘组中
          '/devices/A2',

          '/devices/A3'
          FAILGROUP controller2 DISK
          '/devices/B1',
          '/devices/B2',
          '/devices/B3';
      • 删除
        • DROP DISKGROUP dgroupA INCLUDING CONTENTS;  --连内容一起删除
    • 将磁盘添加至磁盘组
      • ALTER DISKGROUP dgroupA ADD DISK
        '/dev/rdsk/c0t4d0s2' NAME A5,
        '/dev/rdsk/c0t5d0s2' NAME A6,
        '/dev/rdsk/c0t6d0s2' NAME A7,
        '/dev/rdsk/c0t7d0s2' NAME A8;


    • 其它 ALTER 命令
      • ALTER DISKGROUP dgroupA DROP DISK A5;   --从 dgroupA 中删除一个磁盘


        ALTER DISKGROUP dgroupA
        DROP DISK A6
        ADD FAILGROUP fred
        DISK '/dev/rdsk/c0t8d0s2' NAME A9; ----在单个命令中添加和删除磁盘


        ALTER DISKGROUP dgroupA UNDROP DISKS; --取消磁盘删除操作


    • ASM 文件
      • CREATE TABLESPACE sample DATAFILE '+dgroupA';
  • 将数据库移植到 ASM 存储区
    • MARK。。