189 8069 5689

oracle怎么看磁盘组 怎么查看系统磁盘组

如何查看以及清除Oracle ASM磁盘头部信息

在oracle中提供了一个程序kfed用来查看ASM磁盘头部信息。此程序位于$ORACLE_HOME/bin目录下,如果没有可以按照以下方法生成kfed程序:

成都创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的上栗网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

进入$ORACLE_HOME/rdbms/lib下,执行make -f ins_rdbms.mk ikfed命令,执行完成后会在$ORACLE_HOME/bin目录中将会产生kfed程序。

kfed的语法是:kfed read *devicename* text=*filename*

read指读取。

*devicename*指要读取的磁盘名称。

test指输出的格式为文本格式。

*filename*指输出的文件命。

text选项是可选的,使用了此选项则输出结果输出到指定文件,如果不加默认的输出是指屏幕输出。

示例如下:

查看下asm磁盘组中的磁盘:

image

(图1)

查看已有的磁盘组、块大小以及类型:

image

(图2)

读取磁盘vol01的头部信息:

[oracle@oradb bin]$ kfed read /dev/oracleasm/disks/VOL01

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: T=0 NUMB=0x0

kfbh.block.obj: 2147483648 ; 0x008: TYPE=0x8 NUMB=0x0

kfbh.check: 3091711072 ; 0x00c: 0xb847c460

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: ORCLDISKVOL01 ; 0x000: length=13

kfdhdb.driver.reserved[0]: 810307414 ; 0x008: 0x304c4f56

kfdhdb.driver.reserved[1]: 49 ; 0x00c: 0x00000031

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: 168820736 ; 0x020: 0x0a100000

kfdhdb.dsknum: 0 ; 0x024: 0x0000 //这里是磁盘号,和图1中的输出一致。

kfdhdb.grptyp: 3 ; 0x026: KFDGTP_HIGH //这里是磁盘类型,和图2输出一致。

kfdhdb.hdrsts: 3 ; 0x027: KFDHDR_MEMBER

kfdhdb.dskname: VOL01 ; 0x028: length=5 //磁盘名称,如图1所示。

kfdhdb.grpname: DATA ; 0x048: length=4 //磁盘所属的磁盘组,如图2所示。

kfdhdb.fgname: VOL01 ; 0x068: length=5

kfdhdb.capname: ; 0x088: length=0

kfdhdb.crestmp.hi: 32942006 ; 0x0a8: HOUR=0x16 DAYS=0x1d MNTH=0x9 YEAR=0x7da

kfdhdb.crestmp.lo: 449689600 ; 0x0ac: USEC=0x0 MSEC=0x36e SECS=0x2c MINS=0x6

kfdhdb.mntstmp.hi: 32942646 ; 0x0b0: HOUR=0x16 DAYS=0x11 MNTH=0xa YEAR=0x7da

kfdhdb.mntstmp.lo: 1573951488 ; 0x0b4: USEC=0x0 MSEC=0x26 SECS=0x1d MINS=0x17

kfdhdb.secsize: 512 ; 0x0b8: 0x0200

kfdhdb.blksize: 4096 ; 0x0ba: 0x1000 //这里指每个block的大小,和图2的输出一致。

kfdhdb.ausize: 1048576 ; 0x0bc: 0x00100000

kfdhdb.mfact: 113792 ; 0x0c0: 0x0001bc80

kfdhdb.dsksize: 10236 ; 0x0c4: 0x000027fc //这里是磁盘的大小,和图1的输出一致。

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: 32942006 ; 0x0e4: HOUR=0x16 DAYS=0x1d MNTH=0x9 YEAR=0x7da

kfdhdb.grpstmp.lo: 448217088 ; 0x0e8: USEC=0x0 MSEC=0x1d0 SECS=0x2b MINS=0x6

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

kfdhdb.ub4spare[57]: 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

[oracle@oradb bin]$

清理ASM磁盘头部信息:

image

虽然大部分内容都可以从ASM实例的数据字典中获得,但是在我们碰到ASM磁盘故障的时候,kfed提供的信息往往更容易让我们判断问题点。

如果一个ASM Disk由于故障,导致删也删不掉,加也加不进去,一般情况是磁盘的header status状态不正确,此时就需要clear这个磁盘,然后再将它重新加入磁盘组中。

如何查看oracle rac asm空间大小

1、用v$asm_disk查看asm磁盘组的剩余空间,显示free_mb为0,还以为是10gr2的bug呢,

后来试了下v$asm_diskgroup,发现它与v$asm_disk是有明显区别的。

2、测试环境:10.2.0.1.0 - Production

3、测试结果如下,欢迎补充、指正

如何查看oracle asm中一个au的大小?

---用下面语句可以查看你创建的asm 磁盘组情况,字段allocation_unit_size就是你想知道的au

select group_number,name,sector_size,block_size,allocation_unit_size from v$asm_diskgroup;

在10gR2中,au的默认值是1M,在11gR2中默认值是4M

该值受隐藏参数控制:_asm_ausize

用em查看Oracle的asm磁盘组,有内部空间,空闲,具体数据库的空间,请问这三个空间分别是什么意思??

内部空间:磁盘组的大小

空闲:顾名思义 ,就是没有多少可以用

数据库的空间:就是数据库占的用有量

oracle11g查看asm磁盘组中有哪些设备

磁盘组操作,grid用户下:

sqlplus /nolog

1

SQL conn / as sysasm

查询现有磁盘组及磁盘信息:

SQL select group_number gno,name,state,type,total_mb,free_mb,required_mirror_free_mb rmfmb,usable_file_mb ufmb from v$asm_diskgroup;

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

GNO NAME STATE TYPE TOTAL_MB FREE_MB RMFMB UFMB

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

1 DG1 MOUNTED NORMAL 4076 575 879 -152

2 DG2 MOUNTED NORMAL 4076 3531 139 1696

SQL

SQL col name format a10

SQL col fgno format a20

SQL select group_number gno,name,failgroup fgno,state,total_mb,free_mb,header_status from v$asm_disk;

GNO NAME FGNO STATE TOTAL_MB FREE_MB HEADER_STATUS

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

0 NORMAL 0 0 PROVISIONED

0 NORMAL 0 0 PROVISIONED

1 VOL1 VOL1 NORMAL 1019 141 MEMBER

1 VOL2 VOL2 NORMAL 1019 144 MEMBER

1 VOL3 VOL3 NORMAL 1019 140 MEMBER

1 VOL4 VOL4 NORMAL 1019 150 MEMBER

2 VOL5 VOL5 NORMAL 1019 880 MEMBER

2 VOL6 VOL6 NORMAL 1019 883 MEMBER

2 VOL7 VOL7 NORMAL 1019 885 MEMBER

2 VOL8 VOL8 NORMAL 1019 883 MEMBER

10 rows selected.

--创建磁盘组

SQL create diskgroup dg3 normal redundancy disk 'ORCL:VOL9','ORCL:VOL10';

1

2

3

4

5

6

Diskgroup created.

或:

SQL create diskgroup dg3 normal redundancy disk 'ORCL:VOL9' disk 'ORCL:VOL10';

Diskgroup created.

--添加磁盘

1

2

3

4

SQL alter diskgroup dg1 add disk 'ORCL:VOL9';

Diskgroup altered.

--删除磁盘

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

SQL alter diskgroup dg1 drop disk VOL9;

Diskgroup altered.

SQL select group_number gno,name,failgroup fgno,state,total_mb,free_mb,header_status from v$asm_disk;

GNO NAME FGNO STATE TOTAL_MB FREE_MB HEADER_STATUS

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

0 NORMAL 0 0 FORMER

1 VOL1 VOL1 NORMAL 1019 284 MEMBER

1 VOL2 VOL2 NORMAL 1019 286 MEMBER

1 VOL3 VOL3 NORMAL 1019 284 MEMBER

1 VOL4 VOL4 NORMAL 1019 287 MEMBER

2 VOL5 VOL5 NORMAL 1019 880 MEMBER

2 VOL6 VOL6 NORMAL 1019 883 MEMBER

2 VOL7 VOL7 NORMAL 1019 885 MEMBER

2 VOL8 VOL8 NORMAL 1019 883 MEMBER

1 VOL9 VOL9 DROPPING 1019 451 MEMBER

10 rows selected.

--取消删除

1

alter diskgroup dg1 undrop disks;

--调整大小

1

ALTER DISKGROUP DG1 RESIZE DISK VOL4 SIZE 1024 M

--unmount和mount磁盘组

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

SQL alter diskgroup dg3 dismount;

Diskgroup altered.

SQL select group_number gno,name,state,type,total_mb,free_mb,required_mirror_free_mb rmfmb,usable_file_mb ufmb from v$asm_diskgroup;

GNO NAME STATE TYPE TOTAL_MB FREE_MB RMFMB UFMB

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

1 DG1 MOUNTED NORMAL 4076 575 879 -152

2 DG2 MOUNTED NORMAL 4076 3531 139 1696

0 DG3 DISMOUNTED

SQL alter diskgroup dg3 mount;

Diskgroup altered.

如何检查ASM磁盘空间使用情况

日常我们检查ASM磁盘空间通过如下:

export Oracle_SID=+ASM1

通过检查v$asm_diskgoup视图可以检查磁盘组空间的使用情况,如下:

SQL select group_number,name,total_mb,free_mb from v$asm_diskgroup;

GROUP_NUMBER NAME TOTAL_MB FREE_MB

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

1 DATA 8032 2626

今天才发现通过asmcmd,也可以实现很多的功能,灰常的好的一个发现:

ASMCMD ls

DATA/

如上我们可以看到ASM实例中的磁盘组情况,比如ASM实例磁盘组的数据库和实例的连接使用情况:

ASMCMD lsct data

DB_Name Status Software_Version Compatible_version Instance_Name

rac CONNECTED 10.2.0.4.0 10.2.0.1.0 rac1

加上-H参数后显示如下:

ASMCMD lsct -H data

rac CONNECTED 10.2.0.4.0 10.2.0.1.0 rac1

可以看到-H参数是的上面的一些列信息显示去除掉了。

而采用lsdg也可以检查ASM实例中磁盘组的空间使用情况:

ASMCMD lsdg data

State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name

MOUNTED EXTERN N N 512 4096 1048576 8032 2626 0 2626 0 DATA/

还有如下方法:

ASMCMD du data

Used_MB Mirror_used_MB

5312 5312

ASMCMD ls -s

Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name

512 4096 1048576 8032 2626 0 2626 0 DATA/

还有如下的其他常用的命令:

ASMCMD ?

commands:

--------

cd

du

find

help

ls

lsct

lsdg

mkalias

mkdir

pwd

rm

rmalias

当然就不进行一一列举了,到了ORACLE 11g,asmcmd中参数选项显然很多了:

ASMCMD ?

commands:

--------

md_backup, md_restore

lsattr, setattr

cd, cp, du, find, help, ls, lsct, lsdg, lsof, mkalias

mkdir, pwd, rm, rmalias

chdg, chkdg, dropdg, iostat, lsdsk, lsod, mkdg, mount

offline, online, rebal, remap, umount

dsget, dsset, lsop, shutdown, spbackup, spcopy, spget

spmove, spset, startup

chtmpl, lstmpl, mktmpl, rmtmpl

chgrp, chmod, chown, groups, grpmod, lsgrp, lspwusr, lsusr

mkgrp, mkusr, orapwusr, passwd, rmgrp, rmusr

volcreate, voldelete, voldisable, volenable, volinfo

volresize, volset, volstat

其他的就不一一列举了。


当前标题:oracle怎么看磁盘组 怎么查看系统磁盘组
本文网址:http://cdxtjz.cn/article/higdgi.html

其他资讯