q528 发表于 2018-9-14 08:17:50

Oracle ASM 实例管理

  一、基本信息及概念
  1、ASM是ORACLE公司的自动存储管理软件。它使用裸设备和ASM磁盘。在使用该软件之前需要安全相应平台的ASM库驱动程序。
  2、ASM将多块磁盘组合起来形成一个磁盘组,磁盘组具有裸设备的读写性能和文件系统的管理性能,是集二者优点的存在。
  3、ASM磁盘组由多块磁盘组成,每块磁盘由多个AU(allocate unit:分配单元)组成,每个AU大小为1MB。
  4、ASM磁盘组实现了数据容错的功能,其包含三种冗余级别:
  外部冗余(EXTERNAL REDUNDANCY) :同一个AU在ASM磁盘组里没有有副本
  标准冗余(NORMAL REDUNDANCY) :同一个AU在ASM磁盘组里有一个副本
  高冗余(HIGH REDUNDANCY):同一个AU在ASM磁盘组里有两个副本
  5、ASM为了实现磁盘组的容错,提出了故障组(FAIL GROUP)的概念。且规定,同一个AU的副本永远不能放在同一个故障组里。
  6、ASM磁盘组具有数据重平衡的功能。所谓重平衡的本质是:让组内所有磁盘数据均匀,以实现I/O负载的均衡。
  重平衡的工作原理:
  当加入一块磁盘时,ASM从磁盘组内已有的各块磁盘上读出部分AU写入到新加入的磁盘中。以实现各盘数据量均衡。
  当删除一块磁盘时,ASM从即将删除的磁盘上读出所有的AU,然后平均写入到组内其它的磁盘上。以实现各盘数据量均衡。
  二、实例
  1、ASM实例和数据库实例一样,同样有自己的参数文件,它们的功能是相同的。
  2、ASM实例只用两个状态:nomount、mount
  3、ASM实例的启动和数据库的启动一样。 例如:startup nomount|mount
  4、ASM实例的关闭和数据库的关闭一样。 例如:shutdown immediate|normal|transactional|abort
  5、ASM实例的服务:
  ASM实例有一个服务,名叫组服务(group service),它将ASM实例能管理的全部磁盘组注册到自己的管理信息表里。该表里包还磁盘组的名称以及如何访问磁盘组的信息。他的服务对象是数据库的前台进程ASMB.进程ASMB只有在数据库与ASM实例通信时才产生。
  6、ASM实例的功能:用于维护ASM磁盘组。包括:磁盘组的创建,删除,修改。
  7、ASM实例的操作:
  $sqlplus /nolog
  sql>connect / as sysdba #连接实例
  sql>startup nomount   #将实例启动到NOMOUNT状态,
  sql>startup mount    #将实例启动到MOUNT状态
  sql>shutdown immediate#关闭实例
  备注:如果ASM实例处于NOMOUNT状态,欲将其提升为MOUNT状态,则应使用如下命令:
  alter diskgroup diskgroup_name mount;
  三、ASM实例的参数文件
  1、ASM实例的参数文件的作用是用于建立ASM实例的内存结构和启动ASM实例的后台进程。
  2、ASM实例初始化参数的含义和数据库初始化参数的含义相同。
  如:user_dump_dest,
  background_dump_dest
  core_dump_dest
  remote_login_passwordfile
  3、重要参数的说明:
  instance_type='asm'   #ASM实例的设置值
  instance_type='rdbms'#数据库实例的设置值
  asm_diskgroups='dgdata1,dgdata2'#指的是ASM启动时默认挂载那些磁盘组。
  如果没有设置该值,则启动ASM到MOUNT时会报没有磁盘组被挂载的错误。
  asm_diskstring='/dev/raw/raw*'#指的是ASM实例在哪里以什么样的格式
  搜索磁盘。切记不是路径,是搜索模式。
  asm_power_limit=#表示重平衡的速度和吞吐量,1最小,对用户影
  响最小。反之亦然。0表示关闭重平衡。
  4、ASM实例的后台进程:
  (1)GMON(global monitor):用于监控维护磁盘组的元数据操作。
  (2)RBAL:用于协调磁盘组内各磁盘的重平衡操作。负责生成重平衡计划。
  (3)ARBx:负责实际的重平衡操作。
  5、一个特殊的进程:
  ASMB:负责数据库实例与ASM实例通信,它从GS(group service)读取信息。只有在数
  据库实例与ASM实例通信时才产生。属于数据库进程。
  四、ASM实例的相关视图说明:
  1、使用初始化参数【asm_diskstring】的时机:
  (1)创建磁盘组
  (2)向磁盘组中追加磁盘
  (3)访问v$asm_disk
  (4)访问v$asm_diskgroup
  以上四种情况,ASM会根据初始化【asm_diskstring】指定的磁盘字符串搜索所有可用磁盘。注意:是磁盘字符串,不是磁盘路径。如:/dev/oracleasm/disks/DISK* 。
  为了避免频繁的搜索磁盘,可以查询视图:v$asm_disk_stat,v$asm_diskgroup_stat .
  2、视图关系:
  视图:v$asm_disk与v$asm_disk_stat中的字段相同,含义相同,只是前者搜索磁盘,后者不搜索。
  视图:v$asm_diskgroup与v$asm_diskgroup_stat中的字段相同,含义相同,只是前者搜索磁盘,后者不搜索。
  五、初始化参数(asm_diskstring)使用说明
  1、作用:指定asm磁盘的搜索模式
  2、定义:alter system set asm_diskstring='/dev/oracleasm/disk/DISK*' scope=spfile;
  (适用于ASM磁盘)
  or
  alter system set asm_diskstring='ORCL:DISK*' scope=spfile; (适用于ASM磁盘)
  or
  alter system set asm_diskstring='/dev/raw/raw*' scope=spfile; (适用于裸设备)
  3、注解:
  在这里该参数的值不能指定为磁盘的搜索路径,而且严格区分大小写。
  例如:裸设备在/dev/raw/目录下,则不能将asm_diskstring='/dev/raw/',应该设置为asm_diskstring='/dev/raw/raw*',否则ASM找不到磁盘。
  4、实例操作:
  第一组:
  改变前

  SQL>>  SQL> shutdown immediate
  SQL> startup nomount
  SQL> select group_number,disk_number,name,path,total_mb from v$asm_disk;
  GROUP_NUMBER DISK_NUMBERNAME    PATH         TOTAL_MB
  ------------ ------------ ----------------------------------------
  0   0      ORCL:DISK1      8189
  0   3      ORCL:DISK4      8189
  0   2      ORCL:DISK3      8189
  0   1      ORCL:DISK2      8189
  改变后:

  SQL>>  SQL> shutdown immediate
  SQL> startup nomount
  SQL> select name,path from v$asm_disk;
  no rows selected
  第二组:
  改变前:

  SQL>>  SQL> shutdown immediate
  SQL> startup nomount
  SQL> select group_number,disk_number,name,path,total_mb from v$asm_disk;
  GROUP_NUMBERDISK_NUMBER NAME   PATH         TOTAL_MB
  ----------------------- ------------------------    ----------
  0       0   /dev/oracleasm/disks/DISK4   8189
  0       3   /dev/oracleasm/disks/DISK1   8189
  0       2   /dev/oracleasm/disks/DISK2   8189
  0       1   /dev/oracleasm/disks/DISK3   8189
  改变后:

  SQL>>  SQL> startup nomount
  SQL> select group_number,disk_number,name,path,total_mb from v$asm_disk;
  no rows selected
  oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

页: [1]
查看完整版本: Oracle ASM 实例管理