ASM

序号分类问题答案
1基础概念ASM主要功能管理磁盘组 在磁盘组内部管理冗余磁盘组。
最佳的磁盘IO管理和手动的调整。 
支持大表空间。
管理数据库对象,在新建数据库对象例如:表空间、日志文件和控制文件等的时候只需要指定文件名即可。
2基础概念AU是什么ASM自动分配的块空间就是Aus,Aus 全称Allocation units。  AU 是组成ASM disk的基本单元。
 ASM AU 在10G R2 中系统自动默认为1M(条带大小对应为128K),通过系统隐含参数可以静态调整。11G可以在创建磁盘组的时候动态调整。将Aus尺寸调大的时候,请同时调整_asm_stripesize的大小,例如:
_asm_ausize=10485760
_asm_stripesize=1048576
3基础概念ASM Extents 是什么一个或多个AU组成ASM的Extens(在10G里面AU的大小等于Extens的大小)。一个或多个Extens组成ASM file。可以使用下面的语句查询Extents的分布。
SELECT COUNT(PXN_KFFXP), DISK_KFFXP, GROUP_KFFXP FROM X$KFFXP WHERE
GROUP_KFFXP=2 GROUP BY DISK_KFFXP, GROUP_KFFXP ORDER BY GROUP_KFFXP,
DISK_KFFXP;
4基础概念ASM Rebalance触发的条件磁盘的添加、删除、改变尺寸会触发Rebalance,但是Rebalance不会自动工作,用来消除hot areas和hot
extents.
5基础概念不同大小的磁盘组成磁盘组会带来什么问题将25GB的磁盘加入50GB的磁盘组,在重新配平的过程中50GB的磁盘分配的extents将会是25GB磁盘分配的extents的两倍。由此看来不同大小的磁盘组成磁盘组会带来IO分布不均匀的问题。
6基础概念重新配平的时的IO操作大小10G在重新配平的时候ASM是同步的读1MB写1MB。
7ASM初始化参数INSTANCE_TYPE   可以设置为ASM与RDBMS,ASM就是设置实例为ASM类型,RDBMS就是数据库类型。
8ASM初始化参数DB_UNIQUE_NAME   数据库的唯名称,默认值是+ASM,在RAC环境下是+ASM节点编号。
9ASM初始化参数ASM_POWER_LIMIT  数据自动配平的值,值得范围是1-11,默认只是1,数值越大配平速度越快。生产系统慎用,因为配平的时候AU单元是锁定的,影响数据的访问。你也可以在配平的时候指定改值。
10ASM初始化参数ASM_DISKGROUPS   设定ASM实例启动的时候挂载的磁盘组。
11ASM初始化参数ASM_DISKSTRING  设定ASM管理磁盘搜索的路径
12ASM 后台进程PMONPMON:用于监控ASM实例中进程,主要用于处理失效的进程。
13ASM 后台进程RBAL负责创建重新配平的计划和管理磁盘组的Rebalance操作,RBAL调用ARBn(ARB0-ARBA)进程实际执行操作。ASM的RBAL和数据库实例的RBAM的功能是不一样的。
14ASM 后台进程SMON系统监控进程和监控CSS服务在节点上的监控。
15ASM 后台进程CKPT在RAC中管理跨越实例的调用。
16ASM 后台进程LGWR负责管理ASM Active Change Directory (ACD),将缓存中的数据更新到磁盘。
17ASM 后台进程DBWnDBWn:管理ASM实例的SGA buffer cache,DBWR负责将脏数据(changed metadata buffers)从ASM buffer cache写回磁盘。
18ASM 后台进程MMANMMAN:与自动SGA管理有关,负责自动管理SGA。
19ASM 后台进程PSPnPSPn:用于产生Oracle进程
20ASM 后台进程ARBx  ASM实例的数据配平的操作进程,我们可以在alert_+asm.log中看到在执行ALTER DISKGROUP asm_data2 REBALANCE POWER 5;后看到它们的运行情况。
如下:
Starting background process ARB0
Starting background process ARB1
ARB0 started with pid=17, OS id=3972……
21ASM 后台进程GMON负责管理磁盘的活动删除和离线,以及负责磁盘组的向前兼容。
22ASM 后台进程ASMB该进程使用磁盘组名联系CSS,并且获取关联的ASM连接字符串,然后使用该连接字符串连接ASM实例。通过使用这种持久的连接,交换定期的消息以更新统计,并且提供一种推动机制。在需要ASM干涉的操作期间,例如通过数据库前台创建文件时,数据库前台会直接连接ASM实例以执行该操作。成功完成文件创建之后,ASM将ASM文件的Extent的位图发送给数据库实例。此外,ASMB也将数据库I/O统计信息发送给数据库实例。ASM instace启动以后,通过ASMB进程和osccd通信,将ASM的一些信息告诉给ocssd,而数据库则从ocssd获得这些信息,也就是说,ocssd是ASM Instance和Database之间的纽带。
23ASM视图V$ASM_ALIAS显示系统和用户定义的别名(主要是ASM文件的别名),该视图只显示挂载的磁盘组的包括别名。数据库实例该视图没有信息。
24ASM视图V$ASM_CLIENT  显示每个实例打开的ASM磁盘组
25ASM视图V$ASM_DISK显示ASM磁盘的详细信息,主要包括mount status, disk state, size。
26ASM视图V$ASM_DISK_IOSTAT显示每一个使用ASM磁盘的数据库实例的IO使用情况。
27ASM视图V$ASM_DISK_STAT显示的信息与V$ASM_DISK的一样,但V$ASM_DISK_STAT直接读取内存磁盘信息。避免查询磁盘降低性能。
28ASM视图V$ASM_DISKGROUP显示磁盘组的信息。
29ASM视图V$ASM_DISKGROUP_STAT显示的信息与V$ASM_DISKGROUP,但V$ASM_DISK_STAT直接读取内存磁盘组信息。避免查询磁盘降低性能。
30ASM视图V$ASM_FILE显示ASM文件的信息,只有MOUNT上的磁盘才能显示。
31ASM视图V$ASM_OPERATION显示磁盘组配平(rebalance)运行的信息。
OPERATION的状态说明:
REBAL 磁盘组正在配平
COD   磁盘组正在恢复
DSCV  磁盘组正在被发现,在RBAL之前。 
ACD   新的ASM实例加入cluster和新的ASM实例为了准备提供服务的状态。
RFRSH 磁盘被刷新和删除时候的状态
EXPEL 磁盘被除名时候的状态
32ASM视图V$ASM_TEMPLATE显示ASM用户与系统创建模板的信息。
33ASM 元数据CODContinuing Operations Directory 是ASM负责跟踪长时间操作元数据,例如文件创建和重新配型操作。如果上述操作失败COD记录的数据用于恢复。例如重新配平操作失败,在RAC中它将重新应用于其它可用的节点如果是单实例磁盘组再次挂载的时候重新配平将会重新启动。若果文件创建失败它将负责恢复。在log日志中我们可以看到COD的操作
NOTE: cache mounting group 2/0xB68207F1 (ASM_DATA2) succeeded
SUCCESS: diskgroup ASM_DATA2 was mounted
Sat Jul 25 16:14:02 2009
NOTE: recovering COD for group 1/0xae7207f0 (ASM_DATA1)
SUCCESS: completed COD recovery for group 1/0xae7207f0 (ASM_DATA1)
NOTE: recovering COD for group 2/0xb68207f1 (ASM_DATA2)
SUCCESS: completed COD recovery for group 2/0xb68207f1 (ASM_DATA2)
34ASM 元数据ASM元数据分类包括什么?ASM元数据分类:物理元数据和虚元数据。物理元数据存储在硬盘固定的位置,虚元数据存储在每一个ASM Flie文件上。所有的元数据存储在一个4K的块在文件头里。
35ASM 元数据物理元数据分类包括什么?Disk Header
Allocation Table (AT)
Free Space Table (FST)
Partnership Status Table (PST)
36ASM 元数据磁盘头文件的大小是什么?磁盘头文件的大小为一个AU,在每个磁盘的第一个块上。
37ASM 元数据磁盘头文件包括的内容是什么?disk name
disk number
diskgroup name
failure group name
disk size
allocation unit (AU) size
creation time
mount time
ASM compatibility
RDBMS compatibility
file directory pointer 启动的时候指向了虚拟元数据的位置的指针
ASMLIB reserved block
38ASM 元数据虚元数据包括的内容是什么?File Directory
Disk Directory
Active Change Directory (ACD)
Continuing Operations Directory (COD)
Template Directory
Alias Directory
Attribute Directory
Staleness Directory
Staleness Registry
39ASM 元数据kfed read 简单说明kfbh.endian:  /* endianness of writer */ Little endian = 1  Big endian = 0
kfbh.hard:    /* H.A.R.D. magic # and block size */  
kfbh.type     /* metadata block type */
kfbh.datfmt   /* metadata block data format */
kfbh.block    /* block location of this block*/
  blk -- Disk header should have T=0 and NUMB=0x0
  obj -- Disk header should have TYPE=0x8 NUMB=<disknumber>对应 v$asm_disk中的disk_number
kfbh.check    /* check value to verify consistency */
kfbh.fcn      /* change number of last change*/?
kfdhdb.driver /* ASMLIB driver reserved block */ If no driver is defined "ORCLDISK" is used.  
kfdhdb.compat /* Comaptible software version*/兼容版本 example: 0x 0a 100000 You get:  a=10 1=1 so 10.1.0 .0.0
kfdhdb.dsknum /* ASM disk number*/ 每个磁盘组中磁盘的编号从0开始,最大值65335.和kfbh.block.obj相等。
kfdhdb.capname /* Capacity grp, unused*/
kfdhdb.crestmp /* Creation timestamp*/
kfdhdb.mntstmp /* Mount timestamp */ 磁盘扇区的容量
kfdhdb.secsize /* Disk sector size (bytes) *
      This is the physical sector size of the disk in bytes. All I/O's to the
      disk are described in physical sectors. This must be a power of 2. An
      ideal value would be 4096, but most disks are formatted with 512 byte
      sectors. (from asmlib.h)
kfdhdb.blksize /* Metadata block (bytes) */
kfdhdb.ausize  /* Allocation Unit (bytes) */
kfdhdb.mfact   /* Stride between phys addr AUs */
kfdhdb.dsksize /* Disk size in Aus */ Mulitply by AUs to get actual size of disk when added.  
kfdhdb.pmcnt   /* Permanent phys addressed Aus */ Number of physically addressed allocation units.
kfdhdb.fstlocn /* First FreeSpace table blk num */ Used to find freespace.
kfdhdb.altlocn /* First Alocation table blk num */ Used to find alocated space.
kfdhdb.f1b1locn/* File Directory blk 1 AU num   */ Beginging for file directory
kfdhdb.grptyp:  KFDGTP_EXTERNAL ->指出磁盘类型,外部冗余。
kfdhdb.hdrsts: 3 ; 0×027: KFDHDR_MEMBER - > 磁盘头状态,表明它是磁盘组成员。
kfdhdb.dskname: DATA_0000 ; 0×028: length=9 ->磁盘名称。
kfdhdb.grpname: DATA ; 0×048: length=4 ->磁盘组名称。
kfdhdb.fgname: DATA_0000 ; 0×068: length=9 ->Failure Group组名称,如果该磁盘组没有Failure Group组那么它的fgname名称和dskname相同。
kfdhdb.hdrsts: 磁盘在磁盘组中的状态,这个信息与v$asm_disk的HEADER_STATUS一致。
40ASM管理如何查询磁盘组状态select *
   from v$asm_diskgroup; 
select group_number, name, total_mb, free_mb, state, type
   from v$asm_diskgroup;
41ASM管理如何查询磁盘状态SELECT *
   FROM   v$asm_disk;                
SELECT group_number, disk_number, mount_status, header_status, state, path
   FROM   v$asm_disk
42ASM管理如何挂载磁盘组alter diskgroup asm_data1 mount;
43ASM管理ASM是什么ASM 就是简化的Oracle DB的实例,是Oracle用来管理数据文件的实例,是Oracle自己的卷管理器。一个ASM实例可以同时为多个oracle DB和RAC实例提供服务。
44ASM管理如何挂载全部磁盘组ALTER DISKGROUP ALL MOUNT 
45ASM管理ASM控制文件存放路径show parameter CONTROL_FILES; 这个参数显示的值是有问题的,实际上控制文件存放在ASM的实例中。
46ASM管理如何启动ASM使用Startup启动ASM实例,选项如下 
FORCE 用于about 之后的启动
MOUNT 启动实例加载磁盘组
NOMOUNT 启动实例不加载磁盘组
没有OPEN选项
47ASM管理如何关闭使用SHUTDOWN 关闭ASM实例,选项和DB实例的相同。
48ASM管理ASM 磁盘组冗余级别在 CREATE DISKGROUP 中可以为磁盘组指定如下冗余级别
NORMAL REDUNDANCY 两路镜像,需要两个failure groups。   
HIGH REDUNDANCY  三路镜像,需要三个failure groups
EXTERNAL REDUNDANCY 使用外部冗余。
49ASM管理如何创建磁盘组create diskgroup asm_data2 normal redundancy
 failgroup controller1 disk 
'F:\asmdisks\_FILE_DISK8',
'F:\asmdisks\_FILE_DISK9'
 failgroup controller2 disk 
'F:\asmdisks\_FILE_DISK10',
'F:\asmdisks\_FILE_DISK11';
CREATE DISKGROUP asm_data1 EXTERNAL REDUNDANCY DISK
'/dev/raw/raw1',
'/dev/raw/raw2',
'/dev/raw/raw3'
50ASM管理如何删除磁盘组DROP DISKGROUP asm_data2 INCLUDING CONTENTS;
51ASM管理如何设定AU为128KBALTER system SET "_asm_ausize" = 131072 SCOPE=SPFILE;
52ASM管理如何查询ASM的隐含参数select a.ksppinm "Name", b.ksppstvl "Value"
  from x$ksppi a, x$ksppcv b
 where a.indx = b.indx
   and ksppinm like '\_%asm%' escape '\'
order by a.ksppinm;
53ASM管理如何设置数据文件的别名ALTER DISKGROUP asm_data2 ADD ALIAS '+ASM_DATA2/asmrems/datafile/test.dbf'
  FOR '+ASM_DATA2/asmrems/datafile/test.256.692967941';
54ASM管理如何删除数据文件的别名   ALTER DISKGROUP asm_data2 drop ALIAS '+ASM_DATA2/asmrems/datafile/test.dbf';
55ASM管理如何手动平衡数据在磁盘组上ALTER DISKGROUP asm_data2 REBALANCE POWER 5;
例子:
1查询磁盘状态
select group_number, name, total_mb, free_mb, state 
   from v$asm_disk;
2手动配平,同时查询V$ASM_OPERATION,wait选项是为了确保空间的增加和可用,因为重新配平是异步操作。
ALTER DISKGROUP asm_data2 REBALANCE POWER 5 wait;
3再次查询磁盘状态
select group_number, name, total_mb, free_mb, state 
   from v$asm_disk;
56ASM管理如何添加磁盘EXTERNAL REDUNDANCY情况下:
ALTER DISKGROUP asm_data2 ADD DISK
 'F:\asmdisks\_FILE_DISK12',
NORMAL REDUNDANCY情况下:
ALTER DISKGROUP asm_data2 ADD FAILGROUP  controller1 DISK 'F:\asmdisks\_FILE_DISK12' 
FAILGROUP controller2 DISK 'F:\asmdisks\_FILE_DISK13'
57ASM管理如何删除磁盘ALTER DISKGROUP asm_data2 DROP DISK ASM_DATA2_0004;
ALTER DISKGROUP asm_data2 DROP DISK 
ASM_DATA2_0004,ASM_DATA2_0005 REBALANCE POWER 8;
58ASM管理ASM文件格式说明+group/dbname/file type/tag.file.incarnation
其中,group是磁盘组名,dbname是文件所属的数据库,file type是Oracle文件类型,tag是文件类型特有的信息,file.incarnation对确保唯一性。
59ASM管理ab_<ASM SID>.dat文件的作用在$ORACLE_HOME/dbs下
ab_<ASM SID>.dat 记录了数据库实例连接ASM实例的信息,如果删除了这个文件数据库实例就无法连接到ASM实例了。
60ASM管理hc_<SID>.dat文件的作用在$ORACLE_HOME/dbs下
hc_<SID>.dat ASM健康检查的文件,删除了这个文件ASM实例的健康检查信息就不准确了。
61ASM管理如何RAC环境下不同节点设置的首选读取组 (11G下有效)Enter the following for Node1 (site1):
+ASM1.asm_preferred_read_failure_groups=MYDATA.FG1
Enter this code for Node2 (site2):
+ASM2.asm_preferred_read_failure_groups='MYDATA.FG2'
62ASM管理如何在存储间部署移动ALTER DISKGROUP ADD DISK '/dev/rdsk/c7t19*'
DROP DISK DATA_0001, DATA_0002, DATA_0003, DATA_0004 REBALANCE POWER 8;
这样可以比先删除磁盘再添加磁盘减少两次重新配平。
63ASM管理RDBMS如何在ASM上建立表空间CREATE TABLESPACE ISHAN DATAFILE '+DATA' SIZE 10GB;+DATA为磁盘组的名称
64ASM管理如何查看全部的ASM File 文件?SELECT CONNECT ('+'||GNAME,SYS_CONNECT_BY_PATH(ANAME, '/'))
FULL_ALIAS_PATH FROM (SELECT G.NAME GNAME, A.PARENT_INDEX PINDEX,
A.NAME ANAME, A.REFERENCE_INDEX RINDEX FROM V$ASM_ALIAS A,
V$ASM_DISKGROUP G WHERE A.GROUP_NUMBER=G.GROUP_NUMBER) START WITH
(MOD(PINDEX, POWER(2,24))) = 0 CONNECT BY PRIOR RINDEX = PINDEX;
65ASM管理一个ASM实例Oracle推荐管理几个磁盘组?为了降低管理ASM和其磁盘组的复杂程度,Oracle推荐的方法是,一般情况下每个RAC集群或单个ASM实例维护和管理不超过两个磁盘组。一个磁盘组贮存数据,一个磁盘组放闪回区。
66ASM管理远端数据库可以连接本地ASM实例吗?数据库实例是标准Oracle实例,并且是ASM实例的客户端。数据库和ASM之间的通信总是在节点内进行;也就是说,数据库不会联系远程(在RAC中)ASM实例以服务数据库请求。
67ASM管理如何备份文件头信息可以在ASM实例联机状态下进行dd if=/dev/raw/raw4 bs=4096 count=1 of=/tmp/dd_raw4header或
kfed read /dev/raw/raw4>/tmp/raw4.txt
68ASM管理如何恢复文件头信息必须关闭ASM实例dd if=/tmp/dd_raw4header bs=4096 count=1 of=/dev/raw/raw4 或
kfed merge /dev/raw/raw4 /tmp/raw4.txt
69ASM 故障处理ORA-15063 错误处理步骤:
1 检查磁盘组当前状态: SELECT GROUP_NUMBER,DISK_NUMBER,MOUNT_STATUS,HEADER_STATUS,STATE,NAME,PATH FROM V$ASM_DISK;
注意 DISK_NUMBER 等于0 的磁盘,也就是没有加入任何磁盘组的磁盘。
2 根据上述语句返回结果逐一检查磁盘owner和权限是否正确。。
3 检查初始化参数ASM_DISKSTRING是否正确。
4 使用kfed 读取磁盘头信息。
70数据库实例在应用ASM的实例中需要调整的初始化参数PROCESSES 增加 16.
LARGE_POOL 增加 600K.
SHARED_POOL 增加内存,用来存储 extent maps.
71数据库实例增加SHARED_POOL指导方针1 计算文件大小
SELECT SUM (BYTES)/(1024*1024*1024) FROM V$DATAFILE;
SELECT SUM (BYTES)/(1024*1024*1024) FROM V$LOGFILE A, V$LOG B WHERE
A.GROUP#=B.GROUP#;
SELECT SUM (BYTES)/(1024*1024*1024) FROM V$TEMPFILE WHERE
STATUS='ONLINE';
2 添加原则
1.外部冗余磁盘 = (every 100GB of file space
needs 1MB of extra shared pool) + 2MB
2.正常冗余: (every 50GB of file space needs
1MB of extra shared pool) + 4MB
3. 高冗余: (every 33GB of file space needs 1MB
of extra shared pool) + 6MB
72数据库新增实例进程RBAL进程说明打开所有的磁盘组,列出每一个磁盘组和磁盘组可以提供服务的客户端。
73数据库新增实例进程ASMB进程说明作用和ASM实例的ASMB相同,信息传递方向相反。









本文转自 hsbxxl 51CTO博客,原文链接:http://blog.51cto.com/hsbxxl/763501,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值