百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

ASM元数据的格式化收集及ASM磁盘头备份

sinye56 2024-10-03 00:34 11 浏览 0 评论

作者简介:张世强,现就职于北京海天起点,Exadata部门成员,持有11gOCP、Exadata、Goldengate、RHCE7认证,拥有4年的电力、电信行业数据库维护经验,擅长goldengate,数据库性能优化及问题处理。

一、格式化收集ASM、ACFS元数据

1.ASM元数据格式化收集概述

ASM的元数据由ASM实例进行维护和管理,元信息本身非常重要,ASM磁盘组中的文件要想被ORACLE DB和其他客户端正常使用,就要求元数据是完好无损的,ASM元数据以元数据块的形式存储在磁盘组中。在工作中可使用 SQLPLUS 的“SET MARKUP HTML ON”来生成 ASM 元数据的格式化报表,同时使用 ASMCMD 命令来收集一些补充的 ASM 元数据信息。

这些信息可作为 ASM 元数据的备份,同时也可以作为 Oracle 技术支持诊断 ASM 问题的重要依据。

2.常用的收集ASM元数据脚本

常用的收集ASM元数据的脚本分为四个:

  • 脚本一收集常用的ASM元数据

  • 脚本二收集ASM文件以及ASM别名

  • 脚本三收集ASM全路径别名目录

  • 脚本四使用ASMCMD命令来收集补充的ASM元数据信息

运行脚本的用户必须是可以直接访问ASM实例的用户,如果是 RAC,则在每个节点执行。

3.常用的ASM元数据收集

SPOOL ASM<#>_GENERIC_ASM_METADATA.html

--ASM VERSIONS10.1,10.2,11.1,11.2&12.1

SET MARKUP HTML ON

SET ECHO ON

SET PAGESIZE200

ALTER SESSION SET NLS_DATE_FORMAT='DD-MON-YYYY HH24:MI:SS';

SELECT'THIS ASM REPORT WAS GENERATED AT: ==)> ',SYSDATE" "FROM DUAL;

SELECT'INSTANCE NAME: ==)> ',INSTANCE_NAME" "FROMV$INSTANCE;

SELECT'HOSTNAME ASSOCIATED WITH THIS ASM INSTANCE: ==)> ',MACHINE" "FROMV$SESSION WHERE PROGRAM LIKE'%SMON%';

SELECT *FROMV$INSTANCE;

SELECT *FROM GV$INSTANCE;

SELECT *FROMV$ASM_DISKGROUP;

SELECT GROUP_NUMBER,DISK_NUMBER,MOUNT_STATUS,HEADER_STATUS,MODE_STATUS,STATE,OS_MB,TOTAL_MB,FREE_MB,NAME,FAILGROUP,PATH

FROMV$ASM_DISK ORDER BY GROUP_NUMBER,FAILGROUP,DISK_NUMBER;

SELECT *FROMV$ASM_DISK ORDER BY GROUP_NUMBER,DISK_NUMBER;

SELECT SUBSTR(D.NAME,1,16)ASASMDISK,D.MOUNT_STATUS,D.STATE,

DG.NAME ASDISKGROUP FROMV$ASM_DISKGROUP DG,V$ASM_DISKD

WHERE DG.GROUP_NUMBER=D.GROUP_NUMBER;

SELECT *FROMV$ASM_CLIENT;

SELECT DG.NAME ASDISKGROUP,SUBSTR(C.INSTANCE_NAME,1,12)ASINSTANCE,

SUBSTR(C.DB_NAME,1,12)ASDBNAME,SUBSTR(C.SOFTWARE_VERSION,1,12)ASSOFTWARE,

SUBSTR(C.COMPATIBLE_VERSION,1,12)ASCOMPATIBLE

FROMV$ASM_DISKGROUP DG,V$ASM_CLIENTC

WHERE DG.GROUP_NUMBER=C.GROUP_NUMBER;

SELECT *FROMV$ASM_ATTRIBUTE;

SELECT *FROMV$ASM_OPERATION;

SELECT *FROM GV$ASM_OPERATION;

SELECT *FROMV$VERSION;

SELECT *FROMV$ASM_ACFSSNAPSHOTS;

SELECT *FROMV$ASM_ACFSVOLUMES;

SELECT *FROMV$ASM_FILESYSTEM;

SELECT *FROMV$ASM_VOLUME;

SELECT *FROMV$ASM_VOLUME_STAT;

SELECT *FROMV$ASM_USER;

SELECT *FROMV$ASM_USERGROUP;

SELECT *FROMV$ASM_USERGROUP_MEMBER;

SELECT *FROMV$ASM_DISK_IOSTAT;

SELECT *FROMV$ASM_DISK_STAT;

SELECT *FROMV$ASM_DISKGROUP_STAT;

SELECT *FROMV$ASM_TEMPLATE;

SHOW PARAMETER

SHOW SGA

!echo"SELECT '">/tmp/GPNPTOOL.SQL2>/dev/null

!$ORACLE_HOME/bin/gpnptool get>>/tmp/GPNPTOOL.SQL2>>/dev/null

!echo"' FROM DUAL;">>/tmp/GPNPTOOL.SQL2>>/dev/null

!cat/tmp/GPNPTOOL.SQL

SET ECHO OFF

--DISPLAYS INFORMATION ABOUT THE CONTENTS OF THE SPFILE.

SELECT *FROMV$SPPARAMETER ORDER BY2;

SELECT *FROM GV$SPPARAMETER ORDER BY3;

--DISPLAYS INFORMATION ABOUT THE INITIALIZATION PARAMETERS THAT ARE CURRENTLY INEFFECT INTHE INSTANCE.

SELECT *FROMV$SYSTEM_PARAMETER ORDER BY2;

SELECT *FROM GV$SYSTEM_PARAMETER ORDER BY3;

--12CACFS VIEWS

SELECT *FROMV$ASM_ACFS_ENCRYPTION_INFO;

SELECT *FROMV$ASM_ACFSREPL;

SELECT *FROMV$ASM_ACFSREPLTAG;

SELECT *FROMV$ASM_ACFS_SEC_ADMIN;

SELECT *FROMV$ASM_ACFS_SEC_CMDRULE;

SELECT *FROMV$ASM_ACFS_SEC_REALM;

SELECT *FROMV$ASM_ACFS_SEC_REALM_FILTER;

SELECT *FROMV$ASM_ACFS_SEC_REALM_GROUP;

SELECT *FROMV$ASM_ACFS_SEC_REALM_USER;

SELECT *FROMV$ASM_ACFS_SEC_RULE;

SELECT *FROMV$ASM_ACFS_SEC_RULESET;

SELECT *FROMV$ASM_ACFS_SEC_RULESET_RULE;

SELECT *FROMV$ASM_ACFS_SECURITY_INFO;

SELECT *FROMV$ASM_ACFSTAG;

--12CASM AUDIT VIEWS

SELECT *FROMV$ASM_AUDIT_CLEAN_EVENTS;

SELECT *FROMV$ASM_AUDIT_CLEANUP_JOBS;

SELECT *FROMV$ASM_AUDIT_CONFIG_PARAMS;

SELECT *FROMV$ASM_AUDIT_LAST_ARCH_TS;

--12CASM ESTIMATE VIEW

SELECT *FROMV$ASM_ESTIMATE;

SELECT *FROM GV$ASM_ESTIMATE;

SPOOL OFF

EXIT

4.ASM文件以及ASM别名收集

spool asm<#>_alias+files.html

--ASM Versions10.1,10.2,11.1,11.2&12.1

SET MARKUP HTML ON

set echo on

set pagesize200

COLUMN BYTES FORMAT9999999999999999

alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS';

select'THIS ASM REPORT WAS GENERATED AT: ==)> ',sysdate" "from dual;

select'HOSTNAME ASSOCIATED WITH THIS ASM INSTANCE: ==)> ',MACHINE" "fromv$session where program like'%SMON%';

select *fromv$asm_alias;

select *fromv$asm_file;

show parameter asm

show parameter cluster

show parameter instance_type

show parameter instance_name

show parameter spfile

show sga

spool off

exit

5.ASM全路径别名路径收集

spool asm<#>_full_path_alias_directory.html

--ASM Versions10.1,10.2,11.1,11.2&12.1

SET MARKUP HTML ON

set echo on

set pagesize200

alter session set nls_date_format='DD-MON-YYYY HH24:MI:SS';

select'THIS ASM REPORT WAS GENERATED AT: ==)> ',sysdate" "from dual;

select'HOSTNAME ASSOCIATED WITH THIS ASM INSTANCE: ==)> ',MACHINE" "fromv$session where program like'%SMON%';

SELECT CONCAT('+'||GNAME,SYS_CONNECT_BY_PATH(ANAME,'/'))

FULL_PATH,SYSTEM_CREATED,ALIAS_DIRECTORY,FILE_TYPE

FROM(SELECTB.NAME GNAME,A.PARENT_INDEX PINDEX,

A.NAME ANAME,A.REFERENCE_INDEX RINDEX,

A.SYSTEM_CREATED,A.ALIAS_DIRECTORY,

C.TYPE FILE_TYPE

FROMV$ASM_ALIASA,V$ASM_DISKGROUPB,V$ASM_FILEC

WHEREA.GROUP_NUMBER=B.GROUP_NUMBER

ANDA.GROUP_NUMBER=C.GROUP_NUMBER(+)

ANDA.FILE_NUMBER=C.FILE_NUMBER(+)

ANDA.FILE_INCARNATION=C.INCARNATION(+)

)

START WITH(MOD(PINDEX,POWER(2,24)))=0

CONNECT BY PRIOR RINDEX=PINDEX;

spool off

exit

6.使用 ASMCMD 命令来收集补充的 ASM 元数据信息

############################################################################################

##The next script generates additional ASM metadata information thru the ASMCMD interface##

############################################################################################

echo"ASMCMD commands to gather complementary metadata information:">/tmp/asmcmd_script.out2>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-pls-ls>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsattr>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsct>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsdg>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsdsk>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsof>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsod>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-piostat>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-pdsget>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsop>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-pspget>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plstmpl>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsusr>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plsgrp>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-plspwusr>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

asmcmd-pvolinfo-a>>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo"==================================">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

echo" ">>/tmp/asmcmd_script.out2>>/tmp/asmcmd_script.out

############################################################################################

注意1:脚本1,2,3 可能会在执行一些查询语句时报错<<< ORA-01219: database not open: queries allowed on fixed tables/views only >>>, 这个错误是因为一些 V$ASM_* 性能试图只出现在早期的 ASM 版本,因此这个错误可以依据 ASM 的版本进行忽略。

注意2:脚本4也有同样的问题(ASMCMD 命令),因为一些命令在早期 ASM 版本并不支持,所以ASMCMD不能识别这部分命令。

二、ASM磁盘头的备份

1.ASM Disk Header的说明

ASM具有高度的封装性,其中较为脆弱的就是asm disk header,ASM Disk Header是ASM Metadata的一部分。在ASM Disk Header中,记录了包括有Disk Group, Disk name,Disk Header,AU size等重要信息,如果disk header逻辑损坏了,即corrupt了,则整个disk group将不能够mount,依赖于asm instance的database也将不能够启动,因此,日常的ASM Disk Header的备份很重要。

在Oracle 10.2.0.5版本之前,需要手工去备份ASM Disk Header,从Oracle 10.2.0.5开始,ASM磁盘会自动备份磁盘头块,备份块的位置在第2个AU的倒数第2个块上。通常,缺省情况下,AU SIZE是1M,每个AU可以有256个block(每个block 4k),因此,第2个AU的倒数第2个块即第510个块包含Disk Header的备份信息。

在exadata上,缺省的AU是4M,也就是每个AU可以存储1024个block,即 block 0到block 1023,那么第二个AU的倒数第二个block就是 au=1 blkn=1022 (au和block都是从0开始计数的)。

注意:这里仅就ASM Disk Header(disk的前面4k)被损坏进行备份论述,不涉及ASM Disk的故障情形。

2.ASM Disk Header的常用备份工具

最常用的备份ASM DISK HEADER的工具主要有两种:

  1. 操作系统的dd命令(在Exadata平台上目前不可用)

  2. Oracle自带的工具kfed(Kernal File Editor)

3.ASM Disk Header自动备份块的确认(oracle 10.2.0.5版本及以后)

通常情况下,我们可以直接通过Kfed工具去读取ASM Disk Header信息。从Oracle 10.2.0.5版本开始,如果Disk Header出现了损坏,而该Disk的第二个AU的倒数第二个块并未被损坏,我们可以通过读取该块来获取ASM Disk Header的相应信息。

自动备份ASM Disk Header的块号的计算公式为:

计算方法:AU中包含的block num[AU_SIZE/block_size]*2-2[因为第一个块从0计算],通过该方法计算结论为:

当AU size = 1M,第510个块包含Disk Header的自动备份;

当AU size = 2M ,第1022个块包含Disk Header的自动备份;

当AU size = 4M ,第2046个块包含 Disk Header的自动备份;

当AU size = 8M ,第4094个块包含Disk Header的自动备份;

当AU size = 16M ,第8190个块包含Disk Header的自动备份;

以此类推。

[grid@zsq1~]$kfed read/dev/asm-diskf blkn=254aun=1|egrep'kfbh.type|blksize|ausize'

kfbh.type:1;0x002:KFBTYP_DISKHEAD

kfdhdb.blksize:4096;0x0ba:0x1000

kfdhdb.ausize:1048576;0x0bc:0x00100000

正是因为存在这个自动备份,所以Oracle 10.2.0.5之后的kfed程序才有了新的repair命令,该命令将备份块直接覆盖到磁盘头块,完成修复工作。

4.ASM Disk Header的手工备份方式

dd方式备份

  • 查询ASM相关信息

SQL>select group_number,name,state,total_mb,free_mb fromv$asm_diskgroup;

GROUP_NUMBER NAME STATE TOTAL_MB FREE_MB

-------------------------------------------------------------------------------------

1ACFSTEST MOUNTED3072926

2DATA2 MOUNTED61444286

3DATA MOUNTED122884053

SQL>select group_number,DISK_NUMBER,PATH,STATE fromv$asm_disk;

GROUP_NUMBER DISK_NUMBER PATH STATE

-------------------------------------------------------------------

20/dev/asm-diskg NORMAL

31/dev/asm-diskc NORMAL

32/dev/asm-diskd NORMAL

10/dev/asm-diskf NORMAL

30/dev/asm-diskb NORMAL

34/dev/asm-diske NORMAL

21/dev/asm-diskh NORMAL

7rows selected.

  • 使用dd命令备份磁盘的前4k信息

[grid@zsq1 bin]$dd if=/dev/asm-diskf of=/home/grid/asmhead.dd bs=4096count=1

1+0records in

1+0records out

4096bytes(4.1kB)copied,0.00147435s,2.8MB/s

每个asm盘依次进行dd备份

kfed方式备份

  • 备份用户及相关权限的确认

运行脚本的用户必须是可以直接访问ASM实例的用户,登陆用户可以访问GV$ASM_DISKGROUP,GV$ASM_DISK视图。例如,Oracle 11g RAC中的grid用户。

  • 检查备份所需工具

在确认备份方式后,检查运行备份的用户可以使用Oracle软件中的kfed工具。在Oracle 11.2 上默认安装了kfed工具。

[grid@zsq1 dev]$kfed read/dev/asm-diskf blkn=0aun=0>/home/grid/diskf.kfed

依次对每个asm磁盘头进行备份

[grid@zsq1~]$more diskf.kfed

kfbh.endian:1;0x000:0x01

kfbh.hard:130;0x001:0x82

kfbh.type:1;0x002:KFBTYP_DISKHEAD

kfbh.datfmt:1;0x003:0x01

kfbh.block.blk:0;0x004:blk=0

kfbh.block.obj:2147483648;0x008:disk=0

kfbh.check:938662876;0x00c:0x37f2dbdc

kfbh.fcn.base:0;0x010:0x00000000

kfbh.fcn.wrap:0;0x014:0x00000000

kfbh.spare1:0;0x018:0x00000000

kfbh.spare2:0;0x01c:0x00000000

kfdhdb.driver.provstr:ORCLDISK;0x000:length=8

kfdhdb.driver.reserved[0]:0;0x008:0x00000000

kfdhdb.driver.reserved[1]:0;0x00c:0x00000000

kfdhdb.driver.reserved[2]:0;0x010:0x00000000

kfdhdb.driver.reserved[3]:0;0x014:0x00000000

kfdhdb.driver.reserved[4]:0;0x018:0x00000000

kfdhdb.driver.reserved[5]:0;0x01c:0x00000000

kfdhdb.compat:186646528;0x020:0x0b200000

kfdhdb.dsknum:0;0x024:0x0000

kfdhdb.grptyp:1;0x026:KFDGTP_EXTERNAL

kfdhdb.hdrsts:3;0x027:KFDHDR_MEMBER

kfdhdb.dskname:ACFSTEST_0000;0x028:length=13

kfdhdb.grpname:ACFSTEST;0x048:length=8

kfdhdb.fgname:ACFSTEST_0000;0x068:length=13

kfdhdb.capname:;0x088:length=0

kfdhdb.crestmp.hi:33038406;0x0a8:HOUR=0x6DAYS=0x2MNTH=0x8YEAR=0x7e0

kfdhdb.crestmp.lo:3230948352;0x0ac:USEC=0x0MSEC=0x117SECS=0x9MINS=0x30

kfdhdb.mntstmp.hi:33051200;0x0b0:HOUR=0x0DAYS=0x12MNTH=0x4YEAR=0x7e1

kfdhdb.mntstmp.lo:2771093504;0x0b4:USEC=0x0MSEC=0x2e2SECS=0x12MINS=0x29

kfdhdb.secsize:512;0x0b8:0x0200

kfdhdb.blksize:4096;0x0ba:0x1000

kfdhdb.ausize:1048576;0x0bc:0x00100000

kfdhdb.mfact:113792;0x0c0:0x0001bc80

kfdhdb.dsksize:3072;0x0c4:0x00000c00

kfdhdb.pmcnt:2;0x0c8:0x00000002

kfdhdb.fstlocn:1;0x0cc:0x00000001

kfdhdb.altlocn:2;0x0d0:0x00000002

kfdhdb.f1b1locn:2;0x0d4:0x00000002

kfdhdb.redomirrors[0]:0;0x0d8:0x0000

kfdhdb.redomirrors[1]:0;0x0da:0x0000

kfdhdb.redomirrors[2]:0;0x0dc:0x0000

kfdhdb.redomirrors[3]:0;0x0de:0x0000

kfdhdb.dbcompat:168820736;0x0e0:0x0a100000

kfdhdb.grpstmp.hi:33038406;0x0e4:HOUR=0x6DAYS=0x2MNTH=0x8YEAR=0x7e0

kfdhdb.grpstmp.lo:3230756864;0x0e8:USEC=0x0MSEC=0x5cSECS=0x9MINS=0x30

kfdhdb.vfstart:0;0x0ec:0x00000000

kfdhdb.vfend:0;0x0f0:0x00000000

kfdhdb.spfile:0;0x0f4:0x00000000

kfdhdb.spfflg:0;0x0f8:0x00000000

kfdhdb.ub4spare[0]:0;0x0fc:0x00000000

kfdhdb.ub4spare[1]:0;0x100:0x00000000

kfdhdb.ub4spare[2]:0;0x104:0x00000000

kfdhdb.ub4spare[3]:0;0x108:0x00000000

kfdhdb.ub4spare[4]:0;0x10c:0x00000000

kfdhdb.ub4spare[5]:0;0x110:0x00000000

kfdhdb.ub4spare[6]:0;0x114:0x00000000

kfdhdb.ub4spare[7]:0;0x118:0x00000000

kfdhdb.ub4spare[8]:0;0x11c:0x00000000

kfdhdb.ub4spare[9]:0;0x120:0x00000000

kfdhdb.ub4spare[10]:0;0x124:0x00000000

kfdhdb.ub4spare[11]:0;0x128:0x00000000

kfdhdb.ub4spare[12]:0;0x12c:0x00000000

kfdhdb.ub4spare[13]:0;0x130:0x00000000

kfdhdb.ub4spare[14]:0;0x134:0x00000000

kfdhdb.ub4spare[15]:0;0x138:0x00000000

kfdhdb.ub4spare[16]:0;0x13c:0x00000000

kfdhdb.ub4spare[17]:0;0x140:0x00000000

kfdhdb.ub4spare[18]:0;0x144:0x00000000

kfdhdb.ub4spare[19]:0;0x148:0x00000000

kfdhdb.ub4spare[20]:0;0x14c:0x00000000

kfdhdb.ub4spare[21]:0;0x150:0x00000000

kfdhdb.ub4spare[22]:0;0x154:0x00000000

kfdhdb.ub4spare[23]:0;0x158:0x00000000

kfdhdb.ub4spare[24]:0;0x15c:0x00000000

kfdhdb.ub4spare[25]:0;0x160:0x00000000

kfdhdb.ub4spare[26]:0;0x164:0x00000000

kfdhdb.ub4spare[27]:0;0x168:0x00000000

kfdhdb.ub4spare[28]:0;0x16c:0x00000000

kfdhdb.ub4spare[29]:0;0x170:0x00000000

kfdhdb.ub4spare[30]:0;0x174:0x00000000

kfdhdb.ub4spare[31]:0;0x178:0x00000000

kfdhdb.ub4spare[32]:0;0x17c:0x00000000

kfdhdb.ub4spare[33]:0;0x180:0x00000000

kfdhdb.ub4spare[34]:0;0x184:0x00000000

kfdhdb.ub4spare[35]:0;0x188:0x00000000

kfdhdb.ub4spare[36]:0;0x18c:0x00000000

kfdhdb.ub4spare[37]:0;0x190:0x00000000

kfdhdb.ub4spare[38]:0;0x194:0x00000000

kfdhdb.ub4spare[39]:0;0x198:0x00000000

kfdhdb.ub4spare[40]:0;0x19c:0x00000000

kfdhdb.ub4spare[41]:0;0x1a0:0x00000000

kfdhdb.ub4spare[42]:0;0x1a4:0x00000000

kfdhdb.ub4spare[43]:0;0x1a8:0x00000000

kfdhdb.ub4spare[44]:0;0x1ac:0x00000000

kfdhdb.ub4spare[45]:0;0x1b0:0x00000000

kfdhdb.ub4spare[46]:0;0x1b4:0x00000000

kfdhdb.ub4spare[47]:0;0x1b8:0x00000000

kfdhdb.ub4spare[48]:0;0x1bc:0x00000000

kfdhdb.ub4spare[49]:0;0x1c0:0x00000000

kfdhdb.ub4spare[50]:0;0x1c4:0x00000000

kfdhdb.ub4spare[51]:0;0x1c8:0x00000000

kfdhdb.ub4spare[52]:0;0x1cc:0x00000000

kfdhdb.ub4spare[53]:0;0x1d0:0x00000000

kfdhdb.acdb.aba.seq:0;0x1d4:0x00000000

kfdhdb.acdb.aba.blk:0;0x1d8:0x00000000

kfdhdb.acdb.ents:0;0x1dc:0x0000

kfdhdb.acdb.ub2spare:0;0x1de:0x0000

注意:在exadata中默认的ausize是4M,kfed命令中,需要指定ausz=4m,否则kfed缺省按照1M来计算,那么结果就是错误的了。

三、参考文档

  • How To Gather & Backup ASM/ACFS Metadata In A Formatted Manner version 10.1, 10.2, 11.1, 11.2 and 12.1(文档 ID 470211.1)

  • How To Restore/Repair/Fix An Overwritten (KFBTYP_INVALID) ASM Disk Header (First 4K) 10.2.0.5, 11.1.0.7, 11.2 And Onwards (文档 ID 1088867.1)

  • 其他网络文档

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&amp;配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: