【Oracle ASM】Continuing Operations Directory (file #4)_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2114 | 回复: 1   主题: 【Oracle ASM】Continuing Operations Directory (file #4)        下一篇 
    本主题由 koei123 于 2015-2-6 4:47:18 移动
kim
注册用户
等级:中校
经验:1729
发帖:222
精华:0
注册:2011-7-21
状态:离线
发送短消息息给kim 加好友    发送短消息息给kim 发消息
发表于: IP:您无权察看 2015-2-3 11:25:43 | [全部帖] [楼主帖] 楼主

【Oracle ASM】ASM FILE NUMBER 3 Active Change Directory》      中我们介绍而来ACD,但是对于长时间运行的操作则简单的ACD不足以描述其变化。 在一些特殊情况下,Continuing Operations Directory (COD)会分配记录来跟踪大的操作并保证其完成。 如果由于进程失败而导致操作没有彻底完成,则恢复进程将查询该COD记录,并要么完成 要么回滚该操作。

一般有2种持续性的操作,分别为 回滚和后台操作。 后台操作一般由ASM实例的后台进程来实施。 其作为diskgroup维护的一部分来完成,而非特殊要求。一个后台操作持续工作,直到其完成或者实例CRASH。

如果实例CRASH,则恢复实例时将需要重启该后台操作。 rebalance diskgroup即是后台操作的一种。

回滚操作类似于数据库事务。 其由ASM前台进程申请启动。 在此操作过程中diskgroup处于非一致的状态。该操作要么全部完成 ,要么全部回滚。长见由数据库实例来引发这些前台操作。如果数据库实例CRASH,ASM前台进程失败,或者出现一些不可恢复的错误,则该操作将被终止。 创建一个文件将会是一个比较好的例子。如果当创建一个文件时若发生错误,则正为该文件分配的空间需要被释放,部分创建的文件也要被删除。 若数据库实例并未提交该创建,则文件必须被删除。如果ASM实例CRASh了,则该工作需要recover实例时完成。

asm database file creation


Continuing Operation Directory (COD) 该metadata file 4 中记录的是在单个metadata block中无法完成的操作记录到COD中,这样当ASM instance crash时可以恢复这些操作。例如创建 删除和resize文件,这其中file number 4 blkn=1为KFBTYP_COD_RB  即回滚rollback数据,后面的数据为KFBTYP_COD_DATA。

可回滚的操作opcodes包括:

1 - Create a file
2 - Delete a file
3 - Resize a file
4 - Drop alias entry
5 - Rename alias entry
6 - Rebalance space COD
7 - Drop disks force
8 - Attribute drop
9 - Disk Resync
10 - Disk Repair Time
11 - Volume create
12 - Volume delete
13 - Attribute directory creation
14 - Set zone attributes
15 - User drop


每次ASM diskgroup 尝试mount时都会读取FILE number 4 COD中的数据来保证操作要么完成、要么回滚。

SQL> SELECT xnum_kffxp "Extent", au_kffxp "AU", disk_kffxp "Disk" from  x$kffxp
2    WHERE group_kffxp=1 and number_kffxp=4
3    and xnum_kffxp <> 2147483648;
Extent         AU       Disk
---------- ---------- ----------
0          7          0
0          3          3
0          6          4
1          3         10
1          2         11
1          3          6
SQL> select path,disk_number from v$asm_disk where disk_number=0;
PATH
--------------------------------------------------------------------------------
DISK_NUMBER
-----------
/oracleasm/asm-disk01
0
[oracle@mlab2 ~]$  kfed read /oracleasm/asm-disk01 aus=4194304 aun=7 blkn=0|less
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh.type:                            9 ; 0x002: KFBTYP_COD_BGO
kfbh.datfmt:                          1 ; 0x003: 0x01
kfbh.block.blk:                       0 ; 0x004: blk=0
kfbh.block.obj:                       4 ; 0x008: file=4
kfbh.check:                    17378383 ; 0x00c: 0x01092c4f
kfbh.fcn.base:                    44618 ; 0x010: 0x0000ae4a
kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
kfbh.spare1:                          0 ; 0x018: 0x00000000
kfbh.spare2:                          0 ; 0x01c: 0x00000000
kfrcbg.size:                          0 ; 0x000: 0x0000
kfrcbg.op:                            0 ; 0x002: 0x0000
kfrcbg.inum:                          0 ; 0x004: 0x00000000
kfrcbg.iser:                          0 ; 0x008: 0x00000000
kfrcbg.iser:                          0 ; 0x008: 0x00000000
[oracle@mlab2 ~]$ kfed read /oracleasm/asm-disk01 aus=4194304 aun=7 blkn=1|less
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh.type:                           15 ; 0x002: KFBTYP_COD_RBO
kfbh.datfmt:                          2 ; 0x003: 0x02
kfbh.block.blk:                       1 ; 0x004: blk=1
kfbh.block.obj:                       4 ; 0x008: file=4
kfbh.check:                    34548815 ; 0x00c: 0x020f2c4f
kfbh.fcn.base:                    44619 ; 0x010: 0x0000ae4b
kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
kfbh.spare1:                          0 ; 0x018: 0x00000000
kfbh.spare2:                          0 ; 0x01c: 0x00000000
kfrcrb[0].opcode:                     0 ; 0x000: 0x0000
kfrcrb[1].opcode:                     0 ; 0x002: 0x0000
kfrcrb[2].opcode:                     0 ; 0x004: 0x0000
kfrcrb[3].opcode:                     0 ; 0x006: 0x0000
kfrcrb[4].opcode:                     0 ; 0x008: 0x0000
kfrcrb[5].opcode:                     0 ; 0x00a: 0x0000
kfrcrb[6].opcode:                     0 ; 0x00c: 0x0000
kfrcrb[7].opcode:                     0 ; 0x00e: 0x0000
kfrcrb[8].opcode:                     0 ; 0x010: 0x0000
kfrcrb[9].opcode:                     0 ; 0x012: 0x0000
kfrcrb[10].opcode:                    0 ; 0x014: 0x0000
kfrcrb[11].opcode:                    0 ; 0x016: 0x0000
kfrcrb[12].opcode:                    0 ; 0x018: 0x0000
kfrcrb[13].opcode:                    0 ; 0x01a: 0x0000
kfrcrb[14].opcode:                    0 ; 0x01c: 0x0000
kfrcrb[15].opcode:                    0 ; 0x01e: 0x0000
kfrcrb[16].opcode:                    0 ; 0x020: 0x0000
kfrcrb[17].opcode:                    0 ; 0x022: 0x0000
kfrcrb[18].opcode:                    0 ; 0x024: 0x0000
kfrcrb[19].opcode:                    0 ; 0x026: 0x0000
kfrcrb[20].opcode:                    0 ; 0x028: 0x0000
kfrcrb[21].opcode:                    0 ; 0x02a: 0x0000
kfrcrb[22].opcode:                    0 ; 0x02c: 0x0000
kfrcrb[23].opcode:                    0 ; 0x02e: 0x0000
kfrcrb[24].opcode:                    0 ; 0x030: 0x0000
kfrcrb[25].opcode:                    0 ; 0x032: 0x0000
kfrcrb[26].opcode:                    0 ; 0x034: 0x0000
kfrcrb[27].opcode:                    0 ; 0x036: 0x0000
kfrcrb[28].opcode:                    0 ; 0x038: 0x0000
kfrcrb[29].opcode:                    0 ; 0x03a: 0x0000
kfrcrb[30].opcode:                    0 ; 0x03c: 0x0000
kfrcrb[31].opcode:                    0 ; 0x03e: 0x0000
kfrcrb[32].opcode:                    0 ; 0x040: 0x0000
kfrcrb[33].opcode:                    0 ; 0x042: 0x0000
kfrcrb[34].opcode:                    0 ; 0x044: 0x0000
kfrcrb[35].opcode:                    0 ; 0x046: 0x0000
kfrcrb[36].opcode:                    0 ; 0x048: 0x0000
kfrcrb[37].opcode:                    0 ; 0x04a: 0x0000
kfrcrb[38].opcode:                    0 ; 0x04c: 0x0000
kfrcrb[39].opcode:                    0 ; 0x04e: 0x0000
kfrcrb[40].opcode:                    0 ; 0x050: 0x0000
kfrcrb[41].opcode:                    0 ; 0x052: 0x0000
kfrcrb[42].opcode:                    0 ; 0x054: 0x0000
:
[oracle@mlab2 ~]$ kfed read /oracleasm/asm-disk01 aus=4194304 aun=7 blkn=2|less
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh.type:                           16 ; 0x002: KFBTYP_COD_DATA
kfbh.datfmt:                          1 ; 0x003: 0x01
kfbh.block.blk:                       2 ; 0x004: blk=2
kfbh.block.obj:                       4 ; 0x008: file=4
kfbh.check:                   856815006 ; 0x00c: 0x3311f59e
kfbh.fcn.base:                    22895 ; 0x010: 0x0000596f
kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
kfbh.spare1:                          0 ; 0x018: 0x00000000
kfbh.spare2:                          0 ; 0x01c: 0x00000000
kfbh.type KFBTYP_COD_BGO
KFBTYP_COD_BGO  COD BackGround Operations block
KFBTYP_COD_RBO  COD RollBack Operations block
KFBTYP_COD_DATA  COD rollback Data block
kfrcbg.op  opcode defined by KFRCBG_OPDEF
kfrcbg.inum  owning instance number
kfrcbg.iser   instance serial number


--转自 北京联动北方科技有限公司

该贴由koei123转至本版2015-2-6 4:47:18



赞(0)    操作        顶端 
yihe
注册用户
等级:上士
经验:296
发帖:1
精华:0
注册:2015-1-29
状态:离线
发送短消息息给yihe 加好友    发送短消息息给yihe 发消息
发表于: IP:您无权察看 2015-2-3 23:25:20 | [全部帖] [楼主帖] 2  楼

北京联动北方科技有限公司



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论