zoukankan      html  css  js  c++  java
  • oracle动态磁盘管理

    一、ASM发展:

      oracle 想做硬件:
        收购sum公司的小型机业务
        推出一体机Exadata
          1、sum服务器
          2、磁盘柜(没做存储)
            推出asm建库方式配合一体机(自动使用磁盘柜的盘)(抛弃raid方式)
            把每块盘加入磁盘组(dg),加入dg后自动做条带化

    二、ASM优点:
      i/o 性能优化:
        做条带(加冗余) 

        磁盘组的三种冗余方式:
          external (外部冗余)(非一体机环境使用)

            由底层raid做冗余

          normal(每个数据存2份)(专门为一体机设计)
            先写主数据,然后找空的位置(未写相同的主数据的)写副本数据
            相同的主数据和副本数据不会再同一个盘上面
          hight(最少每个数据存3份)(专门为一体机设计)
            利用率少(很少使用)

      数据文件移动和重组织:
        自动合理分配每个盘的数据(动态平衡)
      文件名管理:

        自动文件名管理
      集群文件系统:

        在多台计算机之上,之间通过某种方式相互通信从而将集群内所有存储空间资源整合、虚拟化并对外提供文件访问服务的文件系统
      裸设备管理:
        自动使用裸设备

    三、使用ASM管理需要+ASM实例:

    +ASM实例:
      进程和内存组合
      只能启动到nomount状态
      管理asm使用的磁盘和磁盘组
      打开数据库时需要先开+ASM 在开asm数据库(关闭反过来)
      +ASM实例的进程:
        RBAL进程 加盘减盘时才工作

      10g 我们使用dbca来创建asm实例,11g我们使用grid软件来创建asm实例


    四、ASM权限管理:
      10g asm 最高权限 sysdba
      11g asm 最高权限 sysasm

    五、ASM的磁盘组:

    数据库
      可包含多个磁盘组
      磁盘组能被多个数据库使用
    磁盘组
      有多个磁盘
      一个磁盘不能属于多个磁盘组

    分配最小单元(AU) (类似lvm 中的pp)
      粗粒度划分:
        默认1M
        允许一次分配的大小:2的n次方(最大64M)
      细粒度划分:
        可以分配比1M更小的空间

    六、磁盘组管理:

    查看磁盘:

    select name,path from v$asm_dsik;
      删盘时用到:name
      加盘时用到:path

    创建组:  

      create diskgroup DATA2 external redundancy disk 'ORCL:ASMDISK04','ORCL:ASMDISK05' ATTRIBUTE 'compatible.asm' = '11.2';

      #名字data2 ,2块盘路径: 'ORCL:ASMDISK04','ORCL:ASMDISK05'
    加盘:
      alter diskgroup data add disk 'ORCL:ASMDISK06';
        #最好里面每个盘大小一样
        #最好一块一块的加(一次性加多个盘动态平衡数据很慢)

    删盘
      alter diskgroup data drop disk ASMDISK03;
        #只剩下一块盘只能删组
    删组:
      drop diskgroup data2 including contents;
        #正在使用的无法删除

    查询磁盘组的故障组分配:
      SELECT G.NAME,D.disk_number,D.STATE,D.redundancy,D.NAME,D.PATH,D.FAILGROUP,D.FAILGROUP_TYPE FROM V$asm_diskgroup g,v$asm_disk d where g.group_number=d.group_number;


    查看磁盘组,(空间情况)
      select name name2,state,type,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;

    查看磁盘情况

      select GROUP_NUMBER,free_mb,total_mb,disk_number,MOUNT_STATUS,mode_status,STATE,
    HEADER_STATUS,name name2,PATH from v$asm_disk order by 4,5;

    查看asm动态平衡:
      SQL> select * from v$asm_operation;

      #删盘时一定要注意等待动态平衡完成才能对磁盘进行(抹除磁盘头,格式化等操作)否则会造成数据丢失。

    只要动态平衡没完成误删除时可以回退:

       SQL> alter diskgroup asmdisk2 drop disk asmdisk2;
       SQL> alter diskgroup asmdisk2 undrop disks;

  • 相关阅读:
    vb笔记
    linux学习笔记
    linnux--shell
    # 用类来封装动态数组:分文件编写
    面向对象
    c++2
    c++1
    答疑:指针数组字符串
    文件操作
    用函数封装实现对一个数组增删改查
  • 原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/7099033.html
Copyright © 2011-2022 走看看